[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 3/8] xen/x86: Construct the {l2, l3}_bootmap at compile time



On 24/02/16 11:34, Jan Beulich wrote:
>>>> On 23.02.16 at 17:31, <andrew.cooper3@xxxxxxxxxx> wrote:
>> ---
>>  xen/arch/x86/boot/head.S   | 18 +++++-------------
>>  xen/arch/x86/boot/x86_64.S | 19 +++++++++++++++++++
>>  xen/arch/x86/x86_64/mm.c   |  4 ----
>>  3 files changed, 24 insertions(+), 17 deletions(-)
> Is this intentionally leaving the EFI equivalent untouched?

Yes.

>
>> --- a/xen/arch/x86/boot/x86_64.S
>> +++ b/xen/arch/x86/boot/x86_64.S
>> @@ -184,3 +184,22 @@ GLOBAL(idle_pg_table)
>>          .size idle_pg_table, . - idle_pg_table
>>  
>>  GLOBAL(__page_tables_end)
>> +
>> +/* Init pagetables.  Enough page directories to map into the bottom 1GB. */
>> +        .section .init.data, "a", @progbits
>> +        .align PAGE_SIZE, 0
>> +
>> +GLOBAL(l2_bootmap)
>> +        .quad sym_phys(l1_identmap) + __PAGE_HYPERVISOR
> The relocation needed for this and ...
>
>> +        idx = 1
>> +        .rept 7
>> +        .quad (idx << L2_PAGETABLE_SHIFT) | __PAGE_HYPERVISOR | _PAGE_PSE
>> +        idx = idx + 1
>> +        .endr
>> +        .fill L2_PAGETABLE_ENTRIES - 8, 8, 0
>> +        .size l2_bootmap, . - l2_bootmap
>> +
>> +GLOBAL(l3_bootmap)
>> +        .quad sym_phys(l2_bootmap) + __PAGE_HYPERVISOR
> ... this won't get properly adjusted by efi_arch_relocate_image(),
> due to living outside of [__page_tables_start, __page_tables_end).

Deliberately so.

The EFI needs to relocate the tables anyway.  It currently (re)writes
them fresh at the relocated address, and leaving this be is the more
simple option.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.