[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: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • From: Rahul Singh <Rahul.Singh@xxxxxxx>
  • Date: Mon, 5 Sep 2022 13:36:40 +0000
  • Accept-language: 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=U7opXkaEtIDMzH+1cK3aghCv2BYe5N81Hh6jyHO7ehw=; b=V33Ia7RxYD7oTrYjH1rF0ckoqZOvKHe1TqGVN5zgj8dZQmgFPzpvnBmYdM/I0CKdpL8ZljoS1OFGOFb/JGI+TyqUgGFtvFCYgSLZbtoSEbIZOXueqZssxoFBrs/u1gDbyYpudqb2Oqk7gXCeBra7FJW/v8O3HdghOp8pqkUEGpieYy/E1LClRYHLibYNSToF7V4Bmi42Rj1VagZvqQdg1bu2UGua5J+nRIs4rr+Qw6EztdgKSlpr5cXSt4dyTUyZa9DISqxzxf/jT31grFiqVbr+KMi0OrUeaHdJ9FncofP1g15hgCqYbuzqasUtDZ9GC8cp1/KebNb2hw6OMVaQFQ==
  • 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=U7opXkaEtIDMzH+1cK3aghCv2BYe5N81Hh6jyHO7ehw=; b=SZKZbMhmakmd/DnCZH7ihnsR+UgMVOgZWh5H7hZTpbwYfePe1/Ee/6r+N7Rb3EaE6eIUc82a2V+zUXnnp8V9uCGtPkSd7K4WjhIlq2q8hhq519UxY6HUPQdda/nUyyc+/CzS5ZTlR+FZzgXNnlMOCBUHz0KXXhPhieQLAVrOAJ0zxSZSDk6SeOlJT+VubtEDgLmcK3718nFS00eS+L7cDELKZeXVQLMqNbWl51b+IB4HWciJr0moVsgSRFnfX+rkmDMfGAKS67xgeIPRph5xHjSoBbUVJW1DHytYXr0ldCZcSQCheqoRGANay9qofsNjTp4ieQtdjGKiPGvLMleGZw==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=g8wfSqbmh8db5TRsEZ5zEyhSrA+zE4tB0mKDOHDkglpajmplNVqC4it3MIMyw2aigQGK/BfB6M40u8AQL0ttddLr6ZTO8ZDn/xhfAsCDXuzZbV/Dw/VilkX+QKxjp3sc4km2H35d0bIJEzMo6mKFKCb1t8VSB/kk+zE5HjCA6W5j4PPM1bvRLgQ7fUQiIHE0GW2npr6SRe3wCUXL08K0kcfU9doEV93nT37DFdIQhAvc40UrxvAPp0Bf9zb8j9/geCjWQK3HCD3ZIgzgaH/jPojQhhr+kEUuJ1Y0WwgqjZFH4STIQZXs9MPDljfCSDSIi+tPi1Vy2v4xl8soo9VaAQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bUtibyPfDLAoDLi2TTsyy76OTtGkvxsEaJCHh7x6WvsIFnMLTA5m0pGwvNo5eVawxqDG6erGQ009m8fD35VdvxqSW0+ak5oN3XvTdqLf8SH13wKuEqD+isPUBMg962tQGerRFaSlzAQ+b8DB0bNl9ZMzIzl2MArYNh3uI2QQbqvebKAOXrSKA6/au+mf9hY5dZilSyHM8a4gip38jWLQEhssZouMy/F2KU9+llPF8USNftdfjE8LFbag7nwKQtsSN2Mndp6tlMNYVD+a7UOIwS1vEd9B48icTuPqBVHKMF0JDr/WuSq+tevu3jsNWkyv1ozw9AfuD2X8/9lLJ+R/MA==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Julien Grall <julien@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Mon, 05 Sep 2022 13:37:03 +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: AQHYveOA33HU3e+ak0GIRMMly1Yth63K4ewAgAFZKoCAAAQmAIAADY6AgAAHOICABGESgIAACJcAgAADEwCAAAPEgIAADnWAgAAKUAA=
  • Thread-topic: [PATCH v3 7/7] xen/arm: introduce new xen,enhanced property value

Hi Julien,

> On 5 Sep 2022, at 1:59 pm, Bertrand Marquis <Bertrand.Marquis@xxxxxxx> wrote:
> 
> 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

Please have a look once if this looks okay.

/*                                                                              
 * List of possible features for dom0less domUs                                 
 *                                                                              
 * DOM0LESS_ENHANCED_BASIC:     Notify the OS it is running on top of Xen. All 
the  
 *                                                              default 
features (excluding Xenstore) will be       
 *                                                              available. Note 
that an OS *must* not rely on the   
 *                                                              availability of 
Xen features if this is not set.    
 * DOM0LESS_XENSTORE:                   Xenstore will be enabled for the VM. 
This feature   
 *                                                              can't be 
enabled without the DOM0LESS_ENHANCED_BASIC.                            
 * 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.    
 */                                                                             
#define DOM0LESS_ENHANCED_BASIC     BIT(0, UL)                                  
#define DOM0LESS_XENSTORE                  BIT(1, UL)                           
       
#define DOM0LESS_ENHANCED                 (DOM0LESS_ENHANCED_BASIC  |  
DOM0LESS_XENSTORE)

Regards,
Rahul
 

 


Rackspace

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