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

Re: [Xen-devel] [PATCH v1 1/4] xen: add real time scheduler rt

2014-09-03 10:59 GMT-04:00 Dario Faggioli <dario.faggioli@xxxxxxxxxx>:
On mer, 2014-09-03 at 15:20 +0100, George Dunlap wrote:
> So if I'm reading this right, you set the information for vcpus one
> vcpu at a time, but you want to read the whole lot out all at once?
> I don't like the inconsistency. It would be better if you did the
> same thing each direction:Â Either pass in an array with info about
> the vcpus, or just read the vcpu information one-by-one.
I agree. One by one (in both reading and writing direction) was what I
suggested, but others (I think it was Andrew) pointed out that, when
hypercall are involved, batching is always a good thing. And in fact
(although maybe not in hot paths) it's quite likely that one wants to
retrieve the parameters for all the vcpus (e.g., it is like that as far
as xl is concerned), so that's why, IIRC, Meng went for the batching

âYes. We did discuss this before. Just now, I tried to find the link to the thread but couldn't. :-(Â

I also continue to think that, in the case of this scheduler, a good API
would include both calls to set and get one vcpu at a time *AND* calls
to set and get all of them.

âNow it can get all vcpus and set one vcpu; â
ââThe rest of other two approaches are also not hard to implement. â

I'm fine with this version only having one of the two alternatives (and
about adding the other one later), but I agree with George it should be

If we like batching, then batching it is, but I think in that case we
need to think about one change the parameters of only one vcpu (perhaps
treat budget=0 && period=0 in the i-eth element of the array as 'don't
touch vcpu #i"?).

âActually it has three ways to implement this (if we go with batching):
1) As Dario mentioned, use period = 0 & budget=0 to indicate that this vcpu's parameters should not be changed;
2)â We can first bounce out all VCPU's information, change the vcpus' information users specified, bounce the modified array back to hypervisor; and hypervisor set all vcpus' information based on the modified array. If a vcpu is not changed, its vcpu's information won't change, so its parameters won't change;Â
3) We only create arrays that have the vcpus to be modified. After we bound the array to hypervisor, hypervisor can use the vcpu's index to decide which vcpu's parameters should be modified.

âWhich method do you guys prefer?â



Meng Xu
PhD Student in Computer and Information Science
University of Pennsylvania
Xen-devel mailing list



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