Date: Mon, 16 May 2016 16:20:07 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Allan Jude <allanjude@freebsd.org> Cc: John Baldwin <jhb@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r298230 - in head: lib/libstand sys/boot/common sys/boot/efi/libefi sys/boot/efi/loader sys/boot/i386/libfirewire sys/boot/i386/libi386 sys/boot/i386/loader sys/boot/mips/beri/loader sy... Message-ID: <20160516132007.GV89104@kib.kiev.ua> In-Reply-To: <1769146.f6cP0aQdA7@ralph.baldwin.cx> References: <201604182309.u3IN9MC6047480@repo.freebsd.org> <5716538B.4060108@freebsd.org> <20160419160500.GY2422@kib.kiev.ua> <1769146.f6cP0aQdA7@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 19, 2016 at 09:26:41AM -0700, John Baldwin wrote: > On Tuesday, April 19, 2016 07:05:00 PM Konstantin Belousov wrote: > > On Tue, Apr 19, 2016 at 11:49:31AM -0400, Allan Jude wrote: > > > On 2016-04-19 05:30, Konstantin Belousov wrote: > > > > On Mon, Apr 18, 2016 at 07:43:04PM -0400, Allan Jude wrote: > > > >> On 2016-04-18 19:36, Adrian Chadd wrote: > > > >>> Someone pointed out how this bloats out memory requirement in loader. > > > >>> > > > >>> Did anyone check that? > > > >>> > > > >>> -adrian > > > >>> > > > >> > > > >> I tested down to 128mb of ram in QEMU, booted from the installer ISO, > > > >> did the install, and booted the installed system without issue. > > > > > > > > 64MB is^H^H was very much useful and workable i386 config. i386 kernel > > > > does fit into the 32M but current automatic tuning prevents usermode > > > > from operating. Little manual tuning make 32M on tolerable. > > > > > > > > Making loader require 64M is a regression. At very least, it is > > > > impossible to test low mem configs anymore. > > > > > > > > > > Would a src.conf knob make sense, to use a smaller value when targeting > > > small systems, while keeping the advantages when using more reasonable > > > systems? > > > > > > Or we could make these changes to the HEAP and bcache size specific to > > > 64bit platforms? > > I do not consider neither the current state, nor the two proposed > > changes, acceptable. Loader is same on 32 and 64 bit x86 machines, so > > how would you reconfigure it on 64bit machine ? Non-default knob is too > > obscure and hard to communicate, people would try to use 32M and see > > that it breaks, just abandoning the idea of trying. > > > > Either default-built loader should size itself dynamically based on the > > available memory, perhaps capping heap at 64MB starting from the 128MB > > configs, or, assuming that we consider 32MB be the absolute minimal > > workable config, loader could set HEAP to 8MB. > > > > Dynamic heap size is theoretically best, but it might be hard to do > > if memory map is retrieved after heap is configured (I do not know). > > We retreive the memory map first and parse the SMAP to pick the best > "spot" for the heap. (We prefer to put it "away" from the location > where we load the kernel + modules.) Choosing a dynamic size for the > heap should be quite doable. Fixing libstand's malloc() to try to > "grow" when necessary would be nice for the EFI case as well, but that > is a larger change. It was a month since this commit was made. Is there any progress with fixing the regression on small machines ? BTW, as a data point, I happen to have to run stripped-down i386 current kernel on 32MB machine, and saw around 11MB left to usermode after the init and /bin/sh were started for singlemode. Kernel was stripped, but not too much stripped (unused drivers removed).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160516132007.GV89104>