From 2ce5963727b40c8bd4f08473f2ab7a442253a887 Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Thu, 25 Feb 2016 13:05:09 +0100 Subject: [PATCH] x86: construct the {l2,l3}_bootmap at compile time ... rather than at runtime. The bootmaps are discarded in zap_low_mappings(), so the tables themselves can live in .init.data and be reclaimed after boot. Hooking the l1_identmap into l2_xenmap stays for safety, along with a longer comment explaining why. This does not change the EFI construction of {l2,l3}_bootmap. EFI already constructs them cleanly in their relocated form. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- 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(-) diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S index ac4962bb07..f3501fdf47 100644 --- a/xen/arch/x86/boot/head.S +++ b/xen/arch/x86/boot/head.S @@ -150,21 +150,13 @@ __start: mov %eax,sym_phys(boot_tsc_stamp) mov %edx,sym_phys(boot_tsc_stamp+4) - /* Initialise L2 boot-map page table entries (16MB). */ - mov $sym_phys(l2_bootmap),%edx - mov $PAGE_HYPERVISOR|_PAGE_PSE,%eax - mov $8,%ecx -1: mov %eax,(%edx) - add $8,%edx - add $(1<