Re: [PATCH] i386: For debugging, make the initial page table setup less forgiving.

Zachary Amsden
2007-04-13T22:43:23Z

H. Peter Anvin wrote:
> Zachary Amsden wrote:
>> H. Peter Anvin wrote:
>>> + /*
>>> + * End condition: we must map up to and including
>>> + * INIT_MAP_BEYOND_END bytes beyond the end of our
>>> + * own page tables; 0x1000 is the size of the page
>>> + * table were about to write, and +0x007 is the
>>> + * attribute bits.
>>> + */
>>> + leal (INIT_MAP_BEYOND_END+0x1000+0x007)(%edi),%ebp
>>>
>>
>> hrmm? Shouldn't that still be INIT_MAP_BEYOND_END+0x0007? Seems you
>> are mapping 4M more than you need.
>>
>
> 4K, not 4M. This is an actual address, not an indirection.

Ok, the old code was writing the entire page table, so it was mapping up
4M more than it should have. It wasn't clear with 10b out of scope in
the patch.

>
> However, the expression is correct, because it needs to refer to the
> termination address *after* the current page table is written -- you
> can think of it as having already allocated 4K for a page table that
> it is about to be generated.

Correct.

Acked-by: Zachary Amsden <zach@vmware.com>