[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:50, Jan Beulich wrote: >>>> On 24.02.16 at 12:40, <andrew.cooper3@xxxxxxxxxx> wrote: >> 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. > Okay, I guess you mean to say that both together continue to > work, which without it being said explicitly (allowing the implication > that this also has got tested) I was rather unsure about. Hence > I'd like to at least ask for an explicit respective statement in the > commit message. Ok. The other reason why leaving the EFI side along is that these tables can't both be in .init.data and covered by [__page_tables_start, __page_tables_end). ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |