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

Re: [Xen-devel] [PATCH] full support of setting scheduler parameters on domain creation



On Mon, 2012-05-21 at 14:23 +0100, Juergen Gross wrote:
> On 05/21/2012 02:07 PM, Ian Campbell wrote:
> > On Mon, 2012-05-21 at 12:46 +0100, Juergen Gross wrote:
> >> Obtains current scheduler parameters before modifying any settings 
> >> specified
> >> via domain config. Only specified settings must be modified, of course!
> >>
> > I presume this will fix the
> > libxl: error: libxl.c:3208:libxl_sched_credit_domain_set: Cpu weight out
> > of range, valid values are within range from 1 to 65535
> > warning we are currently seeing? Thanks!
> >
> >> @@ -233,6 +233,14 @@ libxl_sched_params = Struct("sched_param
> >>       ("slice",        integer),
> >>       ("latency",      integer),
> >>       ("extratime",    integer),
> >> +    ("set_weight",       bool),
> >> +    ("set_cap",          bool),
> >> +    ("set_tslice_ms",    bool),
> >> +    ("set_ratelimit_us", bool),
> >> +    ("set_period",       bool),
> >> +    ("set_slice",        bool),
> >> +    ("set_latency",      bool),
> >> +    ("set_extratime",    bool),
> > Rather than doing this it would be preferable to identify some specific
> > value which means "default" for each of these fields. Generally this
> > would be either 0 (preferred if possible) or ~0 or -1. You can then
> > describe this in the IDL using the "init_val" property on each field.
> > e.g.:
> >
> > @@ -225,7 +225,7 @@ libxl_domain_create_info = Struct("domai
> >   MemKB = UInt(64, init_val = "LIBXL_MEMKB_DEFAULT")
> >
> >   libxl_sched_params = Struct("sched_params",[
> > -    ("weight",       integer),
> > +    ("weight",       integer, {'init_val': -1}),
> >       ("cap",          integer),
> >       ("tslice_ms",    integer),
> >       ("ratelimit_us", integer),
> >
> > (just as an illustration of a non-zero default, I suspect 0 would
> > actually be a fine default value for weight, and 0 is the default
> > init_val)
> >
> > Then libxl_sched_params_init, which xl must call (perhaps indirectly,
> > e.g. via libxl_domain_build_info_init) would set these defaults and xl
> > would override them from the config and libxl would only set those which
> > were non-default.
> 
> Hmm. Scheduling parameters are handled in the hypervisor. I don't want to
> export the knowledge about semantics to the tools. If this is no problem,
> why can't I just set the defaults in the tools and omit asking the
> hypervisor for the current settings?

Exporting the idea that 0 is not a valid weight is (IMHO at least)
better than exporting the fact that the default weight is (e.g.) 200 and
hard coding that in multiple places.

> Additionally there are parameters (well, one parameter) which apply to
> multiple schedulers. Just by chance -1 would be invalid for all of them,
> but I don't like to hard code this coincidence.

Which parameter is it? Is there any reasonable possibility that a
scheduler would ever use -1 (or +4 billion) for it?

You could define a symbolic name if that would make you more comfortable
(that would allow us to change the specific value without changing the
API)

Ian.


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