nfe(4) vs. nve(4)

Yuri Pankov yuri.pankov at gmail.com
Sat Jun 2 20:21:43 UTC 2007


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
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 :)?

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


More information about the freebsd-current mailing list