[libvirt] [PATCH 06/10] vcpubandwidth: introduce two new libvirt APIs

Nikunj A. Dadhania nikunj at linux.vnet.ibm.com
Fri Jul 15 04:03:38 UTC 2011


On Thu, 14 Jul 2011 16:14:01 +0900, Taku Izumi <izumi.taku at jp.fujitsu.com> wrote:
> On Wed, 13 Jul 2011 16:55:28 +0800
> Wen Congyang <wency at cn.fujitsu.com> wrote:
> 
> > At 07/13/2011 04:50 PM, Nikunj A. Dadhania Write:
> > > On Wed, 13 Jul 2011 14:26:23 +0800, Wen Congyang <wency at cn.fujitsu.com> wrote:
> > >> At 07/07/2011 10:32 AM, Taku Izumi Write:
> > >>>
> > >>>>>>>>> So why introduce VCPU level apis?
> > >>>>>>>>
> > >>>>>>>> Adam Litke said IBM's performance team nead to control cpu bandwidth for each
> > >>>>>>>> vcpu.
> > >>>>>>> Right, but we do not export that as a User API, that was my suggestion.
> > >>>>>>> We can internally control each vcpu's bandwidth, i.e. divide equally.
> > >>>>>>
> > >>>>>> Hmm, I heard that some server could run CPUs at different speed.
> > >>>>>> May be this patch can simulate this behavior. 
> > >>>>> That happens on my laptop as well, depending on the machine load CPU
> > >>>>> frequency is changed but it is done transparently.
> > >>>>
> > >>>> I means explicitly CPU speed configuring. ;)
> > >>>>
> > >>>>>
> > >>>>> I am not sure if we are trying to simulate that here.
> > >>>>
> > >>>> So why not leave the flexible interface here, and let users make
> > >>>> the decision?
> > >>>
> > >>>  In my mind, the flexibility is not always a good thing.
> > >>>  It is nothing but troublesome for the person who doesn't like
> > >>>  detailed setting. I don't know how many people want this flexibility.
> > >>
> > >> I think we should implement the flexibility. If we do not implement, and
> > >> we want it later, we can not reuse these codes(add new element, and reimplement).
> > > IMHO, at present we can use the current SetSchedulerParameters API and
> > > whenever we need flexibility an API as suggested in this series could be
> > 
> > If we need flexibilty, not only an API shoule be added. We should add new element
> > in the XML config file. It means that libvirt should support inflexibility and
> > flexibilty. It is very bad. If we want to support flexibility later, it is
> > better to support it now.
> 
>  I think nobody needs such a flexibility in the future and I like the
>  simpler way.
I had an offline discussion with folks(Adam and Ryan) here at
IBM. Simulating a machine with different cpu speed does not seem like a
compelling enough case to justify the added configuration complexity. An
explicit qouta setting for each vcpu will require user to audit the
cputune section to add/remove tunings just to change the vcpu count to
the domain. We do not feel that this is the desired behaviour.

In our experience, user don't want to make these kinds of
decisions. They would rather prefer libvirt to just do the right thing
by default.

Adam pointed that in the future it is no problem to have the simple API
and a more detailed API combined:

<cputune>
  <period>
  <quota>
  <vcpu id=0>
    <quota>...</quota>
  </vcpu>
</cputune>

>  But, the worst thing is the decision is prolonged. If IBM people can accept the current
>  implementation, I also do.
> 
>  Can you accept this, Nikunj ?
Still not convinced.

>  If you can't, shall we decide by lot? ;)
Not sure if this is the right approach. :-)

danpb/DV, what do you think?

Regards
Nikunj




More information about the libvir-list mailing list