Message ID | 149156811107.26316.1793005065487626355.stgit@Solace.fritz.box (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/04/17 13:28, Dario Faggioli wrote: > It being very very basic, also means this scheduler does > not need much support at the tools level (for now). > > Basically, just the definition of the symbol of the > scheduler itself and a couple of stubs. > > Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com> > Acked-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: George Dunlap <george.dunlap@citrix.com> And queued. > --- > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: George Dunlap <george.dunlap@citrix.com> > Cc: Julien Grall <julien.grall@arm.com> > Cc: Stefano Stabellini <stefano@aporeto.com> > --- > Changes from v2: > - _get() function now returns success (i.e., _get() and _set() function now > both returns the same). > --- > tools/libxl/libxl.h | 6 ++++++ > tools/libxl/libxl_sched.c | 24 ++++++++++++++++++++++++ > tools/libxl/libxl_types.idl | 1 + > 3 files changed, 31 insertions(+) > > diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h > index a402236..cf8687a 100644 > --- a/tools/libxl/libxl.h > +++ b/tools/libxl/libxl.h > @@ -210,6 +210,12 @@ > #define LIBXL_HAVE_SCHED_RTDS 1 > > /* > + * LIBXL_HAVE_SCHED_NULL indicates that the 'null' static scheduler > + * is available. > + */ > +#define LIBXL_HAVE_SCHED_NULL 1 > + > +/* > * libxl_domain_build_info has u.hvm.viridian_enable and _disable bitmaps > * of the specified width. > */ > diff --git a/tools/libxl/libxl_sched.c b/tools/libxl/libxl_sched.c > index 84d3837..faa604e 100644 > --- a/tools/libxl/libxl_sched.c > +++ b/tools/libxl/libxl_sched.c > @@ -178,6 +178,20 @@ static int sched_arinc653_domain_set(libxl__gc *gc, uint32_t domid, > return 0; > } > > +static int sched_null_domain_set(libxl__gc *gc, uint32_t domid, > + const libxl_domain_sched_params *scinfo) > +{ > + /* There aren't any domain-specific parameters to be set. */ > + return 0; > +} > + > +static int sched_null_domain_get(libxl__gc *gc, uint32_t domid, > + libxl_domain_sched_params *scinfo) > +{ > + /* There aren't any domain-specific parameters to return. */ > + return 0; > +} > + > static int sched_credit_domain_get(libxl__gc *gc, uint32_t domid, > libxl_domain_sched_params *scinfo) > { > @@ -730,6 +744,9 @@ int libxl_domain_sched_params_set(libxl_ctx *ctx, uint32_t domid, > case LIBXL_SCHEDULER_RTDS: > ret=sched_rtds_domain_set(gc, domid, scinfo); > break; > + case LIBXL_SCHEDULER_NULL: > + ret=sched_null_domain_set(gc, domid, scinfo); > + break; > default: > LOGD(ERROR, domid, "Unknown scheduler"); > ret=ERROR_INVAL; > @@ -758,6 +775,7 @@ int libxl_vcpu_sched_params_set(libxl_ctx *ctx, uint32_t domid, > case LIBXL_SCHEDULER_CREDIT: > case LIBXL_SCHEDULER_CREDIT2: > case LIBXL_SCHEDULER_ARINC653: > + case LIBXL_SCHEDULER_NULL: > LOGD(ERROR, domid, "per-VCPU parameter setting not supported for this scheduler"); > rc = ERROR_INVAL; > break; > @@ -792,6 +810,7 @@ int libxl_vcpu_sched_params_set_all(libxl_ctx *ctx, uint32_t domid, > case LIBXL_SCHEDULER_CREDIT: > case LIBXL_SCHEDULER_CREDIT2: > case LIBXL_SCHEDULER_ARINC653: > + case LIBXL_SCHEDULER_NULL: > LOGD(ERROR, domid, "per-VCPU parameter setting not supported for this scheduler"); > rc = ERROR_INVAL; > break; > @@ -832,6 +851,9 @@ int libxl_domain_sched_params_get(libxl_ctx *ctx, uint32_t domid, > case LIBXL_SCHEDULER_RTDS: > ret=sched_rtds_domain_get(gc, domid, scinfo); > break; > + case LIBXL_SCHEDULER_NULL: > + ret=sched_null_domain_get(gc, domid, scinfo); > + break; > default: > LOGD(ERROR, domid, "Unknown scheduler"); > ret=ERROR_INVAL; > @@ -858,6 +880,7 @@ int libxl_vcpu_sched_params_get(libxl_ctx *ctx, uint32_t domid, > case LIBXL_SCHEDULER_CREDIT: > case LIBXL_SCHEDULER_CREDIT2: > case LIBXL_SCHEDULER_ARINC653: > + case LIBXL_SCHEDULER_NULL: > LOGD(ERROR, domid, "per-VCPU parameter getting not supported for this scheduler"); > rc = ERROR_INVAL; > break; > @@ -890,6 +913,7 @@ int libxl_vcpu_sched_params_get_all(libxl_ctx *ctx, uint32_t domid, > case LIBXL_SCHEDULER_CREDIT: > case LIBXL_SCHEDULER_CREDIT2: > case LIBXL_SCHEDULER_ARINC653: > + case LIBXL_SCHEDULER_NULL: > LOGD(ERROR, domid, "per-VCPU parameter getting not supported for this scheduler"); > rc = ERROR_INVAL; > break; > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index bac226c..2204425 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -191,6 +191,7 @@ libxl_scheduler = Enumeration("scheduler", [ > (6, "credit2"), > (7, "arinc653"), > (8, "rtds"), > + (9, "null"), > ]) > > # Consistent with SHUTDOWN_* in sched.h (apart from UNKNOWN) >
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index a402236..cf8687a 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -210,6 +210,12 @@ #define LIBXL_HAVE_SCHED_RTDS 1 /* + * LIBXL_HAVE_SCHED_NULL indicates that the 'null' static scheduler + * is available. + */ +#define LIBXL_HAVE_SCHED_NULL 1 + +/* * libxl_domain_build_info has u.hvm.viridian_enable and _disable bitmaps * of the specified width. */ diff --git a/tools/libxl/libxl_sched.c b/tools/libxl/libxl_sched.c index 84d3837..faa604e 100644 --- a/tools/libxl/libxl_sched.c +++ b/tools/libxl/libxl_sched.c @@ -178,6 +178,20 @@ static int sched_arinc653_domain_set(libxl__gc *gc, uint32_t domid, return 0; } +static int sched_null_domain_set(libxl__gc *gc, uint32_t domid, + const libxl_domain_sched_params *scinfo) +{ + /* There aren't any domain-specific parameters to be set. */ + return 0; +} + +static int sched_null_domain_get(libxl__gc *gc, uint32_t domid, + libxl_domain_sched_params *scinfo) +{ + /* There aren't any domain-specific parameters to return. */ + return 0; +} + static int sched_credit_domain_get(libxl__gc *gc, uint32_t domid, libxl_domain_sched_params *scinfo) { @@ -730,6 +744,9 @@ int libxl_domain_sched_params_set(libxl_ctx *ctx, uint32_t domid, case LIBXL_SCHEDULER_RTDS: ret=sched_rtds_domain_set(gc, domid, scinfo); break; + case LIBXL_SCHEDULER_NULL: + ret=sched_null_domain_set(gc, domid, scinfo); + break; default: LOGD(ERROR, domid, "Unknown scheduler"); ret=ERROR_INVAL; @@ -758,6 +775,7 @@ int libxl_vcpu_sched_params_set(libxl_ctx *ctx, uint32_t domid, case LIBXL_SCHEDULER_CREDIT: case LIBXL_SCHEDULER_CREDIT2: case LIBXL_SCHEDULER_ARINC653: + case LIBXL_SCHEDULER_NULL: LOGD(ERROR, domid, "per-VCPU parameter setting not supported for this scheduler"); rc = ERROR_INVAL; break; @@ -792,6 +810,7 @@ int libxl_vcpu_sched_params_set_all(libxl_ctx *ctx, uint32_t domid, case LIBXL_SCHEDULER_CREDIT: case LIBXL_SCHEDULER_CREDIT2: case LIBXL_SCHEDULER_ARINC653: + case LIBXL_SCHEDULER_NULL: LOGD(ERROR, domid, "per-VCPU parameter setting not supported for this scheduler"); rc = ERROR_INVAL; break; @@ -832,6 +851,9 @@ int libxl_domain_sched_params_get(libxl_ctx *ctx, uint32_t domid, case LIBXL_SCHEDULER_RTDS: ret=sched_rtds_domain_get(gc, domid, scinfo); break; + case LIBXL_SCHEDULER_NULL: + ret=sched_null_domain_get(gc, domid, scinfo); + break; default: LOGD(ERROR, domid, "Unknown scheduler"); ret=ERROR_INVAL; @@ -858,6 +880,7 @@ int libxl_vcpu_sched_params_get(libxl_ctx *ctx, uint32_t domid, case LIBXL_SCHEDULER_CREDIT: case LIBXL_SCHEDULER_CREDIT2: case LIBXL_SCHEDULER_ARINC653: + case LIBXL_SCHEDULER_NULL: LOGD(ERROR, domid, "per-VCPU parameter getting not supported for this scheduler"); rc = ERROR_INVAL; break; @@ -890,6 +913,7 @@ int libxl_vcpu_sched_params_get_all(libxl_ctx *ctx, uint32_t domid, case LIBXL_SCHEDULER_CREDIT: case LIBXL_SCHEDULER_CREDIT2: case LIBXL_SCHEDULER_ARINC653: + case LIBXL_SCHEDULER_NULL: LOGD(ERROR, domid, "per-VCPU parameter getting not supported for this scheduler"); rc = ERROR_INVAL; break; diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index bac226c..2204425 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -191,6 +191,7 @@ libxl_scheduler = Enumeration("scheduler", [ (6, "credit2"), (7, "arinc653"), (8, "rtds"), + (9, "null"), ]) # Consistent with SHUTDOWN_* in sched.h (apart from UNKNOWN)