This is the (long overdue) series which finally removes the mapping at 0
during early boot, which has bitten us in the past. It also removes an RWX
gadget which persists past boot in the idle pagetables.
Most of the complexity was down to the differing (and hard-to-follow) uses of
the bootmap. I first opted to get rid of the bootmap entirely. While this is
possible for the current Multiboot paths, it is incompatible with the EFI boot
path, and works against David's existing plans to not use the trampoline at
all.
Further ideas: (not addressed here because -ETIME on my behalf.)
1) Get PV-shim to use hypercalls for AP startup, at which point we can compile
out the trampoline entirely. This is probably helpful for robustness
testing in combination with David's plans.
2) Drop BOOTSTRAP_MAP_{BASE,LIMIT} and have bootstrap_map() populate into the
directmap, as we only request RAM mappings. This would allow us to drop 3
of the bootmap pagetables. However, I'm not entirely convinced the later
logic will cope with cacheability boundaries forcing the use of small
mappings.
This series has had complete testing for MB and EFI boot paths. It turns out
that grub can chainload xen.efi and test those paths.
v2:
* Two patches already committed. See individual patches for other changes.
Andrew Cooper (4):
x86/boot: Remove the preconstructed low 16M superpage mappings
x86/boot: Clean up l?_bootmap[] construction
x86/boot: Don't map 0 during boot
x86/boot: Drop INVALID_VCPU
xen/arch/x86/boot/head.S | 32 ++++++++++++++++----------------
xen/arch/x86/boot/x86_64.S | 21 ++++++++++-----------
xen/arch/x86/cpu/mcheck/mce.c | 2 +-
xen/arch/x86/domain_page.c | 2 +-
xen/arch/x86/efi/efi-boot.h | 20 +++++++++++++-------
xen/arch/x86/setup.c | 16 ++++++++--------
xen/arch/x86/tboot.c | 2 +-
xen/arch/x86/x86_64/asm-offsets.c | 3 ---
xen/arch/x86/xen.lds.S | 3 +++
xen/include/asm-x86/setup.h | 3 ---
10 files changed, 53 insertions(+), 51 deletions(-)
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel