[PATCH v2 0/5] x86/xen: support booting PVH guest via standard boot path

From: Juergen Gross
Date: Thu Nov 09 2017 - 08:28:45 EST


Booting a Xen PVH guest requires a special boot entry as it is
mandatory to setup some Xen-specific interfaces rather early. When grub
or OVMF are used as boot loaders, however, those will fill the boot
parameters in zeropage and there is no longer a need to do something
PVH specific in the early boot path.

This patch series adds support for that scenario by identifying PVH
environment and doing the required init steps via Xen hooks instead of
using a dedicated boot entry.

The dedicated entry is still mandatory for support of Dom0 running in
PVH mode as in this case there is no grub or OVMF involved for filling
in the boot parameters.

Changes in V2:
- added new patches 1 and 2

Cc: kys@xxxxxxxxxxxxx
Cc: haiyangz@xxxxxxxxxxxxx
Cc: sthemmin@xxxxxxxxxxxxx
Cc: akataria@xxxxxxxxxx
Cc: pbonzini@xxxxxxxxxx
Cc: rkrcmar@xxxxxxxxxx
Cc: boris.ostrovsky@xxxxxxxxxx
Cc: rusty@xxxxxxxxxxxxxxx
Cc: devel@xxxxxxxxxxxxxxxxxxxxxx
Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
Cc: kvm@xxxxxxxxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx
Cc: linux-graphics-maintainer@xxxxxxxxxx
Cc: pv-drivers@xxxxxxxxxx
Cc: dmitry.torokhov@xxxxxxxxx
Cc: xdeguillard@xxxxxxxxxx
Cc: moltmann@xxxxxxxxxx
Cc: arnd@xxxxxxxx
Cc: gregkh@xxxxxxxxxxxxxxxxxxx
Cc: linux-input@xxxxxxxxxxxxxxx
Cc: rjw@xxxxxxxxxxxxx
Cc: len.brown@xxxxxxxxx
Cc: pavel@xxxxxx
Cc: linux-pm@xxxxxxxxxxxxxxx

Juergen Gross (5):
x86: merge x86_hyper into x86_platform and x86_init
x86: add enum for hypervisors to replace x86_hyper
x86/acpi: add test for ACPI_FADT_NO_VGA
x86: add guest_late_init hook to hypervisor_x86 structure
x86/xen: use guest_late_init to detect Xen PVH guest

arch/x86/hyperv/hv_init.c | 2 +-
arch/x86/include/asm/hypervisor.h | 46 +++++++++++-----------------
arch/x86/include/asm/kvm_para.h | 2 --
arch/x86/include/asm/x86_init.h | 27 +++++++++++++++++
arch/x86/kernel/acpi/boot.c | 5 +++
arch/x86/kernel/apic/apic.c | 2 +-
arch/x86/kernel/cpu/hypervisor.c | 64 +++++++++++++++++++++------------------
arch/x86/kernel/cpu/mshyperv.c | 6 ++--
arch/x86/kernel/cpu/vmware.c | 8 ++---
arch/x86/kernel/kvm.c | 9 +++---
arch/x86/kernel/setup.c | 2 +-
arch/x86/kernel/x86_init.c | 10 ++++++
arch/x86/mm/init.c | 2 +-
arch/x86/xen/enlighten_hvm.c | 36 +++++++++++++++++-----
arch/x86/xen/enlighten_pv.c | 6 ++--
arch/x86/xen/enlighten_pvh.c | 9 ------
drivers/hv/vmbus_drv.c | 2 +-
drivers/input/mouse/vmmouse.c | 10 +++---
drivers/misc/vmw_balloon.c | 2 +-
include/linux/hypervisor.h | 8 +++--
20 files changed, 153 insertions(+), 105 deletions(-)

--
2.12.3