From: Dario Faggioli <dario.faggioli@citrix.com>
To: "xumengpanda@gmail.com" <xumengpanda@gmail.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
Ian Campbell <Ian.Campbell@citrix.com>,
"xisisu@gmail.com" <xisisu@gmail.com>,
Ian Jackson <Ian.Jackson@citrix.com>,
"chaowang@wustl.edu" <chaowang@wustl.edu>,
George Dunlap <George.Dunlap@citrix.com>,
"denys.drozdov@globallogic.com" <denys.drozdov@globallogic.com>,
"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
"sokolsky@cis.upenn.edu" <sokolsky@cis.upenn.edu>,
"linhphan@cis.upenn.edu" <linhphan@cis.upenn.edu>,
"lee@cis.upenn.edu" <lee@cis.upenn.edu>,
"cdgill@cse.wustl.edu" <cdgill@cse.wustl.edu>,
"lu.wustl@gmail.com" <lu.wustl@gmail.com>,
"mengxu@cis.upenn.edu" <mengxu@cis.upenn.edu>,
"lichong659@gmail.com" <lichong659@gmail.com>,
"dgolomb@seas.upenn.edu" <dgolomb@seas.upenn.edu>,
"andrii.tseglytskyi@globallogic.com"
<andrii.tseglytskyi@globallogic.com>
Subject: Re: [RFC] [Design] Better XL support of RTDS scheduler for Xen 4.6
Date: Tue, 24 Feb 2015 10:17:32 +0000 [thread overview]
Message-ID: <1424773049.4742.28.camel@citrix.com> (raw)
In-Reply-To: <CAENZ-+nGTuR3H5=ojQZG2Ep5Y9yLyJhCaLB_s4BvK8QOVQsEDg@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 4504 bytes --]
On Mon, 2015-02-23 at 23:15 -0500, Meng Xu wrote:
> 2015-02-23 12:27 GMT-05:00 Dario Faggioli <dario.faggioli@citrix.com>:
> > That of course does not mean that we the API, at all levels, need to
> > always deal with all vcpus. As you know very well, there is the hcall
> > interface, where we said we want to batch; then there is the libxc
> > interface, which can well diverge, but it's usually better map quite
> > closely to the hcall one; and then there is libxl, on top of libxl, and
> > things can be significantly different here.
> >
> > So, I think your design proposal/code should explicitly state what the
> > plan is at each level.
>
> I agree.
> In my mind, my plan is to have all levels batching the request, from
> xl to libxl to libxc to rt_dom_cntl() in sched_rt.c.
>
xc and Xen, I agree. libxl, I'm not sure (a few more words on this
below), xl, it may make sense, but depending how you support specifying
the budget for multiple vcpus.
> > If we batch for get, I think we should batch for set. As I said, I
> > personally see some value in an interface allowing setting all the
> > parameters of all the vcpus at the same time. In fact, this is probably
> > better, even as far as real-time theory is concerned: as I'm sure you
> > know better than me, parameter changing can be tricky for the algorithm,
> > so it's probably better to encourage the user to change the params all
> > together, synchronously, rather than having to deal with a stream of
> > adjustments scattered in time.
> >
> > So, my opinion, choice 2).
>
> OK. Agree! :-P
> I think this is also the reason why libxl and xl should use batch as
> well, for consistence?
>
Not really. Consistency is important, but now between completely
different and independent things. Hypercalls, libxc calls, the libxl API
and xl commands have very different users, and the interface should be,
at each layer, the best one for the layer's users.
> > If I can add something, the big challenge here is how to make the
> > interfaces good and homogeneous enough with what we already have in
> > place for other schedulers. I really suggest you to address this too in
> > this design conversation and/or in RFC/code.
>
> Actually, there is a basic question:
> Should we back support the existing xl tool for RTDS? Right now, we
> assume all VCPU of the same domain have the same parameter and the
> toolstack (xl, libxl, libxc and rt_dom_cntl()) are implemented based
> on such assumption.
>
Xen (so the hypercall), libxc and xl commands are not stable interfaces.
Add to this the fact that this feature is marked as experimental. So, in
in general, I would say that there's no need for ensuring backward
compatibility for these components. That being said, wrt to Xen and
libxc, whether you want to add a new hypercall and a (well, two) new xc
call, or you want to modify the existing ones, it's up to you and to the
hypervisor and tools maintainers' opinion.
I don't think it would be terrible to leave an interface to set the
parameters of all vcpus of the domain alone, as we have for all the
other schedulers, and add hcalls and xc calls to set per-vcpu values.
Actually, if we design this well, it could be useful in future for other
schedulers, or if existent schedulers want to support different per-vcpu
parameters.
OTOH, libxl API is stable, so we must not change the look of the
behavior of calls introduced in a release. As said above, I think it is
actually a good thing to continue having a mechanism for setting the
parameters of all the vcpus of the domain at the same time, so I will
introduce per-vcpu parametes support as an entirely new API.
> If we have implemented the vcpu-level parameter control, it will be a
> superset of the current 'xl sched-rtds'. Back-supporting the current
> xl tool for RTDS scheduler (only) will just make the logic a bit more
> complex.
> I'm not sure if back-supporting for the experimental feature is a must?
>
In xl, it's again not "a must". However, I would not kill the current
logic. In fact, how about the following:
# xl sched-rtds -d 4 -p 10000 -b 5000
|
---> sets all the vcpus of domain 4 to 5000/10000
# xl sched-rtds -d 3 -v 2 -p 5000 -b 2000
|
---> set vcpu 2 of domain 4 to 2000/5000
# xl sched-rtds -d 2 -v 0 -p 10000 -b 1000 -v 1 -p 5000 -b 2500
|
---> set vcpu 0 of domain 2 to 1000/10000 and vcpu 1 of
domain 2 to 2500/5000
Regards,
Dario
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2015-02-24 10:17 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-21 15:51 [RFC] [Design] Better XL support of RTDS scheduler for Xen 4.6 Meng Xu
2015-02-22 15:56 ` Meng Xu
2015-02-23 17:27 ` Dario Faggioli
2015-02-24 4:15 ` Meng Xu
2015-02-24 10:17 ` Dario Faggioli [this message]
2015-02-23 15:57 ` Wei Liu
2015-02-24 3:58 ` Meng Xu
2015-02-24 10:37 ` Ian Campbell
2015-02-24 10:52 ` Dario Faggioli
2015-02-24 11:06 ` Ian Campbell
2015-02-24 11:30 ` Dario Faggioli
2015-02-24 14:16 ` Ian Campbell
2015-02-24 16:35 ` Dario Faggioli
2015-02-25 2:42 ` Meng Xu
2015-02-25 8:44 ` Dario Faggioli
2015-02-25 13:17 ` Meng Xu
2015-02-24 10:58 ` Dario Faggioli
2015-02-24 11:08 ` Ian Campbell
2015-02-24 12:27 ` Wei Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1424773049.4742.28.camel@citrix.com \
--to=dario.faggioli@citrix.com \
--cc=George.Dunlap@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@citrix.com \
--cc=andrii.tseglytskyi@globallogic.com \
--cc=cdgill@cse.wustl.edu \
--cc=chaowang@wustl.edu \
--cc=denys.drozdov@globallogic.com \
--cc=dgolomb@seas.upenn.edu \
--cc=lee@cis.upenn.edu \
--cc=lichong659@gmail.com \
--cc=linhphan@cis.upenn.edu \
--cc=lu.wustl@gmail.com \
--cc=mengxu@cis.upenn.edu \
--cc=sokolsky@cis.upenn.edu \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.org \
--cc=xisisu@gmail.com \
--cc=xumengpanda@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.