Re: [PATCH] x86: Construct 32 bit boot time page tables in native format.

H. Peter Anvin
2008-01-22T18:24:35Z

Ian Campbell wrote:
> On Mon, 2008-01-21 at 18:16 -0800, H. Peter Anvin wrote:
>> Ian Campbell wrote:
>>> I'm just preparing to send out a version which uses the native_* way of
>>> doing things, its not actually as clean as I would like so I'd be
>>> interested to see the ASM variant.
>>>
>> This is the asm version I came up with.
>
> I moderately prefer the C version, even if it is in a restricted
> environment where care is needed to access global variables. I like that
> it avoids multiple copies of the code and also find the structure of
> what's going on is more obviously apparent (even to someone who has done
> plenty of ASM mode page table frobbing in the past).
>
> Anyhow, I don't feel all that strongly about it so if the opinion of the
> early start of day maintainer(s) is strongly in favour of ASM I'll defer
> to that.
>

My opinion is that I want it done properly (PIC and all that jazz) or
not at all, and certainly would not want to mix linear and
paging-enabled code in the same file. When it comes to assembly code,
at least people can *see* that there there be dragons.

The plus *and* minus of a C version is that it's easier for people to
modify. The plus side of that is that if we really need it, it's a lot
cleaner; the minus side is that it may encourage more code to creep into
the pre-paging code, which would not be a good thing IMO.

-hpa