realtek performance (was Re: good ATI chipset results)

Andrew Gallatin gallatin at
Thu Oct 13 13:21:54 PDT 2005

Scott Long writes:

 > restarts a state machine.  I've seen evidence in other hardware that 
 > only one S/G element
 > should be used even though there are slots for 2 (or 3 in the case of 9k 
 > jumbo frames).  One

This would get my vote..

 > thing to keep in mind is the difference in the driver models between 
 > Windows and BSD
 > that Bill Paul talked about the other day.  In the Windows world, the 
 > driver owns the
 > network packet memory, whereas in BSD the stack owns it (in the form of 
 > mbufs).  This
 > means that the driver can pre-allocate a contiguous slab and populate 
 > the descriptor rings
 > with it without ever having to worry about s/g fragmentation, while in 
 > BSD fragmentation
 > is a fact of life.  So it's likely yet another case of hardware being 
 > optimized for certain
 > characteristics of Windows at the expense of other operating systems.

At least on the send side, Windows is even more fragmented than
FreeBSD is.  I'm helping a Windows guy at work write a Windows
ethernet driver for our nic.  At least on Windows 2000 Server, we've
seen buffer chains with separate descriptors for the ethernet,  ip,
and tcp headers, and tcp payload.  Eg, each layer seems to push his
own header in a separate buffer.  Maybe they've fixed this recently..


More information about the freebsd-amd64 mailing list