Hi Julien

> On 24 Aug 2022, at 4:36 pm, Julien Grall <jul...@xen.org> wrote:
> 
> On 24/08/2022 15:42, Rahul Singh wrote:
>>> On 24 Aug 2022, at 1:59 pm, Julien Grall <jul...@xen.org> wrote:
>>> 
>>> 
>>> 
>>> On 24/08/2022 13:15, Rahul Singh wrote:
>>>> Hi Julien,
>>> 
>>> Hi Rahul,
>>> 
>>>> Please let me know your view on this.
>>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>> index bfe7bc6b36..a1e23eee59 100644
>>>> --- a/xen/arch/arm/domain_build.c
>>>> +++ b/xen/arch/arm/domain_build.c
>>>> @@ -3562,12 +3562,7 @@ static int __init construct_domU(struct domain *d,
>>>>    if ( rc == -EILSEQ ||
>>>>      rc == -ENODATA ||
>>>>      (rc == 0 && !strcmp(dom0less_enhanced, “enabled”)) )
>>>> -  {
>>>> -    if ( hardware_domain )
>>>>        kinfo.dom0less_enhanced = true;
>>>> -    else
>>>> -      panic(“Tried to use xen,enhanced without dom0\n”);
>>>> -  }
>>> 
>>> You can't use "xen,enhanced" without dom0. In fact, you will end up to 
>>> dereference NULL in alloc_xenstore_evtchn(). That's because "xen,enhanced" 
>>> means the domain will be able to use Xenstored.
>>> 
>>> Now if you want to support your feature without a dom0. Then I think we 
>>> want to introduce an option which would be the same as "xen,enhanced" but 
>>> doesn't expose Xenstored.
>> If we modify the patch as below we can use the "xen,enhanced" for domUs 
>> without dom0.
>> I tested the patch and its works fine. Do you see any issue with this 
>> approach?
> 
> Yes. For two reasons:
> 1) It is muddying the meaning of "xen,enhanced". In particular a user may not 
> realize that Xenstore is not available if dom0 is not present.
> 2) It would be more complicated to handle the case where Xenstored lives in a 
> non-dom0 domain. I am not aware of anyone wanting this on Arm yet, but I 
> don't want to close the door.
> 
> So if you want to support create "xen,xen" without all the rest. Then I think 
> we need a different property value. I don't have a good suggestion for the 
> name.

Is that okay if we use the earlier approach, when user set  "xen,enhanced = 
evtchn” we will not call alloc_xenstore_evtchn()  
but we create hypervisor node with all fields.
 

Regards,
Rahul

Reply via email to