Received: with ECARTIS (v1.0.0; list netdev); Mon, 14 Mar 2005 22:02:39 -0800 (PST) Received: from ns1.s2io.com (ns1.s2io.com [142.46.200.198]) by oss.sgi.com (8.13.0/8.13.0) with ESMTP id j2F62XuJ029915 for ; Mon, 14 Mar 2005 22:02:34 -0800 Received: from guinness.s2io.com (sentry.s2io.com [142.46.200.199]) by ns1.s2io.com (8.12.10/8.12.10) with ESMTP id j2F62RuN015697; Tue, 15 Mar 2005 01:02:27 -0500 (EST) Received: from lgt40 ([10.16.16.166]) by guinness.s2io.com (8.12.6/8.12.6) with ESMTP id j2F62ODD027579; Tue, 15 Mar 2005 01:02:25 -0500 (EST) Message-Id: <200503150602.j2F62ODD027579@guinness.s2io.com> From: "Leonid Grossman" To: "'Scott Feldman'" , Cc: , , "'Jeff Garzik'" Subject: RE: [ANNOUNCE] Experimental Driver for Neterion/S2io 10GbE Adapters Date: Mon, 14 Mar 2005 22:02:23 -0800 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 In-Reply-To: Thread-Index: AcUpHh9A7aoifWV6QZunucjA2pt2pAAAmmkA X-Scanned-By: MIMEDefang 2.34 X-Virus-Scanned: ClamAV 0.83/762/Sun Mar 13 15:35:33 2005 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 148 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: leonid.grossman@neterion.com Precedence: bulk X-list: netdev Content-Length: 3258 Lines: 80 > -----Original Message----- > From: Scott Feldman [mailto:sfeldma@pobox.com] > Sent: Monday, March 14, 2005 9:15 PM > To: > Cc: ; ; 'Jeff Garzik' > Subject: Re: [ANNOUNCE] Experimental Driver for Neterion/S2io 10GbE > Adapters > > > On Mar 14, 2005, at 12:22 PM, Alex Aizman wrote: > > > HAL-based > > ========= > > Most Neterion drivers are HAL (Hardware Abstraction Layer) based. This > > is > > always a curse and blessing; in our experience this was the latter by > > a big > > margin. While the current "s2io" driver in the kernel doesn't share > > HAL code > > with other driver, the "xge" driver is HAL-based. > > e1000 and ixgb are HAL-based, which is why there is always push back > when someone in the community modifies *_hw.[ch]. I'd hate to see more > of this in the kernel, but I can definitely relate to the "testing > across multiple OSes" gain. I'll be thrilled to see meaningful community changes to xge HAL files :-) > > Here's an (old?) idea: remember the NDIS-wrapper project? I think the > reverse is much more interesting. A linux-wrapper takes a plain old > Linux driver and wraps it with what ever is needed to make it an NDIS > driver. Or FreeBSD, or whatever. Let's pretend this is trivial for a > second. What do we gain? 1) one clean Linux driver to maintain, 2) > testability on other OSes, and 3) access to other OSes' certification > kits. Licensing is clean: the Linux driver is GPL and the > linux-wrapper code is GPL. Can't the world revolve around Linux and > let everyone else be burdened with the abstraction layer overhead? Believe or not, something like this could (and has been) done but did not stick. People did even spookier things, like a wrapper on top of another OS binary driver - some of you guys may remember Novell NLM vs. Unixware driver project :-) These attempts were always short-lived, my guess is because the teams behind the project did not have a long-term motivation and/or the expertise to get it done and (more importantly) to maintain the framework, as OS driver models evolved and diverged. On the other hand, the HAL model is more alive than ever - Intel, Neterion and many/most other modern NICs I'm aware of use HAL approach. This is actually much more common between non-Linux Oses, since there are still significant (warranted or not) GPL-related concerns. HAL discussion is an old one indeed, and the truth is still in the eye of a beholder :-) People who are sorely responsible for supporting multiple OS drivers for the same hardware (that is, NIC vendors) have strong bias in favor of HAL approach, for all the right reasons (mainly, maintainability and support). People who are sorely responsible for supporting drivers for multiple NICs on the same OS have strong bias against HAL approach - also for some pretty valid reasons. Linux is one (but not the only) case when the drivers are maintained by both groups, and the biases/preferences collide... Interestingly enough, as time goes by and everybody is getting thin on resources, HAL approach tends to gain "marketshare" rather fast - at present, Linux "s2io" is one of the very few Neterion drivers that is not using HAL. > > -scott