simple task to speed up booting

Ian Lepore ian at freebsd.org
Mon Dec 22 23:53:16 UTC 2014


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




More information about the freebsd-current mailing list