From owner-freebsd-hackers@freebsd.org Wed Nov 25 03:32:44 2015 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9E5FA36CFC for ; Wed, 25 Nov 2015 03:32:44 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound1b.ore.mailhop.org (outbound1b.ore.mailhop.org [54.200.247.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CA7A51F89 for ; Wed, 25 Nov 2015 03:32:44 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound1.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Wed, 25 Nov 2015 03:33:00 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id tAP3WaRB001513; Tue, 24 Nov 2015 20:32:36 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1448422356.1297.5.camel@freebsd.org> Subject: Re: vmstat -m strangeness From: Ian Lepore To: John Baldwin , freebsd-hackers@freebsd.org Date: Tue, 24 Nov 2015 20:32:36 -0700 In-Reply-To: <1769220.C3nP8qXIrX@ralph.baldwin.cx> References: <1445378386.14127.2.camel@freebsd.org> <1769220.C3nP8qXIrX@ralph.baldwin.cx> Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.16.5 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Nov 2015 03:32:45 -0000 On Tue, 2015-11-24 at 17:10 -0800, John Baldwin wrote: > On Tuesday, October 20, 2015 03:59:46 PM Ian Lepore wrote: > > root@wand:~ # vmstat -m | egrep "busdma|bounce|devbuf|Type" > > Type InUse MemUse HighUse Requests Size(s) > > devbuf 125 10K - 166 16,32,64,256,512,1024 > > busdma 922 116K - 922 128 > > bounce 385 775K - 385 32,128 > > > > How do 385 allocations of 32 or 128 bytes add up to 775K? The > > answer... 768K of individual pages each allocated via > > contigmalloc() do > > n't show up in that output. Why is that, and is it something that > > should be fixed? > > Hmm. The output is "correct", it's just that these small allocations > have > relatively high overhead (PAGE_SIZE - 32 for a 32 byte allocation, > etc.). > > Not sure if there's a way to explain (in vmstat output) why the > overhead for > certain malloc buckets is so high. Perhaps the vmstat(8) manpage > could be > expanded to explain what MemUse is and list the contigmalloc() case > explicitly > as one possible reason for high overhead? > I think I wasn't very clear. There are 385 small allocations (mostly 32 byte) which are using 7 pages. The other 768 pages were allocated by calling contigmalloc() 768 times asking for one page. The strangeness is that those pages aren't reflected in that output. There's no '4096' category in sizes. To put it another way, contigmalloc() is accounting for the memory it allocates in a way that makes it show up in MemUse but not in Size(s), which makes for confusing output. No big deal really, just something I noticed. -- Ian