[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |