All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Beulich <jbeulich@suse.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: jason.andryuk@amd.com, christopher.w.clark@gmail.com,
	stefano.stabellini@amd.com,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 01/15] x86/boot: introduce boot domain
Date: Thu, 10 Apr 2025 08:37:28 +0200	[thread overview]
Message-ID: <8d9ccb03-08d5-4bc7-adc4-7d2ac9f867ce@suse.com> (raw)
In-Reply-To: <0fabd9d0-ac4c-4ddd-83c7-e4fc2819b506@apertussolutions.com>

On 10.04.2025 01:55, Daniel P. Smith wrote:
> On 4/7/25 03:10, Jan Beulich wrote:
>> On 05.04.2025 02:04, Daniel P. Smith wrote:
>>> 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@apertussolutions.com>
>>>>> + * Copyright (c) 2024 Christopher Clark <christopher.w.clark@gmail.com>
>>>>> + */
>>>>> +
>>>>> +#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
>>
>> Just one other OS also using such a concept doesn't mean much. In fact, "ramdisk"
>> isn't quite appropriate a term for Linux nowadays anymore anyway. An initrd can
>> consist of multiple pieces now, not all of which end up taken as "ramdisk". I
>> wouldn't insist on "module" as a name, but I continue to think "ramdisk" is
>> inappropriate. The fact that the toolstack uses the term has historical reasons;
>> it doesn't mean new code in Xen needs to continue to use that term.
> 
> That opening response is very disingenuous and goal post moving. Your 
> initial comment asserted that it is a Linux only concept, and when met 
> with another example, you now want to just brush it off.

Well, not quite. I deliberately said "..., I think" to indicate the my
horizon. For background, I've originally come from the DOS/Windows and
NetWare worlds, where no such concept ever existed (again, to my
necessarily limited knowledge).

> The fact is that the concept of a ramdisk predates Linux by a 
> considerable amount, 1979 CP/M introduced the concept. Yes, initrd is a 
> variation of a ramdisk, which is why the field is not called initrd 
> (despite that term used elsewhere as a variable name). I would also 
> point out, as you very well know, Linux's multiple module ramdisk is not 
> supported by Xen today, nor is there any plan to add it.

I don't understand what you're alluding to here. Xen doesn't itself need
a ramdisk. Nevertheless to perhaps find microcode to load, it peeks into
the (sole) module provided to the Dom0 kernel.

> The fact is that ramdisk **is** a general term for the specific 
> capability that the primary supported operating system uses, along with 
> other operating systems *BSD. As a result the concept is all over the 
> code base and so it is not at all unreasonable to have an explicit 
> reference reserved for it.

Yet then, compared to multiboot, it being just a single module is a
perhaps severe (portability) limitation. And as soon as we talk about
multiple modules, I'm relatively sure you agree that we can't assume
them all to be RAM disk images. See how Xen itself has got Dom0 kernel,
Dom0 initrd, XSM policy, and CPU microcode.

Naming the thing as generically as possible at least clearly indicates
the route to go from 1 to N.

Jan


  reply	other threads:[~2025-04-10  6:38 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-26 16:57 [PATCH v2 00/15] Hyperlaunch device tree for dom0 Daniel P. Smith
2024-12-26 16:57 ` [PATCH v2 01/15] x86/boot: introduce boot domain Daniel P. Smith
2025-01-30 13:45   ` Jan Beulich
2025-04-05  0:04     ` Daniel P. Smith
2025-04-07  7:10       ` Jan Beulich
2025-04-09 23:55         ` Daniel P. Smith
2025-04-10  6:37           ` Jan Beulich [this message]
2024-12-26 16:57 ` [PATCH v2 02/15] x86/boot: introduce domid field to struct boot_domain Daniel P. Smith
2025-01-30 13:51   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 03/15] x86/boot: add cmdline " Daniel P. Smith
2025-01-10 19:52   ` Jason Andryuk
2025-01-15 17:22     ` Daniel P. Smith
2025-01-15 19:50       ` Jason Andryuk
2025-01-30 14:15   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 04/15] kconfig: introduce option to independently enable libfdt Daniel P. Smith
2025-01-30 14:19   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 05/15] kconfig: introduce domain builder config option Daniel P. Smith
2025-01-10 19:55   ` Jason Andryuk
2025-01-15 17:24     ` Daniel P. Smith
2025-01-30 14:30   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 06/15] x86/hyperlaunch: introduce the domain builder Daniel P. Smith
2025-01-08 21:54   ` Jason Andryuk
2025-01-15 17:25     ` Daniel P. Smith
2025-01-30 14:52   ` Jan Beulich
2025-04-01 18:01     ` Jason Andryuk
2025-04-02  9:25       ` Jan Beulich
2025-04-02 19:44         ` Jason Andryuk
2024-12-26 16:57 ` [PATCH v2 07/15] x86/hyperlaunch: initial support for hyperlaunch device tree Daniel P. Smith
2025-01-10 22:20   ` Jason Andryuk
2025-01-15 17:47     ` Daniel P. Smith
2025-01-30 15:01   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 08/15] x86/hyperlaunch: locate dom0 kernel with hyperlaunch Daniel P. Smith
2025-01-10 23:06   ` Jason Andryuk
2025-01-30 15:42   ` Jan Beulich
2025-01-30 21:14     ` Stefano Stabellini
2025-01-31  6:36       ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 09/15] x86/hyperlaunch: obtain cmdline from device tree Daniel P. Smith
2025-01-15 16:38   ` Jason Andryuk
2025-01-30 15:58   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 10/15] x86/hyperlaunch: locate dom0 initrd with hyperlaunch Daniel P. Smith
2025-01-15 16:43   ` Jason Andryuk
2025-01-30 16:39   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 11/15] x86/hyperlaunch: add domain id parsing to domain config Daniel P. Smith
2025-01-30 16:49   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 12/15] x86/hyperlaunch: specify dom0 mode with device tree Daniel P. Smith
2025-01-15 19:42   ` Jason Andryuk
2025-01-30 16:55   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 13/15] x86/hyperlaunch: add memory parsing to domain config Daniel P. Smith
2025-01-15 16:55   ` Jason Andryuk
2025-01-30 17:01   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 14/15] x86/hyperlaunch: add max vcpu parsing of hyperlaunch device tree Daniel P. Smith
2025-01-15 19:40   ` Jason Andryuk
2025-01-30 17:04   ` Jan Beulich
2024-12-26 16:57 ` [PATCH v2 15/15] x86/hyperlaunch: add capabilities to boot domain Daniel P. Smith
2025-02-04 11:13   ` Jan Beulich
2025-02-04 15:40     ` Jason Andryuk

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=8d9ccb03-08d5-4bc7-adc4-7d2ac9f867ce@suse.com \
    --to=jbeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=christopher.w.clark@gmail.com \
    --cc=dpsmith@apertussolutions.com \
    --cc=jason.andryuk@amd.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.