[SLOF] [PATCH] Do not include the FCode evaluator by default anymore
thuth at redhat.com
Fri Sep 2 01:53:21 AEST 2016
On 01.09.2016 16:27, Segher Boessenkool wrote:
> 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
> 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.
I tried that already, but it's also not fast enough - it still slows
down the boot process by more than a second.
Since we're currently not using the FCODE evaluator at all, I think it
is not worth the effort to spend a lot of time with optimizations here
... let's simply disable it by default 'till we really need it again.
More information about the SLOF