nfe(4) vs. nve(4)
pyunyh at gmail.com
Sat Jun 2 08:42:17 UTC 2007
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:
More information about the freebsd-current