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

Re: [PATCH v3 7/7] xen/arm: introduce new xen,enhanced property value


  • To: Julien Grall <julien@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Mon, 5 Sep 2022 12:59:45 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=vm1dtfNoyw0A4MV7brOwwM2q9yROOYu2odnhkmnnMt4=; b=dhi6gIWRcsv15/rB+nFN+MkTh/AEwzRLGUtvZrIX0A5AYOhI8D4fItmJFCJ9Tq5qFiZTpof5l8f+uy015o+EVZoH58+o2QmPfRJBmQnfv+hhnLJkzRtbkYYJNXR9j3hnD+5AmZgrKMucZ/8oddOsebjo2foep5H3ihwcvrp50KzO2FI3b7eP9FbDokzrJjgno2geaMBi74EYkTD+fBXuRvbaYk9lKTokzztd9T3+/o089idV0Vimr1vml91hWYzwFFmGEZ8bhHKk9kAHEy7f85g4WdAtIR7BXm9ELtmNtZPTmMvoIL9ndX2PjSiJ1v7M9K5ReQkh9ht/u+MKepk3YA==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=vm1dtfNoyw0A4MV7brOwwM2q9yROOYu2odnhkmnnMt4=; b=Xjxjvf94x7hlSTRoraLYYZ66kMtGXvbysCRIHiTrFmrwM8ZpHUBe1yiunDTL3mf4RxEgax8k4VS53WiCG78IufuoRV11/QW8dwLmZLjR5XDiLgFbALWZFtvhLhYOGDRtJd372i/nVdLyBl3R3x4aFQPMpVBL4pku0+QguFfEqMKO2HJxREbmQtU9QO9kH9sNZRxmloXgtgrWLpebTXjkHSmwlTJ327T0TE7Lj/hA53hhvi8aIPBjymdjnwbw9BprTiDQGxZGT84z5koi+205hV1JgfEPpTctpCrHYjD8ET5bJ8Hv9yo5a3zzXo0ikZTMvX9JEbwXgH4rnsXt5aONBg==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=OhS6LGv/2fLVgLuZs32bslVJrD7JL5j1yVEIB2LQL4qxQRPWQDlftSj+yGDkoXUpnwRYqi11wDiVWeKfvEMC5NWBTayyBRn1c55X7D9Ncg5HpgG8Sjl7ib8Kjt+JnZjZ2XLihaqUBTPn/ROtRB/JAOzpTIvfvVzQ/D9UjGPHtpg5/nBX2kJq6fm+VGQIHzJC4M++hu7Bak3cTarkIBuO297lRH/BNuNekLzVYLxJXiEAWkmAy6pgdiEk+c/IjfnucsS1DTs+g6JDR4rLk4HnODr6bEgWwrSvYL/8f8GN2MOtEIJUtssZSdCFeBJiSIDgm3cBupsusBC7wGiZxgT+Tg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=odeT/iEhoCECm++HuOUbITO0TNfR+MFMcFshb7sbbiMuYLk6lAbaCayn0dVyBHuqWLwk1QnziIxoQaNtcAk9/zoCMI2NHW3/Fp0KYUHkNxKHJmxsiEVD1ZU3scRYPQ1ZsHL2eKxeke9FYI96e9Bf85o7hlBOTaXC9iPd5xHajhBfHzLyaoODV2BuptzzxSx9eT69H2EJb8yCILNbRqXSWN9m8KTVOXrqD6C6RlUsFVSh3okvb2agRh1UZUO3ex0ADx7J8/ia8OxY1xgC8FTt/euHOZuL/V22rrLZhTZOOWvBMo4rPVphEd7vh9pV3KDFQVs4IEbOV/kCVLOBOj0A4A==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Rahul Singh <Rahul.Singh@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Mon, 05 Sep 2022 13:00:16 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHYveOAeMLlOwX5Mka7ZrpAabJW7K3K4ewAgAFZKACAAAQoAIAADY8AgAAHN4CABGESgIAACJcAgAADEoCAAAPFgIAADnWA
  • Thread-topic: [PATCH v3 7/7] xen/arm: introduce new xen,enhanced property value

Hi Julien,

> On 5 Sep 2022, at 13:08, Julien Grall <julien@xxxxxxx> wrote:
> 
> 
> 
> On 05/09/2022 12:54, Bertrand Marquis wrote:
>> Hi Julien,
>>> On 5 Sep 2022, at 12:43, Julien Grall <julien@xxxxxxx> wrote:
>>> 
>>> 
>>> 
>>> On 05/09/2022 12:12, Rahul Singh wrote:
>>>> Hi Julien,
>>> 
>>> Hi Rahul,
>>> 
>>>>> On 2 Sep 2022, at 5:20 pm, Julien Grall <julien@xxxxxxx> wrote:
>>>>> 
>>>>> 
>>>>> 
>>>>> On 02/09/2022 16:54, Rahul Singh wrote:
>>>>>> Hi Julien,
>>>>> 
>>>>> Hi Rahul,
>>>>> 
>>>>>>> On 2 Sep 2022, at 4:05 pm, Julien Grall <julien@xxxxxxx> wrote:
>>>>>>> 
>>>>>>> Hi Bertrand,
>>>>>>> 
>>>>>>> On 02/09/2022 15:51, Bertrand Marquis wrote:
>>>>>>>>> On 1 Sep 2022, at 19:15, Julien Grall <julien@xxxxxxx> wrote:
>>>>>>>>> AFAIU, it is not possible to have *_xenstore = true and *_enhanced = 
>>>>>>>>> false. I think it would be clearer if ``dom0less_enhanced`` is turned 
>>>>>>>>> to an enum with 3 values:
>>>>>>>>> - None
>>>>>>>>> - NOXENSTORE/BASIC
>>>>>>>>> - FULLY_ENHANCED
>>>>>>>>> 
>>>>>>>>> If we want to be future proof, I would use a field 'flags' where 
>>>>>>>>> non-zero means enhanced. Each bit would indicate which features of 
>>>>>>>>> Xen is exposed.
>>>>>>>> I think that could be a good solution if we do it this way:
>>>>>>>> - define a dom0less feature field and have defines like the following:
>>>>>>>> #define DOM0LESS_GNTTAB
>>>>>>>> #define DOM0LESS_EVENTCHN
>>>>>>>> #define DOM0LESS_XENSTORE >
>>>>>>>> - define dom0less enhanced as the right combination:
>>>>>>>> #define DOM0LESS_ENHANCED = (DOM0LESS_GNTTAB| DOM0LESS_EVENTCHN| 
>>>>>>>> DOM0LESS_XENSTORE)
>>>>>>> 
>>>>>>> I would rather introduce DOM0LESS_ENHANCED_BASIC (or similar) instead 
>>>>>>> of defining a bit for gnttab and evtchn. This will avoid the question 
>>>>>>> of why we are introducing bits for both features but not the 
>>>>>>> hypercall...
>>>>>>> 
>>>>>>> As this is an internal interface, it would be easier to modify 
>>>>>>> afterwards.
>>>>>> How about this?
>>>>>> /*
>>>>>>  * List of possible features for dom0less domUs
>>>>>>  *
>>>>>>  * DOM0LESS_ENHANCED_BASIC: Xen PV interfaces, including grant-table and
>>>>>>  *                                                          evtchn, will 
>>>>>> be enabled for the VM.
>>>>> 
>>>>> Technically, the guest can already use the grant-table and evtchn 
>>>>> interfaces. This also reads quite odd to me because "including" doesn't 
>>>>> tell what's not enabled. So one could assume Xenstored is also enabled. 
>>>>> In fact the wording for ``DOM0LESS_ENHANCED`` is what makes it a lot more 
>>>>> confusing.
>>>>> 
>>>>> So I would suggest the following wording:
>>>>> 
>>>>> "Notify the OS it is running on top of Xen. All the default features but 
>>>>> Xenstore will be available. Note that an OS *must* not rely on the 
>>>>> availability of Xen features if this is not set.
>>>>> "
>>>>> 
>>>>> The wording can be updated once we properly disable event channel/grant 
>>>>> table when the flag is not set.
>>>>> 
>>>>>>  * DOM0LESS_XENSTORE:              Xenstore will be enabled for the VM.
>>>>> 
>>>>> I would make clear this can't be used without the first one.
>>>>> 
>>>>>>  * DOM0LESS_ENHANCED:              Xen PV interfaces, including 
>>>>>> grant-table xenstore >   *                                               
>>>>>>            and
>>>>> evtchn, will be enabled for the VM.
>>>>> 
>>>>> See above about "PV interfaces". So I would suggest to reword to:
>>>>> 
>>>>> "Notify the OS it is running on top of Xen. All the default features 
>>>>> (including Xenstore) will be available".
>>>>> 
>>>>>>  */
>>>>>> #define DOM0LESS_ENHANCED_BASIC BIT(0, UL)
>>>>>> #define DOM0LESS_XENSTORE       BIT(1, UL)
>>>>> 
>>>>> Based on the comment above, I would consider to define DOM0LESS_XENSTORE 
>>>>> as bit 0 and 1 set.
>>>>> 
>>>>>> #define DOM0LESS_ENHANCED       (DOM0LESS_ENHANCED_BASIC | 
>>>>>> DOM0LESS_XENSTORE)
>>>>  Bertrand and I discussed this again we came to the conclusion that 
>>>> DOM0LESS_ENHANCED_BASIC is not
>>>> the suitable name as this makes the code unclear and does not correspond 
>>>> to DT settings. We propose this
>>>> please let me know your thoughts.
>>> 
>>> To me the default of "enhanced" should be all Xen features. Anything else 
>>> should be consider as reduced/basic/minimum. Hence why I still think we 
>>> need to add it in the name even if this is not what we expose in the DT. In 
>>> fact...
>>>>  /*
>>>>  * List of possible features for dom0less domUs
>>>>  *
>>>>  * DOM0LESS_XENSTORE:              Xenstore will be enabled for the VM. 
>>>> This feature
>>>>  *                                                 can't be enabled 
>>>> without the DOM0LESS_ENHANCED.
>>>>  * DOM0LESS_ENHANCED:              Notify the OS it is running on top of 
>>>> Xen. All the
>>>>  *                                                         default 
>>>> features (including Xenstore) will be
>>>>  *                                                         available. Note 
>>>> that an OS *must* not rely on the
>>>>  *                                                         availability of 
>>>> Xen features if this is not set.
>>> 
>>> ... what you wrote here match what I wrote above. So it is not clear to me 
>>> what's the point of having a flag DOM0LESS_XENSTORE.
>> When we looked at the code with the solution using BASIC, it was really not 
>> easy to understand.
> 
> I don't quite understand how this is different from ENHANCED, ENHANCED_FULL. 
> In fact, without looking at the documentation, they mean exactly the same...
> 
> The difference between "BASIC" and "ENHANCED" is clear. You know that in one 
> case, you would get less than the other.
> 
>> By the way the comment is wrong and correspond to what should be 
>> ENHANCED_FULL here
>> ENHANCED would be the base without Xenstore.
> 
> Thanks for the confirmation. I am afraid, I am strongly against the 
> terminology you proposed (see above why).
> 
> I think BASIC (or similar name) is better. But I am open to suggestion so 
> long it is not "DOM0LESS_ENHANCED" vs "DOM0LESS_ENHANCED_FULL".

I do not agree but I think this is only internal and could easily be modified 
one day if we have more use-cases.
So let’s go for BASIC and unblock this before the feature freeze.

Bertrand

> 
> As an aside, I think it is more logical if you define DOM0LESS_XENSTORE as 
> bit 1. But that's NIT at this point. What matters is the naming.
> 
> Cheers,
> 
> -- 
> Julien Grall


 


Rackspace

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