[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 01/15] x86/boot: introduce boot domain


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>
  • Date: Fri, 4 Apr 2025 20:04:11 -0400
  • Arc-authentication-results: i=1; mx.zohomail.com; dkim=pass header.i=apertussolutions.com; spf=pass smtp.mailfrom=dpsmith@xxxxxxxxxxxxxxxxxxxx; dmarc=pass header.from=<dpsmith@xxxxxxxxxxxxxxxxxxxx>
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743811456; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=8hKCOaWwdJHEsUQNGcdpFlZdOftpd09n3MbhbhX7oAM=; b=hPeRF/V+2gYHjC8iJ1Wn2iwuiajV5LiltWhd2I3YJa0ZVUwlMr8caa1/I/k0AfJ2IE87/s8QFzcyZhJxn+OXmZrJNltIr2MT6pRldPre/4/PF8h7Ye3u3A+sGXj1afNsGz0BFDrszwxgXJyFUxLIfy7WvC4fDK5j8yjt++RXFtM=
  • Arc-seal: i=1; a=rsa-sha256; t=1743811456; cv=none; d=zohomail.com; s=zohoarc; b=IdH6HNLTVA041BI1mapHx+T7Qsy2ijLfRU+vpzf4KV7AhRTtNWMAdQwvg9PZZ6VBASRXl9V6+ZRM1G49lj7fAnPD8mB5SpkQCcVec9MjpZaBBpcyBU+gDpUScRO/HTrj91HcfkNKMKRV0HGo4bzU5JiR9JEsL1h6kGdij3EIwZw=
  • Cc: jason.andryuk@xxxxxxx, christopher.w.clark@xxxxxxxxx, stefano.stabellini@xxxxxxx, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Sat, 05 Apr 2025 00:04:36 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 1/30/25 08:45, Jan Beulich wrote:
On 26.12.2024 17:57, Daniel P. Smith wrote:
@@ -596,9 +597,10 @@ int __init dom0_setup_permissions(struct domain *d)
      return rc;
  }
-int __init construct_dom0(struct boot_info *bi, struct domain *d)
+int __init construct_dom0(struct boot_domain *bd)

Pointer-to-const? Domain construction should only be consuming data
supplied, I expect.

--- /dev/null
+++ b/xen/arch/x86/include/asm/bootdomain.h

Maybe boot-domain.h? Or was that suggested before and discarded for
whatever reason?

@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2024 Apertus Solutions, LLC
+ * Author: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>
+ * Copyright (c) 2024 Christopher Clark <christopher.w.clark@xxxxxxxxx>
+ */
+
+#ifndef __XEN_X86_BOOTDOMAIN_H__
+#define __XEN_X86_BOOTDOMAIN_H__
+
+struct boot_domain {
+    struct boot_module *kernel;
+    struct boot_module *ramdisk;

"ramdisk" is Linux-centric, I think. Can we name this more generically?
"module" perhaps, despite it then being the same name as we use for the
modules Xen is passed?

Ramdisk is not a linux-centric, take OpenBSD for example [1]. Calling the field "module" is a recipe for confusion. Especially considering that we are more or less providing a lightweight version of the toolstack interface which use the name ramdisk.

[1] https://openbsd.fandom.com/wiki/Creating_a_custom_OpenBSD_RAM_disk

Also, are consumers of this struct supposed to be able to modify what
the pointers point to? I'd expect they aren't, in which case const will
want adding here, too.

Jan




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.