Re: simple task to speed up booting

From: Ian Lepore <ian_at_freebsd.org>
Date: Mon, 22 Dec 2014 16:53:12 -0700
On Mon, 2014-12-22 at 15:15 +0000, Poul-Henning Kamp wrote:
> --------
> In message <1419224743.1018.108.camel_at_freebsd.org>, Ian Lepore writes:
> 
> >On Sun, 2014-12-14 at 10:32 +0000, Poul-Henning Kamp wrote:
> >> The rotating swirlie ('-/|\') in the loader accounts for a surprisingly
> >> large part of our boot time on systems with slow-ish serial consoles.
> >> 
> >I investigated this a bit today.  I instrumented the loader on arm to
> >count how many times twiddle() is called while loading a 5.5MB kernel.
> >When loading over NFS it was called 5580 times.  When loading from an
> >sdcard it was called 284 times.
> 
> It would be plenty if it twiddled once per second, in fact it would
> probably be much better if it *only* twiddled once per second, because
> the at least people could count the steps and gain some idea where
> in the process the problem is.
> 

Unfortunately we can't count on the availability of a useful clock in a
libstand environment.

> >So all in all it seems like different kinds of IO need different
> >throttling, something like the attached (which also still has some stats
> >output in it).  I can't decide if it's worth committing... it'll have a
> >lot of value to someone with slow serial and netbooting, is that common?
> 
> How about a compile time "global" divisor so people can reduce it
> even further ?
> 

Rather than compile-time I made it a run-time setting by adding a
twiddle_divisor variable to loader(8).   r276079 and r276087.

-- Ian
Received on Mon Dec 22 2014 - 22:53:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC