[OmniOS-discuss] SolarFlare SFXGE with OmniOS

Saso Kiselkov skiselkov.ml at gmail.com
Sat Sep 20 01:03:15 UTC 2014


On 9/20/14, 1:23 AM, Mark wrote:
> On 20/09/2014 5:13 a.m., Dan McDonald wrote:
>>
>> On Sep 19, 2014, at 11:44 AM, Doug Hughes <doug at will.to> wrote:
>>
>>> Is anybody using Solarflare 10G cards with OmniOS. I have a 2010
>>> vintage of Openindiana (yeah, I should really upgrade that - it's a
>>> test box) running with the Sol10 production sfxge driver and working
>>> flawlessly for years. It tried the sfxge package for Sol11 and for
>>> Sol10 on OmniOS r151012 (yeah, I know it's not quite ready) and it
>>> crashes and core dumps as soon as I send any traffic on the nic, even
>>> a ping.
>>>
>>> Curious if anybody else is using them and having luck?
>>
>> Without source you'll be out of luck.
> 
> 
> Source at http://cr.illumos.org/~webrev/rincebrain/illumos-sfxge/
> 

Ok, got it to build cleanly, code at:

https://github.com/skiselkov/illumos-gate/tree/sfxge

Unique commits in that branch:

1c3fe595 - initial commit of the sfxge pretty much as-is from the webrev
	(plus a few formatting fixes to get git to shut up about
	trailing whitespace)

efb39dd8 - build & lint cleaning to get it to build with our gcc, plus
	one bugfix noted below

I'm not going to bother with cstyle fixes for foreign code, there's 1200
offending lines and it would jeopardize upstream-mergeability anyway.

Willing testers with sfxge hardware who don't wanna muck around with
manual building can grab a pre-built version at:
http://37.153.99.61/sfxge.tar.gz. To install & use, do:

# tar xzf sfxge.tar.gz
# beadm create sfxge_test
# beadm mount sfxge_test
Mounted successfully on: '<MOUNTPOINT>'
# cp -r sfxge/sfxge.conf sfxge/debug/* <MOUNTPOINT>/kernel/drv
# bootadm update-archive -R <MOUNTPOINT>
# reboot -fe sfxge_test

And take her out for a good spin. If testing proves this card to work
well, I can post a code review & RTI.

==============

Lint found one potential bug (which I've fixed) that might be worth
reporting back to Solarflare:

sfxge_gld_v3.c:680: contains a line like this:

if ((rc = sfxge_ev_moderation_set(sp, (unsigned int) val) != 0))

The double brace at the end is incorrect, "rc" will get assigned the
result of the "sfxge_ev_moderation_set() != 0" comparison. I'm fairly
confident this is not what the author intended.

Cheers,
-- 
Saso


More information about the OmniOS-discuss mailing list