Date: Thu, 13 Oct 2005 16:21:43 -0400 (EDT) From: Andrew Gallatin <gallatin@cs.duke.edu> To: Scott Long <scottl@samsco.org> Cc: freebsd-amd64@freebsd.org, Mike Tancsa <mike@sentex.net> Subject: Re: realtek performance (was Re: good ATI chipset results) Message-ID: <17230.49623.309976.429057@grasshopper.cs.duke.edu> In-Reply-To: <434EB98B.6080503@samsco.org> References: <6.2.3.4.0.20051013090818.07a5c9a0@64.7.153.2> <200510131149.24411.jhb@freebsd.org> <1129223254.9093.3.camel@server.mcneil.com> <200510131322.45968.jhb@freebsd.org> <434EB98B.6080503@samsco.org>
index | next in thread | previous in thread | raw e-mail
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.. Drewhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17230.49623.309976.429057>
