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

Re: [PATCH v5 03/10] x86: Replace arch-specific boot_domain with the common one


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Alejandro Vallejo <agarciav@xxxxxxx>
  • Date: Wed, 2 Jul 2025 17:34:24 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=suse.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Dn3hO8LX71zy2xYPp9ADu7eaEZzF5NRLCxjhkWrPAZQ=; b=pBWKNZ43FuNmXnAfFlCDxLTXcXKkS9qOU2Axb2tATX2TyB9/oBvdJDrTQ34AEWxscchN+lnt6yHtvvh7Fp5Qh0PjTuQ0D7Uhe7nt/ofOBujm0jCanGWnkAAf85dQgFvwVusfwoIPuofSyh9TxCNWI2YS947ifTdpradXOk/UPRBMXbCFOaBZe0g2tUFs8etxbDZYU4bHQ52WYvZDXUPfFTjhAxCrT8tAhcZX774wrHGLW/7FoZJELVI+kKwQwUu6dEsnjsjCW1IfovYFweXF/IW2KfSRZwR0jO8Jk6sqHyiBLSvw8ORK9dCHPiKatoZR3bNghoxy2uTOwK7sORypbg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Q3jlFjQ2Y/1zdEJyqBUa3RG8/B1hj9VVHxLfpkBY9ypla2Q9Q36clCW2AXhul6zVcnaGFeX7qgKP3NeFGOfWhPusxNCwN8vvhvpSoNhT4hgTLO2t8nhSt+WY1X1y+gz4/VfBMAh5VV4TaQMLMnV7JGMIgqdYgsJSul6Q+PeiXjn1m944IzL4r3Wpk+xI6XtHLX49LqD7sLIjixomU0yfLfp55KLTBVlQ1ewGq8doE6yIdCOTEVT7kH7LoV7d4EURuX0+Ft6zoVReN8eZsfYWS1EgNmAevYQei9/EVEN3n6faTlxI3nnQQ5olcyE9jFlK1zHPE7wXrLRI0jqqdmRjoQ==
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Jason Andryuk <jandryuk@xxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, "Michal Orzel" <michal.orzel@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Daniel Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 02 Jul 2025 15:34:50 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Wed Jul 2, 2025 at 5:15 PM CEST, Jan Beulich wrote:
> On 02.07.2025 17:09, Alejandro Vallejo wrote:
>> 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?
>> 
>> As for the arch-agnostic side of things, arm needs some extra work to be
>> able to do it safely. dom0less currently constructs domains immediately after
>> parsing them, which is problematic for cases where some domains have the prop
>> and others don't. The domid allocation strategy may preclude further 
>> otherwise
>> good domains from being created just because their domid was stolen by a 
>> domain
>> that didn't actually care about which domid it got.
>> 
>> It'll eventually want to leave the arch-specific area, but I don't want to do
>> that work now.
>
> But if the domU field is fine to live in a common struct despite being unused
> on x86, why can't the domid field live in a common struct too, despite being
> unused on non-x86? Otherwise it'll be extra churn for no gain to later move it
> there.
>
> Jan

Mostly out of tidiness. Otherwise it's hard to know which fields serve a purpose
where.

I genuinely forgot about the domU field. I'm more than happy to drop that arch
subfield and have domid in the main body of the struct, but I suspect MISRA
would have something to say about dead data?

Cheers,
Alejandro



 


Rackspace

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