nfe(4) vs. nve(4)

Sam Leffler sam at
Sat Jun 2 17:40:12 UTC 2007

Pyun YongHyeon wrote:
> Dear All,
> As you know we have two drivers, nve(4) and nfe(4), in tree to serve
> nVidia network adapters. nve(4) was the first driver for nVidia
> network adapters and it relied on binary code(nvenetlib.o) from vendor
> to access the hardware. Using the binary code revealed several issues
> and David E. O'Brien imported FreeBSD nfe(4) which was ported by
> Shigeaki Tagashira from OpenBSD nfe(4).
> The nfe(4) was very promising as it has full source code and supported
> lots of newer nVidia hardwares. With bus_dma(9) changes I could even
> get netperf performance report for the first time which was never
> possible on nve(4).(It always panicked my box while the test was in
> progress and it's still true on CURRENT).
> Shigeaki Tagashira and I had been working on enhancing nfe(4) for
> several months. Now I think we'got stable working nfe(4) and it's time
> to supesede nve(4) with the overhauled nfe(4) before branching to 7.
> We fixed serveral bus_dma(9) bugs in the driver and added new hardware
> capabilities such as MSI/MSIX, hardware VLAN support and TSO.
> The only drawback of the overhauled nfe(4) I'm aware is lack of manual
> half-duplex media configuration. Autosensing the media works but some
> hardwares including mine does not work at all with manual half-duplex
> media configuration. Other than that it should work better than nve(4).
> I had mailed several times to David E. O'Brien to get his comments but
> I still didn't receive a reply. I'd like to commit the overhauled
> nfe(4) and make the nfe(4) default drivers for 6-STABLE/7.
> If there is objection please let me know.
> The overhauled nfe(4) can be found at the following URL.
> If you are brave enough to test Rx lock-free nfe(4), try:

One point of reference: I recently upgraded a box that was using nve
from RELENG_6 to HEAD (post gcc42).  After the upgrade netperf over nve
would repeatedly hang the system under light load.  I switched to nfe
and everything works fine and I get line rate for outbound tcp netperf.
 I'd like to see one driver in the tree.  At worst I'd like to see nfe
be the preferred driver.


More information about the freebsd-current mailing list