|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH 7/7] xl: allow for attaching and detaching a CPU to CMT
Now that the functionallity is wired, from within
Xen up to libxl, use that to implement a new mode
for `xl psr-cmt-attach' and `xl psr-cmt-detach',
by means of a new '-c' switch:
[root@redbrick ~]# xl psr-cmt-detach -c 4
[root@redbrick ~]# xl psr-cmt-attach -c 121
Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
---
tools/libxl/xl_cmdimpl.c | 44 ++++++++++++++++++++++++++++++++++----------
tools/libxl/xl_cmdtable.c | 12 ++++++++----
2 files changed, 42 insertions(+), 14 deletions(-)
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index d314947..7f7d995 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -8233,30 +8233,54 @@ static int psr_cmt_show(libxl_psr_cmt_type type,
uint32_t domid)
int main_psr_cmt_attach(int argc, char **argv)
{
- uint32_t domid;
+ uint32_t id;
+ bool cpu = false;
int opt, ret = 0;
+ static struct option opts[] = {
+ {"cpu", 0, 0, 'c'},
+ COMMON_LONG_OPTS,
+ {0, 0, 0, 0}
+ };
- SWITCH_FOREACH_OPT(opt, "", NULL, "psr-cmt-attach", 1) {
- /* No options */
+ SWITCH_FOREACH_OPT(opt, "c", opts, "psr-cmt-attach", 1) {
+ case 'c':
+ cpu = true;
+ break;
}
- domid = find_domain(argv[optind]);
- ret = libxl_psr_cmt_attach(ctx, domid);
+ if (cpu) {
+ id = atoi(argv[optind]);
+ return libxl_psr_cmt_cpu_attach(ctx, id);
+ }
+ id = find_domain(argv[optind]);
+ ret = libxl_psr_cmt_attach(ctx, id);
return ret;
}
int main_psr_cmt_detach(int argc, char **argv)
{
- uint32_t domid;
+ uint32_t id;
+ bool cpu = false;
int opt, ret = 0;
+ static struct option opts[] = {
+ {"cpu", 0, 0, 'c'},
+ COMMON_LONG_OPTS,
+ {0, 0, 0, 0}
+ };
- SWITCH_FOREACH_OPT(opt, "", NULL, "psr-cmt-detach", 1) {
- /* No options */
+ SWITCH_FOREACH_OPT(opt, "c", opts, "psr-cmt-detach", 1) {
+ case 'c':
+ cpu = true;
+ break;
}
- domid = find_domain(argv[optind]);
- ret = libxl_psr_cmt_detach(ctx, domid);
+ if (cpu) {
+ id = atoi(argv[optind]);
+ return libxl_psr_cmt_cpu_detach(ctx, id);
+ }
+ id = find_domain(argv[optind]);
+ ret = libxl_psr_cmt_detach(ctx, id);
return ret;
}
diff --git a/tools/libxl/xl_cmdtable.c b/tools/libxl/xl_cmdtable.c
index 5bbe406..886dd8a 100644
--- a/tools/libxl/xl_cmdtable.c
+++ b/tools/libxl/xl_cmdtable.c
@@ -526,13 +526,17 @@ struct cmd_spec cmd_table[] = {
#ifdef LIBXL_HAVE_PSR_CMT
{ "psr-cmt-attach",
&main_psr_cmt_attach, 0, 1,
- "Attach Cache Monitoring Technology service to a domain",
- "<Domain>",
+ "Attach Cache Monitoring Technology service to a domain or a pCPU",
+ "[-c|--cpu] <id>",
+ "By default (no -c), <id> is the domain id of the domain to start
monitoring.\n"
+ "-c|--cpu <id> Attach monitoring to CPU <id>."
},
{ "psr-cmt-detach",
&main_psr_cmt_detach, 0, 1,
- "Detach Cache Monitoring Technology service from a domain",
- "<Domain>",
+ "Detach Cache Monitoring Technology service from a domain or a pCPU",
+ "[-c|--cpu] <id>",
+ "By default (no -c), <id> is the domain id of the domain to stop
monitoring.\n"
+ "-c|--cpu <id> Detach monitoring from CPU <id>."
},
{ "psr-cmt-show",
&main_psr_cmt_show, 0, 1,
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |