On Wed Jul 2, 2025 at 3:15 PM CEST, Jan Beulich wrote:
> On 01.07.2025 12:56, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/include/asm/bootfdt.h
>> +++ b/xen/arch/x86/include/asm/bootfdt.h
>> @@ -3,6 +3,12 @@
>> #define X86_BOOTFDT_H
>>
>> #include <xen/types.h>
>> +#include <public/xen.h>
>> +
>> +struct arch_boot_domain
>> +{
>> + domid_t domid;
>> +};
>>
>> struct arch_boot_module
>> {
>>[...]
>> @@ -1048,11 +1050,11 @@ static struct domain *__init create_dom0(struct
>> boot_info *bi)
>> dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>>
>> /* Create initial domain. Not d0 for pvshim. */
>> - bd->domid = get_initial_domain_id();
>> - d = domain_create(bd->domid, &dom0_cfg,
>> + bd->arch.domid = get_initial_domain_id();
>> + d = domain_create(bd->arch.domid, &dom0_cfg,
>> pv_shim ? 0 : CDF_privileged | CDF_hardware);
>> if ( IS_ERR(d) )
>> - panic("Error creating d%u: %ld\n", bd->domid, PTR_ERR(d));
>> + panic("Error creating d%u: %ld\n", bd->arch.domid, PTR_ERR(d));
>
> This being the only place where the (now) arch-specific field is used, why
> does it exist? A local variable would do? And if it's needed for
> (supposedly arch-agnostic) hyperlaunch, then it probably shouldn't be
> arch-specific? Daniel, Jason?
>
> Jan
It eventually becomes a holding spot for the domid property of each domain in
the DTB. It exists so we can describe every domain fully ahead of trying to
construct it.
Cheers,
Alejandro