Re: [PATCH 10/28] i386: map enough initial memory to create lowmem mappings

Jeremy Fitzhardinge
2007-04-19T21:35:25Z

Chuck Ebbert wrote:
> H. Peter Anvin wrote:
>
>> Andi Kleen wrote:
>>
>>> Then we would have seen reports surely?
>>>

Yes, I would have thought so. It surprised me that such an obvious bug
could be there, apparently for a long time. But it's real, and
potentially affects everyone. It probably doesn't affect highly modular
distros much, since the kernel itself will be relatively small.

> I never saw a description of the symptoms of encountering this bug.
> Does it just hang, or what?
>

You get an early-fault message on-screen, assuming that's enabled;
otherwise it will just appear to hang. It happens in pagetable_init,
when it allocates a new pagetable above the head.S mapping (8M in my
case). It will only hit if the kernel size approaches a 4M boundary,
since it won't leave enough space mapped to construct the lowmem mappings.

It only affects native booting, since under Xen all those mappings have
already been constructed. It happened to me with a paravirt kernel that
happened to Xen compiled into it, but that was irrelevent (though
misleading; the 40k difference in kernel size was enough to make it not
happen in a non-Xen kernel).

J