From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
jason.andryuk@amd.com, christopher.w.clark@gmail.com,
stefano.stabellini@amd.com, "Jan Beulich" <jbeulich@suse.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"Roger Pau Monné" <roger.pau@citrix.com>
Subject: [PATCH 02/15] x86/boot: introduce domid field to struct boot_domain
Date: Sat, 23 Nov 2024 13:20:31 -0500 [thread overview]
Message-ID: <20241123182044.30687-3-dpsmith@apertussolutions.com> (raw)
In-Reply-To: <20241123182044.30687-1-dpsmith@apertussolutions.com>
Add a domid field to struct boot_domain to hold the assigned domain id for the
domain. During initialization, ensure all instances of struct boot_domain have
the invalid domid to ensure that the domid must be set either by convention or
configuration.
Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
Changes since v9 boot modules
- missing include for domid_t def
---
xen/arch/x86/include/asm/bootdomain.h | 4 ++++
xen/arch/x86/setup.c | 12 +++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/xen/arch/x86/include/asm/bootdomain.h b/xen/arch/x86/include/asm/bootdomain.h
index 12c19ab37bd8..bcbf36b13f25 100644
--- a/xen/arch/x86/include/asm/bootdomain.h
+++ b/xen/arch/x86/include/asm/bootdomain.h
@@ -5,6 +5,8 @@
* Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
*/
+#include <public/xen.h>
+
#ifndef __XEN_X86_BOOTDOMAIN_H__
#define __XEN_X86_BOOTDOMAIN_H__
@@ -12,6 +14,8 @@ struct boot_module;
struct domain;
struct boot_domain {
+ domid_t domid;
+
struct boot_module *kernel;
struct boot_module *ramdisk;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 460157def8ea..a2178d5e8cc5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -339,6 +339,9 @@ static struct boot_info *__init multiboot_fill_boot_info(
/* Variable 'i' should be one entry past the last module. */
bi->mods[i].type = BOOTMOD_XEN;
+ for ( i = 0; i < MAX_NR_BOOTDOMS; i++ )
+ bi->domains[i].domid = DOMID_INVALID;
+
return bi;
}
@@ -979,7 +982,6 @@ static struct domain *__init create_dom0(struct boot_info *bi)
};
struct boot_domain *bd = &bi->domains[0];
struct domain *d;
- domid_t domid;
if ( opt_dom0_pvh )
{
@@ -995,15 +997,15 @@ static struct domain *__init create_dom0(struct boot_info *bi)
dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
/* Create initial domain. Not d0 for pvshim. */
- domid = get_initial_domain_id();
- d = domain_create(domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
+ bd->domid = get_initial_domain_id();
+ d = domain_create(bd->domid, &dom0_cfg, pv_shim ? 0 : CDF_privileged);
if ( IS_ERR(d) )
- panic("Error creating d%u: %ld\n", domid, PTR_ERR(d));
+ panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
init_dom0_cpuid_policy(d);
if ( alloc_dom0_vcpu0(d) == NULL )
- panic("Error creating d%uv0\n", domid);
+ panic("Error creating d%uv0\n", bd->domid);
/* Grab the DOM0 command line. */
if ( bd->kernel->cmdline_pa || bi->kextra )
--
2.30.2
next prev parent reply other threads:[~2024-11-23 18:21 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-23 18:20 [PATCH 00/15] Hyperlaunch device tree for dom0 Daniel P. Smith
2024-11-23 18:20 ` [PATCH 01/15] x86/boot: introduce boot domain Daniel P. Smith
2024-12-02 9:57 ` Jan Beulich
2024-12-04 19:16 ` Daniel P. Smith
2024-11-23 18:20 ` Daniel P. Smith [this message]
2024-11-23 18:20 ` [PATCH 03/15] x86/boot: add cmdline to struct boot_domain Daniel P. Smith
2024-11-25 15:36 ` Jason Andryuk
2024-12-11 2:56 ` Daniel P. Smith
2024-12-02 9:49 ` Jan Beulich
2024-12-11 3:01 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 04/15] kconfig: introduce option to independently enable libfdt Daniel P. Smith
2024-11-25 15:42 ` Jason Andryuk
2024-12-11 3:03 ` Daniel P. Smith
2024-11-26 10:03 ` Jan Beulich
2024-11-26 10:05 ` Jan Beulich
2024-12-11 3:05 ` Daniel P. Smith
2024-12-11 3:04 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 05/15] kconfig: introduce domain builder config option Daniel P. Smith
2024-11-25 17:55 ` Jason Andryuk
2024-12-11 3:13 ` Daniel P. Smith
2024-11-26 10:09 ` Jan Beulich
2024-12-11 3:15 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 06/15] x86/hyperlaunch: introduce the domain builder Daniel P. Smith
2024-11-25 17:52 ` Jason Andryuk
2024-11-25 20:23 ` Jason Andryuk
2024-12-02 9:55 ` Jan Beulich
2024-12-02 15:31 ` Jason Andryuk
2024-12-11 11:14 ` Daniel P. Smith
2024-12-02 10:10 ` Jan Beulich
2024-12-11 12:36 ` Daniel P. Smith
2024-12-12 11:06 ` Jan Beulich
2024-12-12 15:24 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 07/15] x86/hyperlaunch: initial support for hyperlaunch device tree Daniel P. Smith
2024-11-25 20:11 ` Jason Andryuk
2024-12-11 12:49 ` Daniel P. Smith
2024-12-02 11:37 ` Jan Beulich
2024-12-11 12:55 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 08/15] x86/hyperlaunch: locate dom0 kernel with hyperlaunch Daniel P. Smith
2024-11-25 22:54 ` Jason Andryuk
2024-12-11 14:19 ` Daniel P. Smith
2024-12-02 11:53 ` Jan Beulich
2024-12-11 15:41 ` Daniel P. Smith
2024-12-12 11:25 ` Jan Beulich
2024-11-23 18:20 ` [PATCH 09/15] x86/hyperlaunch: obtain cmdline from device tree Daniel P. Smith
2024-11-25 23:12 ` Jason Andryuk
2024-12-11 15:46 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 10/15] x86/hyperlaunch: locate dom0 initrd with hyperlaunch Daniel P. Smith
2024-11-25 23:34 ` Jason Andryuk
2024-12-11 15:49 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 11/15] x86/hyperlaunch: add domain id parsing to domain config Daniel P. Smith
2024-11-25 23:45 ` Jason Andryuk
2024-12-02 12:00 ` Jan Beulich
2024-12-11 16:07 ` Daniel P. Smith
2024-12-11 16:06 ` Daniel P. Smith
2024-12-02 12:02 ` Jan Beulich
2024-12-11 16:21 ` Daniel P. Smith
2024-12-19 16:40 ` Daniel P. Smith
2024-11-23 18:20 ` [PATCH 12/15] x86/hyperlaunch: specify dom0 mode with device tree Daniel P. Smith
2024-11-25 23:52 ` Jason Andryuk
2024-12-11 16:24 ` Daniel P. Smith
2024-12-02 12:05 ` Jan Beulich
2024-12-11 16:31 ` Daniel P. Smith
2024-12-02 12:06 ` Jan Beulich
2024-12-11 17:48 ` Daniel P. Smith
2024-12-12 11:31 ` Jan Beulich
2024-11-23 18:20 ` [PATCH 13/15] x86/hyperlaunch: add memory parsing to domain config Daniel P. Smith
2024-11-26 0:03 ` Jason Andryuk
2024-12-11 17:59 ` Daniel P. Smith
2024-12-26 16:16 ` Daniel P. Smith
2024-12-02 12:14 ` Jan Beulich
2024-12-11 18:02 ` Daniel P. Smith
2024-12-12 11:34 ` Jan Beulich
2024-11-23 18:20 ` [PATCH 14/15] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree Daniel P. Smith
2024-11-26 0:05 ` Jason Andryuk
2024-12-11 18:05 ` Daniel P. Smith
2024-12-02 12:19 ` Jan Beulich
2024-12-11 19:49 ` Daniel P. Smith
2024-12-12 11:37 ` Jan Beulich
2024-11-23 18:20 ` [PATCH 15/15] x86/hyperlaunch: add capabilities to boot domain Daniel P. Smith
2024-11-26 0:09 ` Jason Andryuk
2024-12-11 19:51 ` Daniel P. Smith
2024-12-02 12:23 ` Jan Beulich
2024-12-11 19:56 ` Daniel P. Smith
2024-12-12 11:40 ` Jan Beulich
2024-11-26 0:11 ` [PATCH 00/15] Hyperlaunch device tree for dom0 Jason Andryuk
2024-12-11 19:57 ` 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=20241123182044.30687-3-dpsmith@apertussolutions.com \
--to=dpsmith@apertussolutions.com \
--cc=andrew.cooper3@citrix.com \
--cc=christopher.w.clark@gmail.com \
--cc=jason.andryuk@amd.com \
--cc=jbeulich@suse.com \
--cc=roger.pau@citrix.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.