[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 for Xen 4.6 4/4] xl: enabling XL to set per-VCPU parameters of a domain for RTDS scheduler
On Mon, Jun 8, 2015 at 11:21 AM, Dario Faggioli <dario.faggioli@xxxxxxxxxx> wrote: > On Mon, 2015-05-25 at 19:11 -0500, Chong Li wrote: >> Change main_sched_rtds and related output functions to support per-VCPU >> settings >> for xl sched-rtds tool. >> >> Signed-off-by: Chong Li <chong.li@xxxxxxxxx> >> Signed-off-by: Meng Xu <mengxu@xxxxxxxxxxxxx> >> Signed-off-by: Sisu Xi <xisisu@xxxxxxxxx> >> --- >> tools/libxl/xl_cmdimpl.c | 261 >> +++++++++++++++++++++++++++++++++++++++++------ >> 1 file changed, 230 insertions(+), 31 deletions(-) >> > You must be changing tools/libxl/xl_cmdtable.c as well, or new options > won't work (at least they won't show up in the command's help). Yes, you are right. Without this change, the complete command help doesn't show up. It'll be fixed in v3. > >> --- a/tools/libxl/xl_cmdimpl.c >> +++ b/tools/libxl/xl_cmdimpl.c > >> @@ -6120,76 +6186,209 @@ int main_sched_rtds(int argc, char **argv) >> { >> const char *dom = NULL; >> const char *cpupool = NULL; >> - int period = 0; /* period is in microsecond */ >> - int budget = 0; /* budget is in microsecond */ >> + >> + int *vcpus = (int *)xmalloc(sizeof(int)); /* IDs of VCPUs that change */ >> + int *periods = (int *)xmalloc(sizeof(int)); /* period is in microsecond >> */ >> + int *budgets = (int *)xmalloc(sizeof(int)); /* budget is in microsecond >> */ >> + int vcpus_size = 1; /* size of vcpus array */ >> + int periods_size = 1; /* size of periods array */ >> + int budgets_size = 1; /* size of budgets array */ >> + int input_size = 0; /* number of the input param set (v, p, b) */ >> + bool flag_b = false; >> + bool flag_p = false; >> + bool flag_v = false; >> bool opt_p = false; >> bool opt_b = false; >> - int opt, rc; >> + bool opt_v = false; >> + bool opt_o = false; /* get per-domain info instead of per-vcpu info */ >> + int opt, i; >> + int rc = 0; >> static struct option opts[] = { >> {"domain", 1, 0, 'd'}, >> {"period", 1, 0, 'p'}, >> {"budget", 1, 0, 'b'}, >> + {"vcpu",1, 0, 'v'}, >> {"cpupool", 1, 0, 'c'}, >> + {"output", 1, 0, 'o'}, >> COMMON_LONG_OPTS, >> {0, 0, 0, 0} >> }; >> > I don't like "-o/--output" as the name of the config switch for this. > > Also, what is the semantic of passing -o, in case one has given > different parameters to each vcpus? What would the command print in that > case? > > I think that, while it makes sense to have the interface in place for > the setting part, as a shortcut of setting all the parameters of all the > vcpus to the same values, for the getting and printing side of things, > it make much less sense. > > I appreciate just now that this probably affect other bits of the > interface, as well as other interfaces, and I think we should handle it > consistently... > > What do you think? > For example (although this belong to patch 3's review) what > libxl_domain_sched_params_get() does in the case I jus described? Here, "-o/--output" is used for the users who only do per-dom settings. In those cases, "-o" is provided to show per-dom parameters, and the output is just the same as what the old RTDS tool does. When "-o" is set, libxl_domain_sched_params_get() and sched_rtds_domain_get() (both two functions in libxl.c) are called. Without "-o", then sched_rtds_domain_get() should be deleted because it will never be touched. I'm also fine with that. Chong > > Regards, > Dario > > -- > <<This happens because I choose it to happen!>> (Raistlin Majere) > ----------------------------------------------------------------- > Dario Faggioli, Ph.D, http://about.me/dario.faggioli > Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) -- Chong Li Department of Computer Science and Engineering Washington University in St.louis _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |