nfe(4) vs. nve(4)

Pyun YongHyeon pyunyh at gmail.com
Sun Jun 3 02:34:21 UTC 2007


On Sun, Jun 03, 2007 at 12:21:24AM +0400, Yuri Pankov wrote:
 > On Sat, Jun 02, 2007 at 05:42:10PM +0900, 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.
 > > http://people.freebsd.org/~yongari/nfe/if_nfe.c
 > > http://people.freebsd.org/~yongari/nfe/if_nfereg.h
 > > http://people.freebsd.org/~yongari/nfe/if_nfevar.h
 > > 
 > > If you are brave enough to test Rx lock-free nfe(4), try:
 > > http://people.freebsd.org/~yongari/nfe/WIP/if_nfe.c
 > > http://people.freebsd.org/~yongari/nfe/WIP/if_nfereg.h
 > > http://people.freebsd.org/~yongari/nfe/WIP/if_nfevar.h
 > > 
 > > 
 > > Thanks.
 > > -- 
 > > Regards,
 > > Pyun YongHyeon
 > 
 > I've tested both once again, seems to work fine with 1Gbps link (though I still
 > had to apply http://people.freebsd.org/~yongari/nfe/ciphy.patch ). And speaking

Yes, nfe(4) needs more PHY driver patches. I'll handle that too.

 > of WIP version, which I'm using now, what kind of problems should I be aware of
 > (those "brave enough" words can't be good :)?
 > 

The WIP version has suspend/resume support code and do not drop/acquire
driver lock in receive path. It was supposed to be more efficient than
previous one. However it wasn't fully tested on edge cases so you may
have to prepare system for unexpected results.

 > Hardware:
 > nfe0 at pci0:10:0: class=0x068000 card=0xe0001458 chip=0x005710de rev=0xa3 hdr=0x00
 > 
 > nfe0: <NVIDIA nForce4 CK804 MCP9 Networking Adapter> port 0xe800-0xe807 mem
 > 0xf5102000-0xf5102fff irq 23 at device 10.0 on pci0
 > nfe0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xf5102000
 > miibus1: <MII bus> on nfe0
 > ciphy0: <Cicada CS8201 10/100/1000TX PHY> PHY 7 on miibus1
 > ciphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT,
 > 1000baseT-FDX, auto
 > nfe0: bpf attached
 > nfe0: Ethernet address: 00:0f:ea:7d:f3:20
 > nfe0: [MPSAFE]
 > nfe0: [FILTER]
 > 
 > 
 > Thanks,
 > Yuri

-- 
Regards,
Pyun YongHyeon


More information about the freebsd-current mailing list