High Performance device driver framework (aka project Nemo)

Guest Author
A lot has happened since my last blog. I will talk about it one of these days. But the coolest thing we
finished is called project Nemo. Its a high performance device driver framework which allows writing device
driver for Solaris a breeze. Its technically GLDv3 framework but we like to call it Nemo instead :)

So what can Nemo do for you? Well, it switches dynamically between interrupt and polling mode (all controlled
by IP) to boost performance. Any device driver which support turning the interrupt on/off can take
advantage and boost performance by 20-25% by cutting the number of interrupts in more useful manner
and improving the latency at the same time. Way superior to interrupt coalescing etc

Ben also finds it pretty useful here. Hey Ben,
as you mentioned, lot of people are finding using ethernet pretty useful in storage as well. I'll have
some followon news on our iSCSI front soon. The initiator is already done and will be part of S10 update
while we are seening some pretty impressive numbers on a Solaris 10 iSCSI target with 10Gb.

Coming back to Nemo, it also does trunking for both 10Gb and 1Gb NICs in a pretty simple way. We demo'd
a trunk of 2 10Gb NICs on a 2 CPU machine during the Sunlab's openhouse in april and we ran over 12GBps
over the trunk! There are some other cool things Nemo will allow us to do and one of these days I will tell you
the details.

Join the discussion

Comments ( 1 )
  • Brian Gupta Monday, August 22, 2005
    Sunay, I am pretty sure Nemo replaces "Sun Trunking", does it support anything that would allow trunks to be multihomed to different switches. (I know it probably isn't in the 802.3ad spec, but I really hate IPMP)
    P.S. - Did I mention that I hate IPMP? :)
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.