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

Re: [Xen-devel] [PATCH v7 12/32] xen/x86: add bitmap of enabled emulated devices



El 07/10/15 a les 16.01, Andrew Cooper ha escrit:
> On 07/10/15 14:32, George Dunlap wrote:
>> On 07/10/15 12:55, Roger Pau Monnà wrote:
>>> El 06/10/15 a les 13.05, George Dunlap ha escrit:
>>>> On 05/10/15 10:34, Andrew Cooper wrote:
>>>>> On 02/10/15 16:48, Roger Pau Monne wrote:
>>>>>> Introduce a bitmap in x86 xen_arch_domainconfig that allows enabling or
>>>>>> disabling specific devices emulated inside of Xen for HVM guests.
>>>>>>
>>>>>> Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx>
>>>>>> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
>>>>>> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
>>>>>> Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
>>>>>> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
>>>>>> Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
>>>>>> Cc: Jan Beulich <jbeulich@xxxxxxxx>
>>>>>> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>>>>>> Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
>>>>> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, with 2 small
>>>>> suggestions.
>>>>>
>>>>>> diff --git a/xen/common/schedule.c b/xen/common/schedule.c
>>>>>> index 5ffa1a1..aeb911e 100644
>>>>>> --- a/xen/common/schedule.c
>>>>>> +++ b/xen/common/schedule.c
>>>>>> @@ -1428,6 +1428,9 @@ static struct notifier_block cpu_schedule_nfb = {
>>>>>>  /* Initialise the data structures. */
>>>>>>  void __init scheduler_init(void)
>>>>>>  {
>>>>>> +#ifdef CONFIG_X86
>>>>>> +    struct xen_arch_domainconfig config = { .emulation_flags = 0 };
>>>>>> +#endif
>>>>>>      struct domain *idle_domain;
>>>>>>      int i;
>>>>>>  
>>>>>> @@ -1474,8 +1477,11 @@ void __init scheduler_init(void)
>>>>>>          sched_ratelimit_us = SCHED_DEFAULT_RATELIMIT_US;
>>>>>>      }
>>>>>>  
>>>>>> -    /* There is no need of arch-specific configuration for an idle 
>>>>>> domain */
>>>>>> +#ifdef CONFIG_X86
>>>>>> +    idle_domain = domain_create(DOMID_IDLE, 0, 0, &config);
>>>>>> +#else
>>>>>>      idle_domain = domain_create(DOMID_IDLE, 0, 0, NULL);
>>>>>> +#endif
>>>>> You could get away without this ifdefary if you have
>>>>>
>>>>> #else
>>>>>     void *config = NULL;
>>>>>
>>>>> In the previous hunk.
>>>> It would be even better if you could do what arm does, and accept NULL
>>>> configurations for the idle, xen, io, and cow domains.
>>> I'm not sure of that. HVM domains certainly require config to be
>>> provided, while PV domains could do without it. IMHO it's better for
>>> consistency of interfaces to always require a valid arch config rather
>>> than make it depend on the domain type.
>> ARM requires a config for all *real* domains -- including all guests and
>> dom0; there's an ASSERT in xen/arm/domain.c:arch_domain_create() to that
>> effect.  Nonetheless, it accepts NULL for the four "domains" I mentioned
>> above, because they aren't real domains.  Consistency says it would be
>> better if x86 behaved like arm (requiring config for real HVM and PV
>> domains, but not for fake domains).
> 
> I have to say that I am leaning towards the same opinion.

Ack, I also prefer this way if ARM already does it.

Roger.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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