From owner-freebsd-amd64@FreeBSD.ORG Thu Oct 13 20:21:54 2005 Return-Path: X-Original-To: freebsd-amd64@freebsd.org Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5E03F16A41F; Thu, 13 Oct 2005 20:21:54 +0000 (GMT) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id E3FD343D46; Thu, 13 Oct 2005 20:21:53 +0000 (GMT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.13.4/8.13.4) with ESMTP id j9DKLqjh021818 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 13 Oct 2005 16:21:52 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.12.9p2/8.12.9/Submit) id j9DKLhX8009161; Thu, 13 Oct 2005 16:21:43 -0400 (EDT) (envelope-from gallatin) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17230.49623.309976.429057@grasshopper.cs.duke.edu> Date: Thu, 13 Oct 2005 16:21:43 -0400 (EDT) To: Scott Long 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> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Cc: freebsd-amd64@freebsd.org, Mike Tancsa Subject: Re: realtek performance (was Re: good ATI chipset results) X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Oct 2005 20:21:54 -0000 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.. Drew