NOTE: Sending this series as an RFC as it is a follow-on to the hyperlaunch
dom0 device tree series going through rounds of review right now. This specific
iteration is based off of v3 with the exception of one fix found here and
already incorporated into v4.
The Hyperlaunch domain builder series is the third split out for the
introduction of the Hyperlaunch domain builder logic. These changes focus on
introducing the ability to create multiple PVH domains at boot. The definition
for those domains will come from the Device Tree capability introduced in the
dom0 device tree series.
Documentation on Hyperlaunch:
https://wiki.xenproject.org/wiki/Hyperlaunch
Original Hyperlaunch v1 patch series:
https://lists.xenproject.org/archives/html/xen-devel/2022-07/msg00345.html
V/r,
Daniel P. Smith
Daniel P. Smith (38):
maintainers: add new section for hyperlaunch
x86/hyperlaunch: correct the naming of domain ramdisk field
x86/hyperlaunch: convert max vcpu determination to domain builder
x86/hyperlaunch: convert vcpu0 creation to domain builder
x86/hyperlaunch: move dom0 cpuid policy behind capability check
x86/hyperlaunch: add hardware domain capability support
x86/hyperlaunch: introduce pvh domain builder
x86/hyperlaunch: move initial hwdom setup to dom_construct_pvh
x86/boot: convert dom0 page calculation to use boot domain
x86/boot: refactor dom0 page calculation
x86/boot: generalize paging pages calculation
x86/boot: generalize compute number of domain pages
x86/hyperlaunch: move page computation to domain builder
x86/hyperlaunch: move pvh p2m init to domain builder
x86/hyperlaunch: move iommu init to domain builder
x86/boot: move and rename sched_setup_dom0_vcpus
x86/hyperlaunch: move pvh_setup_cpus to domain builder
x86/boot: rename pvh acpi setup function
x86/hyperlaunch: add domu memory map construction
x86/hyperlaunch: move populating p2m under domain builder
x86/hyperlaunch: move remaining pvh dom0 construction
x86/hyperlaunch: relocate pvh_steal_ram to domain builder
x86/hyperlaunch: add domu acpi construction
x86/boot: export command line processing
x86/hyperlaunch: convert create_dom0 to arch_create_dom
x86/hyperlaunch: remove dom0-isms from arch_create_dom
x86/hyperlaunch: introduce domain builder general dom creation
x86/hyperlaunch: add xenstore boot capabilities flag
x86/hyperlaunch: allocate console for domu
x86/hyperlaunch: allocate xenstore for domu
x86/hyperlaunch: move boot module discard to domain builder
x86/hyperlaunch: introduce concept of core domains
x86/boot: refactor bzimage parser to be re-enterant
x86/hyperlaunch: introduce multidomain kconfig option
x86/hyperlaunch: add multidomain construction logic
x86/hyperlaunch: enable unpausing mulitple domains
x86/hyperlaunch: generalize domid assignment
tools: introduce hyperlaunch domain late init
.gitignore | 1 +
MAINTAINERS | 9 +
tools/helpers/Makefile | 12 +
tools/helpers/late-init-domains.c | 364 +++++++
tools/helpers/late-init-domains.h | 18 +
tools/helpers/xs-helpers.c | 117 +++
tools/helpers/xs-helpers.h | 26 +
xen/arch/x86/bzimage.c | 38 +-
xen/arch/x86/dom0_build.c | 120 +--
xen/arch/x86/domain-builder/Kconfig | 12 +
xen/arch/x86/domain-builder/Makefile | 1 +
xen/arch/x86/domain-builder/core.c | 127 ++-
xen/arch/x86/domain-builder/domain.c | 421 ++++++++
xen/arch/x86/domain-builder/fdt.c | 37 +-
xen/arch/x86/hvm/Makefile | 1 +
xen/arch/x86/hvm/dom0_build.c | 600 +-----------
xen/arch/x86/hvm/dom_build.c | 1063 +++++++++++++++++++++
xen/arch/x86/include/asm/boot-domain.h | 21 +-
xen/arch/x86/include/asm/bootinfo.h | 28 +-
xen/arch/x86/include/asm/bzimage.h | 5 +-
xen/arch/x86/include/asm/dom0_build.h | 19 +-
xen/arch/x86/include/asm/domain-builder.h | 29 +
xen/arch/x86/include/asm/setup.h | 4 +-
xen/arch/x86/pv/dom0_build.c | 19 +-
xen/arch/x86/setup.c | 207 +---
xen/common/sched/core.c | 12 -
xen/include/xen/sched.h | 1 -
27 files changed, 2412 insertions(+), 900 deletions(-)
create mode 100644 tools/helpers/late-init-domains.c
create mode 100644 tools/helpers/late-init-domains.h
create mode 100644 tools/helpers/xs-helpers.c
create mode 100644 tools/helpers/xs-helpers.h
create mode 100644 xen/arch/x86/domain-builder/domain.c
create mode 100644 xen/arch/x86/hvm/dom_build.c
--
2.30.2