From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
jason.andryuk@amd.com, stefano.stabellini@amd.com,
agarciav@amd.com
Subject: [RFCv2 00/38] Hyperlaunch domain builder
Date: Thu, 15 May 2025 09:17:06 -0400 [thread overview]
Message-ID: <20250515131744.3843-1-dpsmith@apertussolutions.com> (raw)
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
iteration of the RFC series is based off of v6 of the dom0 device tree series.
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.
Significant Changes in v2:
- bzimage renetrant was dropped for a proper refactoring of kernel headroom and
expansion
- While there is concern on the affect for pv construction, event channel
allocation has been delayed to a newly introduced builder_finalize function
called after all construction has completed
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: 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: introduce arch builder finalize
x86/hyperlaunch: allocate xenstore for domu
x86/hyperlaunch: allocate console for domu
x86/hyperlaunch: introduce concept of core domains
common/gzip: add function to read isize field
x86/hyperlaunch: move headroom under domain builder
x86/hyperlaunch: move kernel extraction under domain builder
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 | 11 +
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/Makefile | 1 +
xen/arch/x86/bzimage.c | 87 +-
xen/arch/x86/dom0_build.c | 120 +--
xen/arch/x86/domain-builder/Makefile | 2 +
xen/arch/x86/domain-builder/core.c | 140 +++
xen/arch/x86/domain-builder/domain.c | 480 ++++++++++
xen/arch/x86/hvm/Makefile | 1 +
xen/arch/x86/hvm/dom0_build.c | 600 +-----------
xen/arch/x86/hvm/dom_build.c | 1047 +++++++++++++++++++++
xen/arch/x86/include/asm/boot-domain.h | 24 +-
xen/arch/x86/include/asm/bootinfo.h | 28 +-
xen/arch/x86/include/asm/bzimage.h | 6 +-
xen/arch/x86/include/asm/dom0_build.h | 19 +-
xen/arch/x86/include/asm/domain-builder.h | 33 +
xen/arch/x86/include/asm/setup.h | 4 +-
xen/arch/x86/pv/dom0_build.c | 21 +-
xen/arch/x86/setup.c | 214 +----
xen/common/domain-builder/Kconfig | 12 +
xen/common/domain-builder/fdt.c | 40 +-
xen/common/gzip/gunzip.c | 12 +
xen/common/sched/core.c | 12 -
xen/include/xen/domain-builder.h | 14 +
xen/include/xen/gunzip.h | 12 +
xen/include/xen/sched.h | 1 -
31 files changed, 2526 insertions(+), 953 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/Makefile
create mode 100644 xen/arch/x86/domain-builder/core.c
create mode 100644 xen/arch/x86/domain-builder/domain.c
create mode 100644 xen/arch/x86/hvm/dom_build.c
create mode 100644 xen/arch/x86/include/asm/domain-builder.h
--
2.30.2
next reply other threads:[~2025-05-15 13:18 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-15 13:17 Daniel P. Smith [this message]
2025-05-15 13:17 ` [RFCv2 01/38] maintainers: add new section for hyperlaunch Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 02/38] x86/hyperlaunch: correct the naming of domain ramdisk field Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 03/38] x86/hyperlaunch: convert max vcpu determination to domain builder Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 04/38] x86/hyperlaunch: convert vcpu0 creation " Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 05/38] x86/hyperlaunch: move dom0 cpuid policy behind capability check Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 06/38] x86/hyperlaunch: introduce pvh domain builder Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 07/38] x86/hyperlaunch: move initial hwdom setup to dom_construct_pvh Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 08/38] x86/boot: convert dom0 page calculation to use boot domain Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 09/38] x86/boot: refactor dom0 page calculation Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 10/38] x86/boot: generalize paging pages calculation Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 11/38] x86/boot: generalize compute number of domain pages Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 12/38] x86/hyperlaunch: move page computation to domain builder Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 13/38] x86/hyperlaunch: move pvh p2m init " Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 14/38] x86/hyperlaunch: move iommu " Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 15/38] x86/boot: move and rename sched_setup_dom0_vcpus Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 16/38] x86/hyperlaunch: move pvh_setup_cpus to domain builder Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 17/38] x86/boot: rename pvh acpi setup function Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 18/38] x86/hyperlaunch: add domu memory map construction Daniel P. Smith
2025-05-15 13:17 ` [RFCv2 19/38] x86/hyperlaunch: move populating p2m under domain builder Daniel P. Smith
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250515131744.3843-1-dpsmith@apertussolutions.com \
--to=dpsmith@apertussolutions.com \
--cc=agarciav@amd.com \
--cc=jason.andryuk@amd.com \
--cc=stefano.stabellini@amd.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.