Re: [PATCH] x86/head: Refactor 32-bit pgtable setup

From: Boris Ostrovsky
Date: Fri Dec 09 2016 - 09:31:49 EST


On 12/08/2016 11:33 PM, Ingo Molnar wrote:
> * Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> wrote:
>
>> The new Xen PVH entry point requires page tables to be setup by the
>> kernel since it is entered with paging disabled.
>>
>> Pull the common code out of head_32.S so that mk_early_pgtbl_32 can be
>> invoked from both the new Xen entry point and the existing startup_32
>> code.
>>
>> Convert resulting common code to C.
>>
>> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
>> ---
>> This is replacement for https://lkml.org/lkml/2016/10/14/434, with
>> assembly code re-written in C as requested by Ingo.
>>
>>
>> arch/x86/include/asm/pgtable_32.h | 32 ++++++++++
>> arch/x86/kernel/head32.c | 62 +++++++++++++++++++
>> arch/x86/kernel/head_32.S | 122 +++-----------------------------------
>> 3 files changed, 101 insertions(+), 115 deletions(-)
> Whee, I love it! And the code is so much more readable!
>
> Did you have any particular robustness problems (difficult to resolve crashes)
> while developing it, or was it reasonably straightforward to do?

There was nothing particularly difficult beyond understanding current
code. That, of course, is not to say that there were no crashes but
developing this on a guest gives you pretty good insight into why/where
you crashed.

This was tested on bare-metal (in case you are wondering), but obviously
more testing is always good.


-boris