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

Re: [Xen-devel] Xen Platform QoS design discussion



On Tue, May 6, 2014 at 11:06 AM, Andrew Cooper
<andrew.cooper3@xxxxxxxxxx> wrote:
> On 06/05/14 02:40, Xu, Dongxiao wrote:
>>> -----Original Message-----
>>> From: Xu, Dongxiao
>>> Sent: Sunday, May 04, 2014 8:46 AM
>>> To: Jan Beulich
>>> Cc: Andrew Cooper(andrew.cooper3@xxxxxxxxxx); Ian Campbell;
>>> xen-devel@xxxxxxxxxxxxx
>>> Subject: RE: Xen Platform QoS design discussion
>>>
>>>> -----Original Message-----
>>>> From: Jan Beulich [mailto:JBeulich@xxxxxxxx]
>>>> Sent: Friday, May 02, 2014 8:40 PM
>>>> To: Xu, Dongxiao
>>>> Cc: Andrew Cooper(andrew.cooper3@xxxxxxxxxx); Ian Campbell;
>>>> xen-devel@xxxxxxxxxxxxx
>>>> Subject: RE: Xen Platform QoS design discussion
>>>>
>>>>>>> On 02.05.14 at 14:30, <dongxiao.xu@xxxxxxxxx> wrote:
>>>>>>  -----Original Message-----
>>>>>> From: Jan Beulich [mailto:JBeulich@xxxxxxxx]
>>>>>> Sent: Friday, May 02, 2014 5:24 PM
>>>>>> To: Xu, Dongxiao
>>>>>> Cc: Andrew Cooper(andrew.cooper3@xxxxxxxxxx); Ian Campbell;
>>>>>> xen-devel@xxxxxxxxxxxxx
>>>>>> Subject: RE: Xen Platform QoS design discussion
>>>>>>
>>>>>>>>> On 01.05.14 at 02:56, <dongxiao.xu@xxxxxxxxx> wrote:
>>>>>>>> From: Ian Campbell [mailto:Ian.Campbell@xxxxxxxxxx]
>>>>>>>> Have you asked yourself whether this information even needs to be
>>>>>>>> exposed all the way up to libxl? Who are the expected consumers of this
>>>>>>>> interface? Are they low-level CLI tools (i.e. like xenpm is) or are you
>>>>>>>> expecting toolstacks to plumb this information all the way up to their
>>>>>>>> GUI or CLI (e.g. xl or virsh)?
>>>>>>> The information returned to libxl users is the cache utilization for a
>>>>>>> certain domain in certain socket, and the main consumers are cloud users
>>>>> like
>>>>>>> openstack, etc. Of course, we will also provide an xl command to present
>>>>> such
>>>>>>> information.
>>>>>> To me this doesn't really address the question Ian asked, yet knowing
>>>>>> who's going to be the consumer of the data is also quite relevant for
>>>>>> answering your original question on the method to obtain that data.
>>>>>> Obviously, if the main use of it is per-domain, a domctl would seem like
>>>>>> a suitable approach despite the data being more of sysctl kind. But if
>>>>>> a global view would be more important, that model would seem to make
>>>>>> life needlessly hard for the consumers. In turn, if using a domctl, I 
>>>>>> tend
>>>>>> to agree that not using shared pages would be preferable; iirc their use
>>>>>> was mainly suggested because of the size of the data.
>>>>> From the discussion with openstack developers, on certain cloud host, all
>>>>> running VM's information (e.g., domain ID) will be stored in a database, 
>>>>> and
>>>>> openstack software will use libvirt/XenAPI to query specific domain
>>>>> information. That libvirt/XenAPI API interface basically accepts the 
>>>>> domain
>>>>> ID as input parameter and get the domain information, including the 
>>>>> platform
>>>>> QoS one.
>>>>>
>>>>> Based on above information, I think we'd better design the QoS hypercall
>>>>> per-domain.
>>>> If you think that this is going to be the only (or at least prevalent)
>>>> usage model, that's probably okay then. But I'm a little puzzled that
>>>> all this effort is just for a single, rather specific consumer. I thought
>>>> that if this is so important to Intel there would be wider interested
>>>> audience.
>> Since there is no further comments, I suppose we all agreed on making the 
>> hypercall per-domain and use data copying mechanism between hypervisor and 
>> Dom0 tool stack?
>>
>
> No - the onus is very much on you to prove that your API will *not* be
> used in the following way:
>
> every $TIMEPERIOD
>   for each domain
>     for each type of information
>       get-$TYPE-information-for-$DOMAIN
>
>
> Which is the source of my concerns regarding overhead.
>
> As far as I can see, as soon as you provide access to this QoS
> information, higher level toolstacks are going to want all information
> for all domains.  Given your proposed domctl, they will have exactly one
> (bad) way of getting this information.

Is this really going to be that much of a critical path that we need
to even have this discussion?

We have two different hypercalls right now for getting "dominfo": a
domctl and a sysctl.  You use the domctl if you want information about
a single domain, you use sysctl if you want information about all
domains.  The sysctl implementation calls the domctl implementation
internally.

Is there a problem with doing the same thing here?  Or, with starting
with a domctl, and then creating a sysctl if iterating over all
domains (and calling the domctl internally) if we measure the domctl
to be too slow for many callers?

 -George

_______________________________________________
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®.