[SLOF] [PATCH] Do not include the FCode evaluator by default anymore

Segher Boessenkool segher at kernel.crashing.org
Fri Sep 2 00:27:04 AEST 2016


On Wed, Aug 31, 2016 at 03:59:59AM -0500, Segher Boessenkool wrote:
> On Wed, Aug 31, 2016 at 09:02:20AM +0200, Thomas Huth wrote:
> > On 31.08.2016 07:44, Segher Boessenkool wrote:
> > > On Wed, Aug 31, 2016 at 05:00:14AM +0200, Thomas Huth wrote:
> > >> Commit 2fed5652819ad26627a8 ("Always include evaluator, move
> > >> framebuffer token init to fbuffer.fs") made sure that the FCode
> > >> evaluator is always included, during each boot cycle. The basic
> > >> idea was that we would soon be starting to support PCI cards with
> > >> FCode drivers on them. However, this has never happened, and so
> > >> this change was in vain. The bad thing is now that the inclusion
> > >> of the FCode evaluator also takes a lot of precious boot time,
> > >> e.g. when running in QEMU TCG mode, it is more than a second.
> > > 
> > > Why is it so slow?
> > 
> > The time is lost in token.fs. I think it's because it is using a lot of
> > TICKs to set the behavior of the various tokens, and that seems to slow
> > things down.
> 
> So name lookup is still too slow?  It is using a very simplistic cache
> that sped it up >100x when I added it (was using a slow sim then, too),
> but that cache is killed every time you change search order, etc.
> 
> I'll have a look at token.fs .

I don't see anything else that could cause the slowdown, just all the
ticks.

One way to speed this up is to put the init in a word (so use ['] instead),
it probably is quite noticably faster.  Fast enough, I do not know.


Segher


More information about the SLOF mailing list