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

From: H. Peter Anvin
Date: Tue Jan 22 2008 - 11:25:31 EST


Ingo Molnar wrote:
* H. Peter Anvin <hpa@xxxxxxxxx> wrote:

I was thinking about this yesterday, and it seems to me that there are two cleaner options here...

- either we should put in the full machinery to be able to run C code compiled with -fPIC/-fPIE before paging is enabled. Unfortunately gcc generates R_386_GOT32 relocations for external references even with -fPIE, so we'll have to put in some code to adjust the GOT (easy enough to do.)

i'd _love_ to have this approach instead of the assembly routines. While 'constructing pagetables' might not look like a big deal in isolation - C is still 10 times more programmable than assembly. Pushing more of the early boot code into a sane, non-assembly environment will have positive long-term effects all across.


Yes, but that doesn't mean that this particular task is the right thing for that job. In particular, the GOT adjustment wll be almost the same size as the whole task.

On the other hand, there is a whole bunch of post-paging code in head_32.S which doesn't need to be there.

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/