Subject: Re: freebsd em driver
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Andrew R. Reiter <arr@watson.org>
List: tech-net
Date: 06/17/2002 14:14:42
On Mon, 17 Jun 2002, Jonathan Stone wrote:

:In message <20020617082855.3DF9B4B24@coconut.itojun.org>,
:itojun@iijlab.net writes:
:
:>	it seems that there's freebsd driver for Intel PRO/1000 cards,
:>	contributed from Intel.  it supports some of the recent cards
:>	that if_wm.c does not support.
:>	http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/em/
:>
:>	are there anyone working on getting diffs back into if_wm.c?
:
:
:You mean support the 82540EM/82545EM/82546EB (dual-port?) support?
:That'd be great, but since you ask...
:
:One should, perhaps, consider ditching if_wm.c altogether; and
:instead, gluing the necessary NetBSD support (nbsd-clean
:mbuf-dma-mapping code, suport for the next-to-latest chips, and
:Jason's 82544 support) into the framework of FreeBSD gx driver.
:
:Why suggest this? I foudn the the throughput of the wm driver is on
:par (or worse!) than matt jacob's wx driver. The gx driver does
:significantly better (on FreeBSD) than either.  In the cases I've
:examined closely, the gx driver is (ihho) better-written (given the
:looser constraints of FreeBSD) than is the wm driver.
:
:
:Alternatively one could graft most of the `brains' of the gx driver
:(whatever-it-is in interrupt processing, setup, etc that makes it go
:faster) into the existing wm framework. However one wants to look at
:it, the resulting code would be a hybrid of the two.
:
:Example: attempt to debug the (several) problems with 82543(?)
:support.  Compare and contrast the code in if_gx for the same chip
:revisions.  Decide for yourself which is the cleaner code.
:(I ended up glomming in the FreeBSD code.)

I am not sure if this makes a difference, but IIRC, both OpenBSD and
FreeBSD use the Intel version of the driver (the em version).  And atleast
FreeBSD has added a committer who is an employee from intel to maintain
this driver.

Cheers,

--
Andrew R. Reiter
arr@watson.org
arr@FreeBSD.org