David Gwynne (dlg on #opensolaris) has created a very nice driver for LSI MegaRaid SAS controllers. You can find it here.
I have not got any hardware, so I've not tested it, but this driver is the model of simplicity and elegance for an HBA, from what I can tell, weighing in at only 1500 lines. A great deal of that is no doubt thanks to the simple model of the hardware, but the simplicity and elegance in the driver should be credited to David as well.
I'd like to sponsor this myself for integration into Nevada, but I haven't got any hardware. If you have hardware to loan for qualification testing, give me a shout, because this looks like a prime candidate for a Nevada integration.
Friday, May 4, 2007
hme gldv3 status report
The conversion of hme to gldv3 looks like it is a success. The driver "Just Worked" from the first time I loaded it. Yay.
Still to be tested are the main areas of risk: VLANs, SUSPEND/RESUME, and DDI detach. Stay tuned for more on that front.
I'm going to have to preserve qfe as a seperate driver, I think, because renaming/renumbering devices is just going to cause too much grief in the field. But, what I'm going to do is make hme.c and qfe.c very small (say ~50 lines each), and have them use a common misc module to provide the entire functionality.
I have now received several qfe boards as well, so I'll be testing on x86 soon, as well.
Watch this space for the code review to be posted.
For the curious, some size comparisions:
gd78059@sr1-umpk-52{8}> wc pcic/usr/src/uts/sun/io/hme.c{,.orig}
6498 19423 171291 pcic/usr/src/uts/sun/io/hme.c
8889 26403 232421 pcic/usr/src/uts/sun/io/hme.c.orig
15387 45826 403712 total
size in the kernel (as reported by modinfo): old = 63384, new 47184
Still to be tested are the main areas of risk: VLANs, SUSPEND/RESUME, and DDI detach. Stay tuned for more on that front.
I'm going to have to preserve qfe as a seperate driver, I think, because renaming/renumbering devices is just going to cause too much grief in the field. But, what I'm going to do is make hme.c and qfe.c very small (say ~50 lines each), and have them use a common misc module to provide the entire functionality.
I have now received several qfe boards as well, so I'll be testing on x86 soon, as well.
Watch this space for the code review to be posted.
For the curious, some size comparisions:
gd78059@sr1-umpk-52{8}> wc pcic/usr/src/uts/sun/io/hme.c{,.orig}
6498 19423 171291 pcic/usr/src/uts/sun/io/hme.c
8889 26403 232421 pcic/usr/src/uts/sun/io/hme.c.orig
15387 45826 403712 total
size in the kernel (as reported by modinfo): old = 63384, new 47184
Wednesday, May 2, 2007
PSARC 2007/243 approved
Subject says it all. This is the eri conversion to nemo. There is more testing yet to be done, but note that this means that eri will inherit VLAN and link aggregation support. Neat, huh?
In the Bay Area this week
I'm up in MPK this week. (Wed, Thur, and leaving Friday night.) If any fellow Solaris geeks up here are up for a pub outing, e-mail me.
Monday, April 30, 2007
doing my part
I just committed a change to move 7 previously closed drivers in Nevada to the open source tree under usr/src. This change involved nothing more than Makefile and copyright block editing, so it was pretty much a no-brainer. (Though the heavy lifting of the legal review had already been done.)
The drivers moved were: bscv, bscbus, i2bsc, gptwo_cpu, gptwocfg, todstarcat, and todm5819p_rmc.
Admittedly, none of these are likely to exist on your hardware, but it does help to have more bits open. Hopefully someday /usr/closed will either cease to exist or become its own consolidation separate from Nevada.
The drivers moved were: bscv, bscbus, i2bsc, gptwo_cpu, gptwocfg, todstarcat, and todm5819p_rmc.
Admittedly, none of these are likely to exist on your hardware, but it does help to have more bits open. Hopefully someday /usr/closed will either cease to exist or become its own consolidation separate from Nevada.
Friday, April 27, 2007
eri conversion update
Hmm... it looks like I never posted the webrev... well here it is, the webrev for the eri(7d) conversion to Nemo.
Now, the second bit of good news here is that the PSARC case for this as been submitted as PSARC 2007/243. Note that the case isn't published publicly at the time of writing, but it should be soon.
Now, the second bit of good news here is that the PSARC case for this as been submitted as PSARC 2007/243. Note that the case isn't published publicly at the time of writing, but it should be soon.
Thursday, April 26, 2007
afe and dmfe cases approved
FYI, the afe and dmfe cases I had at PSARC (2007/229 and 2007/221 respectively) were approved. I've already put back the dmfe code. The afe code will be committed by Alan DuBoff. I've got pre-approval to do a follow-up putback to convert afe to GLDv3 afterwards.
Note that as a result of Crossbow, there are some changes coming in GLDv3, so it is still inappropriate to use GLDv3 for unbundled drivers. (The biggest of these changes is support for "polling", where the network stack can disable interrupts on the NIC and run a separate thread to poll the device for inbound packets. On extremely high traffic systems, this can have a big impact on overall system throughput by avoiding the extra context switches.)
Note that as a result of Crossbow, there are some changes coming in GLDv3, so it is still inappropriate to use GLDv3 for unbundled drivers. (The biggest of these changes is support for "polling", where the network stack can disable interrupts on the NIC and run a separate thread to poll the device for inbound packets. On extremely high traffic systems, this can have a big impact on overall system throughput by avoiding the extra context switches.)
Subscribe to:
Posts (Atom)