From owner-freebsd-net Fri Oct 8 14:46:31 1999 Delivered-To: freebsd-net@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 8F0E614EE6 for ; Fri, 8 Oct 1999 14:46:28 -0700 (PDT) (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.9.1/8.9.1) with ESMTP id RAA01636; Fri, 8 Oct 1999 17:46:13 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.9.3/8.9.1) id RAA19829; Fri, 8 Oct 1999 17:45:43 -0400 (EDT) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Fri, 8 Oct 1999 17:45:43 -0400 (EDT) To: Mohit Aron Cc: wollman@khavrinen.lcs.mit.edu (Garrett Wollman), freebsd-net@FreeBSD.ORG Subject: Re: sbappend() is not scalable In-Reply-To: <199910082133.QAA26223@cs.rice.edu> References: <199910082129.RAA67391@khavrinen.lcs.mit.edu> <199910082133.QAA26223@cs.rice.edu> X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <14334.25691.85379.323929@grasshopper.cs.duke.edu> Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Mohit Aron writes: > > > > > This is a well-known feature of the 4BSD socket layer. The right fix > > is to get rid of the socket layer, but this requires a substantial > > effort that none of the people who know how to do it have been able to > > put in. > > > > > It may not require such a massive effort. I fixed it for my experiments just > by maintaining an extra pointer to the tail of the list of mbufs. My solution > however isn't general enough in that I haven't patched other parts of the > socket/mbuf code to know about this pointer. However, I don't think it should > require overhauling the whole system. For what it is worth, sbappend() is also responsible for a non-trivial amount of cpu wastage when running TCP on low-latency, high-bandwidth networks such gigabit ethernet & myrinet. I don't have the exact data in front of me, but I seem to remember that, next to bcopy & in_cksumdata, it is the function where the most cpu is being spent when transmitting at in the range of 500-1100Mb/s. This is according to iprobe on FreeBSD/alpha. Drew ------------------------------------------------------------------------------ Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin Duke University Email: gallatin@cs.duke.edu Department of Computer Science Phone: (919) 660-6590 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message