From owner-freebsd-current@FreeBSD.ORG Tue Apr 15 08:02:30 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DBCF11065672 for ; Tue, 15 Apr 2008 08:02:30 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.178]) by mx1.freebsd.org (Postfix) with ESMTP id 9CC948FC30 for ; Tue, 15 Apr 2008 08:02:30 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by py-out-1112.google.com with SMTP id u52so2604378pyb.10 for ; Tue, 15 Apr 2008 01:02:30 -0700 (PDT) Received: by 10.142.71.12 with SMTP id t12mr1270704wfa.312.1208245084058; Tue, 15 Apr 2008 00:38:04 -0700 (PDT) Received: from ?10.0.1.199? ( [24.94.72.120]) by mx.google.com with ESMTPS id 30sm13232166wfa.2.2008.04.15.00.38.02 (version=SSLv3 cipher=OTHER); Tue, 15 Apr 2008 00:38:03 -0700 (PDT) Date: Mon, 14 Apr 2008 21:38:34 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Andrew Reilly In-Reply-To: <20080415034343.GB87024@duncan.reilly.home> Message-ID: <20080414213656.Q959@desktop> References: <48002444.4030505@elischer.org> <20080412191300.E7693@fledge.watson.org> <20080412181601.GA14472@freebsd.org> <20080415034343.GB87024@duncan.reilly.home> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Roman Divacky , Robert Watson , Julian Elischer , FreeBSD Current Subject: Re: stack hogs in kernel X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Apr 2008 08:02:30 -0000 On Tue, 15 Apr 2008, Andrew Reilly wrote: > On Sat, Apr 12, 2008 at 08:16:01PM +0200, Roman Divacky wrote: >> On Sat, Apr 12, 2008 at 07:14:21PM +0100, Robert Watson wrote: >>> >>> On Fri, 11 Apr 2008, Julian Elischer wrote: >>> >>>> 0xc05667e3 kldstat [kernel]: 2100 >>>> 0xc07214f8 sendsig [kernel]: 1416 >>>> 0xc04fb426 ugenread [kernel]: 1200 >>>> 0xc070616b ipmi_smbios_identify [kernel]: 1136 >>>> 0xc050bd26 usbd_new_device [kernel]: 1128 >>>> 0xc0525a83 pfs_readlink [kernel]: 1092 >>>> 0xc04fb407 ugenwrite [kernel]: 1056 >>>> 0xc055ea33 prison_enforce_statfs [kernel]: 1044 >>> >>> This one, at least, is due to an issue Roman pointed out on hackers@ in the >>> last 24 hours -- a MAXPATHLEN sized buffer on the stack. Looks like >>> pfs_readlink() has the same issue. >> >> I plan to look at some of the MAXPATHLEN usage... I guess we can shave a few >> tens of KBs from the kernel (static size and runtime size). > > Why are single-digit kilobytes of memory space interesting, in this > context? Is the concern about L1 data cache footprint, for performance > reasons? If that is the case, the MAXPATHLEN bufffer will only really > occupy the amount of cache actually touched. > > I've long wondered about the seemingly fanatical stack size concern in > kernel space. In other domains (where I have more experience) you can > get good performance benefits from the essentially free memory management > and good cache re-use that comes from putting as much into the > stack/call-frame as possible. There is a small fixed kernel stack per-thread. It has to be allocated up-front out of kernel memory. There isn't really enough KVA to just allow kernel stacks to grow unbounded. Also consider that most of the time this memory is just unused. Right now on amd64 we allocate 4 pages for kernel stacks! This is just huge. It makes allocation slower and more likely to fail since we have to find 5 contiguous pages (one for a guard page). Jeff > > Just curious. > > Cheers, > > -- > Andrew > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >