[Xen-devel] [PATCH v2 0/4] x86/boot: Remove mappings at 0

Andrew Cooper posted 4 patches 4 years, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20200109193241.14542-1-andrew.cooper3@citrix.com
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(-)
[Xen-devel] [PATCH v2 0/4] x86/boot: Remove mappings at 0
Posted by Andrew Cooper 4 years, 3 months ago
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