Skip site navigation (1)Skip section navigation (2)
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>