From owner-freebsd-current Fri Mar 7 7:42: 4 2003 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E75CD37B401 for ; Fri, 7 Mar 2003 07:42:02 -0800 (PST) Received: from tesla.distributel.net (nat.MTL.distributel.NET [66.38.181.24]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2DE5043F93 for ; Fri, 7 Mar 2003 07:42:02 -0800 (PST) (envelope-from bmilekic@unixdaemons.com) Received: (from bmilekic@localhost) by tesla.distributel.net (8.11.6/8.11.6) id h27FeDJ18850; Fri, 7 Mar 2003 10:40:13 -0500 (EST) (envelope-from bmilekic@unixdaemons.com) Date: Fri, 7 Mar 2003 10:40:13 -0500 From: Bosko Milekic To: Petri Helenius Cc: freebsd-current@FreeBSD.ORG Subject: Re: mbuf cache Message-ID: <20030307104013.A18824@unixdaemons.com> References: <20030304164449.A10136@unixdaemons.com> <0e1b01c2e29c$d1fefdc0$932a40c1@PHE> <20030304173809.A10373@unixdaemons.com> <0e2b01c2e2a3$96fd3b40$932a40c1@PHE> <20030304182133.A10561@unixdaemons.com> <0e3701c2e2a7$aaa2b180$932a40c1@PHE> <20030304190851.A10853@unixdaemons.com> <001201c2e2ee$54eedfb0$932a40c1@PHE> <20030307093736.A18611@unixdaemons.com> <008101c2e4ba$53d875a0$932a40c1@PHE> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <008101c2e4ba$53d875a0$932a40c1@PHE>; from pete@he.iki.fi on Fri, Mar 07, 2003 at 05:00:42PM +0200 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Fri, Mar 07, 2003 at 05:00:42PM +0200, Petri Helenius wrote: > > There's probably a tightloop of frees going on somewhere. It's tough > > for me to analyze this as I cannot reproduce it. Have you tried > > running your tests over loopback to see if the same thing happens? > > What is the definition of "tightloop"? The received packet mbufs are freed > when the packets get processed/discarded which happens once for > a packet. The received packet rate is 50000-150000 packets per second. > > > > If so, and it does, can you please explain how to exactly replicate > > the test? > > Mirror a port with ~300-800Mbps of IP traffic to an em port. Just enable > promisc and monitor so it drops the packets after interrupt processing. > The overhead beyond that is neglible compared to mb_free. > > Pete Ok I have a patch that makes mb_free() a lot smaller by moving out everything not in the common case to seperate functions. I'm going to wait until I get home to give it a test run before I send it to you. At least this way you'll be able to profile again and tell me whether it's really the common case of mb_free() that's being expensive or if you're often hitting non-common-cases (in which case the auxilary routines should register the higher CPU usage). -- Bosko Milekic * bmilekic@unixdaemons.com * bmilekic@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message