|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 08/12] x86/hyperlaunch: add domain id parsing to domain config
On Thu Apr 24, 2025 at 6:41 PM BST, Jason Andryuk wrote:
> On 2025-04-24 12:10, Alejandro Vallejo wrote:
>> From: "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>
>>
>> Introduce the ability to specify the desired domain id for the domain
>> definition. The domain id will be populated in the domid property of the
>> domain node in the device tree configuration.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>
>> Signed-off-by: Alejandro Vallejo <agarciav@xxxxxxx>
>> ---
>
>> diff --git a/xen/common/domain-builder/fdt.c
>> b/xen/common/domain-builder/fdt.c
>> index 144fcc75b5..5a5b3c8806 100644
>> --- a/xen/common/domain-builder/fdt.c
>> +++ b/xen/common/domain-builder/fdt.c
>
>> @@ -188,12 +189,54 @@ static int __init fdt_read_multiboot_module(const void
>> *fdt, int node,
>> static int __init process_domain_node(
>> struct boot_info *bi, const void *fdt, int dom_node)
>> {
>> - int node;
>> + int node, property;
>> struct boot_domain *bd = &bi->domains[bi->nr_domains];
>> const char *name = fdt_get_name(fdt, dom_node, NULL) ?: "unknown";
>> int address_cells = fdt_address_cells(fdt, dom_node);
>> int size_cells = fdt_size_cells(fdt, dom_node);
>>
>> + fdt_for_each_property_offset(property, fdt, dom_node)
>> + {
>> + const struct fdt_property *prop;
>> + const char *prop_name;
>> + int name_len, rc;
>> +
>> + prop = fdt_get_property_by_offset(fdt, property, NULL);
>> + if ( !prop )
>> + continue; /* silently skip */
>> +
>> + prop_name = fdt_get_string(fdt, fdt32_to_cpu(prop->nameoff),
>> &name_len);
>> +
>
> Stray blank line.
>
>> + if ( !strncmp(prop_name, "domid", name_len) )
>> + {
>> + uint32_t val = DOMID_INVALID;
>> +
>> + if ( (rc = fdt_prop_as_u32(prop, &val)) )
>> + {
>> + printk(XENLOG_ERR
>> + " failed processing domain id for domain %s\n",
>> name);
>> + return rc;
>> + }
>
> Maybe add a blank line here?
>
>> + if ( val >= DOMID_FIRST_RESERVED )
>> + {
>> + printk(XENLOG_ERR " invalid domain id for domain %s\n",
>> name);
>> + return -EINVAL;
>> + }
>> +
>
>> @@ -258,6 +301,13 @@ static int __init process_domain_node(
>> return -ENODATA;
>> }
>>
>> + if ( bd->domid == DOMID_INVALID )
>> + bd->domid = get_initial_domain_id();
>> + else if ( bd->domid != get_initial_domain_id() )
>> + printk(XENLOG_WARNING
>> + "warning: unsupported boot. d%d is not the initial
>> domain.\n",
>
> Maybe:
> "warning: d%u is not the expected initial domid (%u)\n" ?
>
> It's a strange message. The domid property is added, but it's not
> expected to actually be used?
It's just a transient message until multidomain boot is added in a later
series. It's merely informative that you're booting something you
probably didn't mean to. Or didn't mean to on this hypervisor.
>
> With the newlines addressed (and optionally the message change):
I'm happy to make those adjustments.
>
> Reviewed-by: Jason Andryuk <jason.andryuk@xxxxxxx>
Thanks
>
> Thanks,
> Jason
Cheers,
Alejandro
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |