From owner-freebsd-net Tue Aug 20 12:45:28 2002 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1281437B400 for ; Tue, 20 Aug 2002 12:45:25 -0700 (PDT) Received: from tesla.distributel.net (nat.MTL.distributel.NET [66.38.181.24]) by mx1.FreeBSD.org (Postfix) with ESMTP id 35C3A43E65 for ; Tue, 20 Aug 2002 12:45:24 -0700 (PDT) (envelope-from bmilekic@unixdaemons.com) Received: (from bmilekic@localhost) by tesla.distributel.net (8.11.6/8.11.6) id g7KJiG027810; Tue, 20 Aug 2002 15:44:16 -0400 (EDT) (envelope-from bmilekic@unixdaemons.com) Date: Tue, 20 Aug 2002 15:44:16 -0400 From: Bosko Milekic To: Andrew Gallatin Cc: Luigi Rizzo , freebsd-net@FreeBSD.ORG Subject: Re: m_getcl and end-to-end performance Message-ID: <20020820154416.A27782@unixdaemons.com> References: <15714.27671.533860.408996@grasshopper.cs.duke.edu> <20020820093939.B48541@iguana.icir.org> <15714.39494.661931.882244@grasshopper.cs.duke.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <15714.39494.661931.882244@grasshopper.cs.duke.edu>; from gallatin@cs.duke.edu on Tue, Aug 20, 2002 at 03:36:38PM -0400 Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Tue, Aug 20, 2002 at 03:36:38PM -0400, Andrew Gallatin wrote: > > Luigi Rizzo writes: > > > > now if you have patches i'll be happy to have a look at them. > > Here's what I'm running with now. It removes the M_PKTHDR > requirement, allowing me to use multiple m_getcl()'s to stock jumbo > frames. I forgot about something in Luigi's original patch: Does this stuff make sure to only stock the pool with mbufs+clusters and not mbufs+any_other_external_buffer? This requirement seems to be necessary in m_freem() because otherwise you could be getting an mbuf+something_other_than_a_cluster from m_getcl(), which is _not_ what the function is supposed to do. > The uicp_socket.c is just a cheesey hack to soreceive() so as to > pretend we do mcl_pool restocking in m_free(). > > For a netperf UDP_STREAM, I see ~1,000 to ~2,000 packets/sec increase > in throughput for sizes 256 through 2K. For large (8K) I see a > ~20-30Mb/sec increase (but that's only a few hundred pkts/sec). > > Drew -- Bosko Milekic * bmilekic@unixdaemons.com * bmilekic@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message