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