* [PATCH 0 of 5] xl scheduler support
@ 2011-11-17 10:50 Juergen Gross
2011-11-17 10:50 ` [PATCH 1 of 5] [mq]: sched-credit-options Juergen Gross
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Juergen Gross @ 2011-11-17 10:50 UTC (permalink / raw)
To: xen-devel
This patch series enhances scheduler support of xl.
Patch 1: xl sched-credit: support long options
Patch 2: Support cpupools in xl sched-credit
Patch 3: Support of xl sched-credit2
Patch 4: Correct error message in libxl_sched_credit_domain_get()
Patch 5: Support of xl sched-sedf
7 files changed, 622 insertions(+), 38 deletions(-)
docs/man/xl.pod.1 | 90 ++++++++-
tools/libxl/libxl.c | 100 ++++++++++
tools/libxl/libxl.h | 8
tools/libxl/libxl_types.idl | 13 +
tools/libxl/xl.h | 2
tools/libxl/xl_cmdimpl.c | 418 +++++++++++++++++++++++++++++++++++++++----
tools/libxl/xl_cmdtable.c | 29 ++
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1 of 5] [mq]: sched-credit-options
2011-11-17 10:50 [PATCH 0 of 5] xl scheduler support Juergen Gross
@ 2011-11-17 10:50 ` Juergen Gross
2011-11-17 11:16 ` Ian Campbell
2011-11-17 10:50 ` [PATCH 2 of 5] [mq]: sched-cpupools Juergen Gross
` (4 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Juergen Gross @ 2011-11-17 10:50 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 188 bytes --]
Patch subject is complete summary.
2 files changed, 26 insertions(+), 7 deletions(-)
docs/man/xl.pod.1 | 15 ++++++++++-----
tools/libxl/xl_cmdimpl.c | 18 ++++++++++++++++--
[-- Attachment #2: xen-staging.hg-5.patch --]
[-- Type: text/x-patch, Size: 2654 bytes --]
# HG changeset patch
# User Juergen Gross <juergen.gross@ts.fujitsu.com>
# Date 1321512799 -3600
# Node ID b83edf5a1c9483b908dacfb5e02033071c7aca3e
# Parent fd3567cafe1c7ccd0ddba0ad7fb067d435e13529
[mq]: sched-credit-options
diff -r fd3567cafe1c -r b83edf5a1c94 docs/man/xl.pod.1
--- a/docs/man/xl.pod.1 Tue Nov 15 14:50:18 2011 +0100
+++ b/docs/man/xl.pod.1 Thu Nov 17 07:53:19 2011 +0100
@@ -579,25 +579,30 @@ default B<credit> is used for scheduling
=over 4
-=item B<sched-credit> [ B<-d> I<domain-id> [ B<-w>[B<=>I<WEIGHT>] | B<-c>[B<=>I<CAP>] ] ]
+=item B<sched-credit> [I<OPTIONS>]
-Set credit scheduler parameters. The credit scheduler is a
+Set or get credit scheduler parameters. The credit scheduler is a
proportional fair share CPU scheduler built from the ground up to be
work conserving on SMP hosts.
Each domain (including Domain0) is assigned a weight and a cap.
-B<PARAMETERS>
+B<OPTIONS>
=over 4
-=item I<WEIGHT>
+=item B<-d DOMAIN>, B<--domain=DOMAIN>
+
+Specify domain for which scheduler parameters are to be modified or retrieved.
+Mandatory for modifying scheduler parameters.
+
+=item B<-w WEIGHT>, B<--weight=WEIGHT>
A domain with a weight of 512 will get twice as much CPU as a domain
with a weight of 256 on a contended host. Legal weights range from 1
to 65535 and the default is 256.
-=item I<CAP>
+=item B<-c CAP>, B<--cap=CAP>
The cap optionally fixes the maximum amount of CPU a domain will be
able to consume, even if the host system has idle CPU cycles. The cap
diff -r fd3567cafe1c -r b83edf5a1c94 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Tue Nov 15 14:50:18 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c Thu Nov 17 07:53:19 2011 +0100
@@ -3716,8 +3716,19 @@ int main_sched_credit(int argc, char **a
const char *dom = NULL;
int weight = 256, cap = 0, opt_w = 0, opt_c = 0;
int opt, rc;
-
- while ((opt = def_getopt(argc, argv, "d:w:c:", "sched-credit", 0)) != -1) {
+ int option_index = 0;
+ static struct option long_options[] = {
+ {"domain", 1, 0, 'd'},
+ {"weight", 1, 0, 'w'},
+ {"cap", 1, 0, 'c'},
+ {"help", 0, 0, 'h'},
+ {0, 0, 0, 0}
+ };
+
+ while (1) {
+ opt = getopt_long(argc, argv, "d:w:c:h", long_options, &option_index);
+ if (opt == -1)
+ break;
switch (opt) {
case 0: case 2:
return opt;
@@ -3732,6 +3743,9 @@ int main_sched_credit(int argc, char **a
cap = strtol(optarg, NULL, 10);
opt_c = 1;
break;
+ case 'h':
+ help("sched-credit");
+ return 0;
}
}
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2 of 5] [mq]: sched-cpupools
2011-11-17 10:50 [PATCH 0 of 5] xl scheduler support Juergen Gross
2011-11-17 10:50 ` [PATCH 1 of 5] [mq]: sched-credit-options Juergen Gross
@ 2011-11-17 10:50 ` Juergen Gross
2011-11-17 10:50 ` [PATCH 3 of 5] [mq]: sched-credit2 Juergen Gross
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Juergen Gross @ 2011-11-17 10:50 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 315 bytes --]
Patch subject is complete summary.
5 files changed, 98 insertions(+), 30 deletions(-)
docs/man/xl.pod.1 | 4 +
tools/libxl/libxl.c | 1
tools/libxl/libxl_types.idl | 1
tools/libxl/xl_cmdimpl.c | 117 ++++++++++++++++++++++++++++++++-----------
tools/libxl/xl_cmdtable.c | 5 +
[-- Attachment #2: xen-staging.hg-5.patch --]
[-- Type: text/x-patch, Size: 7555 bytes --]
# HG changeset patch
# User Juergen Gross <juergen.gross@ts.fujitsu.com>
# Date 1321519012 -3600
# Node ID 8ce33d756b39abdcffc7a3ccc45f85c0a9a79ccd
# Parent b83edf5a1c9483b908dacfb5e02033071c7aca3e
[mq]: sched-cpupools
diff -r b83edf5a1c94 -r 8ce33d756b39 docs/man/xl.pod.1
--- a/docs/man/xl.pod.1 Thu Nov 17 07:53:19 2011 +0100
+++ b/docs/man/xl.pod.1 Thu Nov 17 09:36:52 2011 +0100
@@ -610,6 +610,10 @@ 50 is half a CPU, 400 is 4 CPUs, etc. Th
50 is half a CPU, 400 is 4 CPUs, etc. The default, 0, means there is
no upper cap.
+=item B<-p CPUPOOL>, B<--cpupool=CPUPOOL>
+
+Restrict output to domains in the specified cpupool.
+
=back
=back
diff -r b83edf5a1c94 -r 8ce33d756b39 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Thu Nov 17 07:53:19 2011 +0100
+++ b/tools/libxl/libxl.c Thu Nov 17 09:36:52 2011 +0100
@@ -361,6 +361,7 @@ static void xcinfo2xlinfo(const xc_domai
xlinfo->cpu_time = xcinfo->cpu_time;
xlinfo->vcpu_max_id = xcinfo->max_vcpu_id;
xlinfo->vcpu_online = xcinfo->nr_online_vcpus;
+ xlinfo->cpupool = xcinfo->cpupool;
}
libxl_dominfo * libxl_list_domain(libxl_ctx *ctx, int *nb_domain)
diff -r b83edf5a1c94 -r 8ce33d756b39 tools/libxl/libxl_types.idl
--- a/tools/libxl/libxl_types.idl Thu Nov 17 07:53:19 2011 +0100
+++ b/tools/libxl/libxl_types.idl Thu Nov 17 09:36:52 2011 +0100
@@ -109,6 +109,7 @@ SHUTDOWN_* constant."""),
("cpu_time", uint64),
("vcpu_max_id", uint32),
("vcpu_online", uint32),
+ ("cpupool", uint32),
], dispose_fn=None)
libxl_cpupoolinfo = Struct("cpupoolinfo", [
diff -r b83edf5a1c94 -r 8ce33d756b39 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Thu Nov 17 07:53:19 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c Thu Nov 17 09:36:52 2011 +0100
@@ -3695,25 +3695,90 @@ static int sched_credit_domain_set(
return rc;
}
-static void sched_credit_domain_output(
- int domid, libxl_sched_credit *scinfo)
+static int sched_credit_domain_output(
+ int domid)
{
char *domname;
+ libxl_sched_credit scinfo;
+ int rc;
+
+ if (domid < 0) {
+ printf("%-33s %4s %6s %4s\n", "Name", "ID", "Weight", "Cap");
+ return 0;
+ }
+ rc = sched_credit_domain_get(domid, &scinfo);
+ if (rc)
+ return rc;
domname = libxl_domid_to_name(ctx, domid);
printf("%-33s %4d %6d %4d\n",
domname,
domid,
- scinfo->weight,
- scinfo->cap);
+ scinfo.weight,
+ scinfo.cap);
free(domname);
+ return 0;
+}
+
+static int sched_domain_output(
+ uint32_t sched, int (*output)(int), const char *cpupool)
+{
+ libxl_dominfo *info;
+ libxl_cpupoolinfo *poolinfo = NULL;
+ uint32_t poolid;
+ char *poolname;
+ int nb_domain, n_pools = 0, i, p;
+ int rc = 0;
+
+ if (cpupool) {
+ if (cpupool_qualifier_to_cpupoolid(cpupool, &poolid, NULL) ||
+ !libxl_cpupoolid_to_name(ctx, poolid)) {
+ fprintf(stderr, "unknown cpupool \'%s\'\n", cpupool);
+ return -ERROR_FAIL;
+ }
+ }
+
+ info = libxl_list_domain(ctx, &nb_domain);
+ if (!info) {
+ fprintf(stderr, "libxl_domain_infolist failed.\n");
+ return 1;
+ }
+ poolinfo = libxl_list_cpupool(ctx, &n_pools);
+ if (!poolinfo) {
+ fprintf(stderr, "error getting cpupool info\n");
+ return -ERROR_NOMEM;
+ }
+
+ for (p = 0; !rc && (p < n_pools); p++) {
+ if ((poolinfo[p].sched_id != sched) ||
+ (cpupool && (poolid != poolinfo[p].poolid)))
+ continue;
+
+ poolname = libxl_cpupoolid_to_name(ctx, poolinfo[p].poolid);
+ printf("Cpupool %s:\n", poolname);
+ free(poolname);
+
+ output(-1);
+ for (i = 0; i < nb_domain; i++) {
+ if (info[i].cpupool != poolinfo[p].poolid)
+ continue;
+ rc = output(info[i].domid);
+ if (rc)
+ break;
+ }
+ }
+ if (poolinfo) {
+ for (p = 0; p < n_pools; p++) {
+ libxl_cpupoolinfo_dispose(poolinfo + p);
+ }
+ }
+ return 0;
}
int main_sched_credit(int argc, char **argv)
{
- libxl_dominfo *info;
libxl_sched_credit scinfo;
- int nb_domain, i;
- const char *dom = NULL;
+ const char *dom = NULL;
+ const char *cpupool = NULL;
int weight = 256, cap = 0, opt_w = 0, opt_c = 0;
int opt, rc;
int option_index = 0;
@@ -3721,12 +3786,13 @@ int main_sched_credit(int argc, char **a
{"domain", 1, 0, 'd'},
{"weight", 1, 0, 'w'},
{"cap", 1, 0, 'c'},
- {"help", 0, 0, 'h'},
- {0, 0, 0, 0}
- };
-
- while (1) {
- opt = getopt_long(argc, argv, "d:w:c:h", long_options, &option_index);
+ {"cpupool", 1, 0, 'p'},
+ {"help", 0, 0, 'h'},
+ {0, 0, 0, 0}
+ };
+
+ while (1) {
+ opt = getopt_long(argc, argv, "d:w:c:p:h", long_options, &option_index);
if (opt == -1)
break;
switch (opt) {
@@ -3743,31 +3809,26 @@ int main_sched_credit(int argc, char **a
cap = strtol(optarg, NULL, 10);
opt_c = 1;
break;
+ case 'p':
+ cpupool = optarg;
+ break;
case 'h':
help("sched-credit");
return 0;
}
}
+ if (cpupool && (dom || opt_w || opt_c)) {
+ fprintf(stderr, "Specifying a cpupool is not allowed with other options.\n");
+ return 1;
+ }
if (!dom && (opt_w || opt_c)) {
fprintf(stderr, "Must specify a domain.\n");
return 1;
}
if (!dom) { /* list all domain's credit scheduler info */
- info = libxl_list_domain(ctx, &nb_domain);
- if (!info) {
- fprintf(stderr, "libxl_domain_infolist failed.\n");
- return 1;
- }
-
- printf("%-33s %4s %6s %4s\n", "Name", "ID", "Weight", "Cap");
- for (i = 0; i < nb_domain; i++) {
- rc = sched_credit_domain_get(info[i].domid, &scinfo);
- if (rc)
- return -rc;
- sched_credit_domain_output(info[i].domid, &scinfo);
- }
+ return -sched_domain_output(XEN_SCHEDULER_CREDIT, sched_credit_domain_output, cpupool);
} else {
find_domain(dom);
@@ -3776,8 +3837,8 @@ int main_sched_credit(int argc, char **a
return -rc;
if (!opt_w && !opt_c) { /* output credit scheduler info */
- printf("%-33s %4s %6s %4s\n", "Name", "ID", "Weight", "Cap");
- sched_credit_domain_output(domid, &scinfo);
+ sched_credit_domain_output(-1);
+ return -sched_credit_domain_output(domid);
} else { /* set credit scheduler paramaters */
if (opt_w)
scinfo.weight = weight;
diff -r b83edf5a1c94 -r 8ce33d756b39 tools/libxl/xl_cmdtable.c
--- a/tools/libxl/xl_cmdtable.c Thu Nov 17 07:53:19 2011 +0100
+++ b/tools/libxl/xl_cmdtable.c Thu Nov 17 09:36:52 2011 +0100
@@ -192,10 +192,11 @@ struct cmd_spec cmd_table[] = {
{ "sched-credit",
&main_sched_credit, 0,
"Get/set credit scheduler parameters",
- "[-d <Domain> [-w[=WEIGHT]|-c[=CAP]]]",
+ "[-d <Domain> [-w[=WEIGHT]|-c[=CAP]]] [-p CPUPOOL]",
"-d DOMAIN, --domain=DOMAIN Domain to modify\n"
"-w WEIGHT, --weight=WEIGHT Weight (int)\n"
- "-c CAP, --cap=CAP Cap (int)"
+ "-c CAP, --cap=CAP Cap (int)\n"
+ "-p CPUPOOL, --cpupool=CPUPOOL Restrict output to CPUPOOL"
},
{ "domid",
&main_domid, 0,
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3 of 5] [mq]: sched-credit2
2011-11-17 10:50 [PATCH 0 of 5] xl scheduler support Juergen Gross
2011-11-17 10:50 ` [PATCH 1 of 5] [mq]: sched-credit-options Juergen Gross
2011-11-17 10:50 ` [PATCH 2 of 5] [mq]: sched-cpupools Juergen Gross
@ 2011-11-17 10:50 ` Juergen Gross
2011-11-17 10:50 ` [PATCH 4 of 5] [mq]: sched-credit-errtxt Juergen Gross
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Juergen Gross @ 2011-11-17 10:50 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 400 bytes --]
Patch subject is complete summary.
7 files changed, 213 insertions(+)
docs/man/xl.pod.1 | 29 ++++++++++
tools/libxl/libxl.c | 48 +++++++++++++++++
tools/libxl/libxl.h | 4 +
tools/libxl/libxl_types.idl | 4 +
tools/libxl/xl.h | 1
tools/libxl/xl_cmdimpl.c | 119 +++++++++++++++++++++++++++++++++++++++++++
tools/libxl/xl_cmdtable.c | 8 ++
[-- Attachment #2: xen-staging.hg-5.patch --]
[-- Type: text/x-patch, Size: 9331 bytes --]
# HG changeset patch
# User Juergen Gross <juergen.gross@ts.fujitsu.com>
# Date 1321520185 -3600
# Node ID f88a51e4877548c6dc231ec1db409f84b6909816
# Parent 8ce33d756b39abdcffc7a3ccc45f85c0a9a79ccd
[mq]: sched-credit2
diff -r 8ce33d756b39 -r f88a51e48775 docs/man/xl.pod.1
--- a/docs/man/xl.pod.1 Thu Nov 17 09:36:52 2011 +0100
+++ b/docs/man/xl.pod.1 Thu Nov 17 09:56:25 2011 +0100
@@ -616,6 +616,35 @@ Restrict output to domains in the specif
=back
+=item B<sched-credit2> [I<OPTIONS>]
+
+Set or get credit2 scheduler parameters. The credit2 scheduler is a
+proportional fair share CPU scheduler built from the ground up to be
+work conserving on SMP hosts.
+
+Each domain (including Domain0) is assigned a weight.
+
+B<OPTIONS>
+
+=over 4
+
+=item B<-d DOMAIN>, B<--domain=DOMAIN>
+
+Specify domain for which scheduler parameters are to be modified or retrieved.
+Mandatory for modifying scheduler parameters.
+
+=item B<-w WEIGHT>, B<--weight=WEIGHT>
+
+A domain with a weight of 512 will get twice as much CPU as a domain
+with a weight of 256 on a contended host. Legal weights range from 1
+to 65535 and the default is 256.
+
+=item B<-p CPUPOOL>, B<--cpupool=CPUPOOL>
+
+Restrict output to domains in the specified cpupool.
+
+=back
+
=back
=head1 CPUPOOLS COMMANDS
diff -r 8ce33d756b39 -r f88a51e48775 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Thu Nov 17 09:36:52 2011 +0100
+++ b/tools/libxl/libxl.c Thu Nov 17 09:56:25 2011 +0100
@@ -2729,6 +2729,54 @@ int libxl_sched_credit_domain_set(libxl_
return 0;
}
+int libxl_sched_credit2_domain_get(libxl_ctx *ctx, uint32_t domid, libxl_sched_credit2 *scinfo)
+{
+ struct xen_domctl_sched_credit2 sdom;
+ int rc;
+
+ rc = xc_sched_credit2_domain_get(ctx->xch, domid, &sdom);
+ if (rc != 0) {
+ LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain sched credit2");
+ return ERROR_FAIL;
+ }
+
+ scinfo->weight = sdom.weight;
+
+ return 0;
+}
+
+int libxl_sched_credit2_domain_set(libxl_ctx *ctx, uint32_t domid, libxl_sched_credit2 *scinfo)
+{
+ struct xen_domctl_sched_credit2 sdom;
+ xc_domaininfo_t domaininfo;
+ int rc;
+
+ rc = xc_domain_getinfolist(ctx->xch, domid, 1, &domaininfo);
+ if (rc < 0) {
+ LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain info list");
+ return ERROR_FAIL;
+ }
+ if (rc != 1 || domaininfo.domain != domid)
+ return ERROR_INVAL;
+
+
+ if (scinfo->weight < 1 || scinfo->weight > 65535) {
+ LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc,
+ "Cpu weight out of range, valid values are within range from 1 to 65535");
+ return ERROR_INVAL;
+ }
+
+ sdom.weight = scinfo->weight;
+
+ rc = xc_sched_credit2_domain_set(ctx->xch, domid, &sdom);
+ if ( rc < 0 ) {
+ LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "setting domain sched credit2");
+ return ERROR_FAIL;
+ }
+
+ return 0;
+}
+
static int trigger_type_from_string(char *trigger_name)
{
if (!strcmp(trigger_name, "nmi"))
diff -r 8ce33d756b39 -r f88a51e48775 tools/libxl/libxl.h
--- a/tools/libxl/libxl.h Thu Nov 17 09:36:52 2011 +0100
+++ b/tools/libxl/libxl.h Thu Nov 17 09:56:25 2011 +0100
@@ -567,6 +567,10 @@ int libxl_sched_credit_domain_get(libxl_
libxl_sched_credit *scinfo);
int libxl_sched_credit_domain_set(libxl_ctx *ctx, uint32_t domid,
libxl_sched_credit *scinfo);
+int libxl_sched_credit2_domain_get(libxl_ctx *ctx, uint32_t domid,
+ libxl_sched_credit2 *scinfo);
+int libxl_sched_credit2_domain_set(libxl_ctx *ctx, uint32_t domid,
+ libxl_sched_credit2 *scinfo);
int libxl_send_trigger(libxl_ctx *ctx, uint32_t domid,
char *trigger_name, uint32_t vcpuid);
int libxl_send_sysrq(libxl_ctx *ctx, uint32_t domid, char sysrq);
diff -r 8ce33d756b39 -r f88a51e48775 tools/libxl/libxl_types.idl
--- a/tools/libxl/libxl_types.idl Thu Nov 17 09:36:52 2011 +0100
+++ b/tools/libxl/libxl_types.idl Thu Nov 17 09:56:25 2011 +0100
@@ -373,3 +373,7 @@ libxl_sched_credit = Struct("sched_credi
("weight", integer),
("cap", integer),
], dispose_fn=None)
+
+libxl_sched_credit2 = Struct("sched_credit2", [
+ ("weight", integer),
+ ], dispose_fn=None)
diff -r 8ce33d756b39 -r f88a51e48775 tools/libxl/xl.h
--- a/tools/libxl/xl.h Thu Nov 17 09:36:52 2011 +0100
+++ b/tools/libxl/xl.h Thu Nov 17 09:56:25 2011 +0100
@@ -55,6 +55,7 @@ int main_memmax(int argc, char **argv);
int main_memmax(int argc, char **argv);
int main_memset(int argc, char **argv);
int main_sched_credit(int argc, char **argv);
+int main_sched_credit2(int argc, char **argv);
int main_domid(int argc, char **argv);
int main_domname(int argc, char **argv);
int main_rename(int argc, char **argv);
diff -r 8ce33d756b39 -r f88a51e48775 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Thu Nov 17 09:36:52 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c Thu Nov 17 09:56:25 2011 +0100
@@ -3719,6 +3719,53 @@ static int sched_credit_domain_output(
return 0;
}
+static int sched_credit2_domain_get(
+ int domid, libxl_sched_credit2 *scinfo)
+{
+ int rc;
+
+ rc = libxl_sched_credit2_domain_get(ctx, domid, scinfo);
+ if (rc)
+ fprintf(stderr, "libxl_sched_credit2_domain_get failed.\n");
+
+ return rc;
+}
+
+static int sched_credit2_domain_set(
+ int domid, libxl_sched_credit2 *scinfo)
+{
+ int rc;
+
+ rc = libxl_sched_credit2_domain_set(ctx, domid, scinfo);
+ if (rc)
+ fprintf(stderr, "libxl_sched_credit2_domain_set failed.\n");
+
+ return rc;
+}
+
+static int sched_credit2_domain_output(
+ int domid)
+{
+ char *domname;
+ libxl_sched_credit2 scinfo;
+ int rc;
+
+ if (domid < 0) {
+ printf("%-33s %4s %6s\n", "Name", "ID", "Weight");
+ return 0;
+ }
+ rc = sched_credit2_domain_get(domid, &scinfo);
+ if (rc)
+ return rc;
+ domname = libxl_domid_to_name(ctx, domid);
+ printf("%-33s %4d %6d\n",
+ domname,
+ domid,
+ scinfo.weight);
+ free(domname);
+ return 0;
+}
+
static int sched_domain_output(
uint32_t sched, int (*output)(int), const char *cpupool)
{
@@ -3845,6 +3892,78 @@ int main_sched_credit(int argc, char **a
if (opt_c)
scinfo.cap = cap;
rc = sched_credit_domain_set(domid, &scinfo);
+ if (rc)
+ return -rc;
+ }
+ }
+
+ return 0;
+}
+
+int main_sched_credit2(int argc, char **argv)
+{
+ libxl_sched_credit2 scinfo;
+ const char *dom = NULL;
+ const char *cpupool = NULL;
+ int weight = 256, opt_w = 0;
+ int opt, rc;
+ int option_index = 0;
+ static struct option long_options[] = {
+ {"domain", 1, 0, 'd'},
+ {"weight", 1, 0, 'w'},
+ {"cpupool", 1, 0, 'p'},
+ {"help", 0, 0, 'h'},
+ {0, 0, 0, 0}
+ };
+
+ while (1) {
+ opt = getopt_long(argc, argv, "d:w:p:h", long_options, &option_index);
+ if (opt == -1)
+ break;
+ switch (opt) {
+ case 0: case 2:
+ return opt;
+ case 'd':
+ dom = optarg;
+ break;
+ case 'w':
+ weight = strtol(optarg, NULL, 10);
+ opt_w = 1;
+ break;
+ case 'p':
+ cpupool = optarg;
+ break;
+ case 'h':
+ help("sched-credit");
+ return 0;
+ }
+ }
+
+ if (cpupool && (dom || opt_w)) {
+ fprintf(stderr, "Specifying a cpupool is not allowed with other options.\n");
+ return 1;
+ }
+ if (!dom && opt_w) {
+ fprintf(stderr, "Must specify a domain.\n");
+ return 1;
+ }
+
+ if (!dom) { /* list all domain's credit scheduler info */
+ return -sched_domain_output(XEN_SCHEDULER_CREDIT2, sched_credit2_domain_output, cpupool);
+ } else {
+ find_domain(dom);
+
+ rc = sched_credit2_domain_get(domid, &scinfo);
+ if (rc)
+ return -rc;
+
+ if (!opt_w) { /* output credit2 scheduler info */
+ sched_credit2_domain_output(-1);
+ return -sched_credit2_domain_output(domid);
+ } else { /* set credit2 scheduler paramaters */
+ if (opt_w)
+ scinfo.weight = weight;
+ rc = sched_credit2_domain_set(domid, &scinfo);
if (rc)
return -rc;
}
diff -r 8ce33d756b39 -r f88a51e48775 tools/libxl/xl_cmdtable.c
--- a/tools/libxl/xl_cmdtable.c Thu Nov 17 09:36:52 2011 +0100
+++ b/tools/libxl/xl_cmdtable.c Thu Nov 17 09:56:25 2011 +0100
@@ -196,6 +196,14 @@ struct cmd_spec cmd_table[] = {
"-d DOMAIN, --domain=DOMAIN Domain to modify\n"
"-w WEIGHT, --weight=WEIGHT Weight (int)\n"
"-c CAP, --cap=CAP Cap (int)\n"
+ "-p CPUPOOL, --cpupool=CPUPOOL Restrict output to CPUPOOL"
+ },
+ { "sched-credit2",
+ &main_sched_credit2, 0,
+ "Get/set credit2 scheduler parameters",
+ "[-d <Domain> [-w[=WEIGHT]]] [-p CPUPOOL]",
+ "-d DOMAIN, --domain=DOMAIN Domain to modify\n"
+ "-w WEIGHT, --weight=WEIGHT Weight (int)\n"
"-p CPUPOOL, --cpupool=CPUPOOL Restrict output to CPUPOOL"
},
{ "domid",
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4 of 5] [mq]: sched-credit-errtxt
2011-11-17 10:50 [PATCH 0 of 5] xl scheduler support Juergen Gross
` (2 preceding siblings ...)
2011-11-17 10:50 ` [PATCH 3 of 5] [mq]: sched-credit2 Juergen Gross
@ 2011-11-17 10:50 ` Juergen Gross
2011-11-17 10:50 ` [PATCH 5 of 5] [mq]: sched-sedf Juergen Gross
2011-11-17 11:14 ` [PATCH 0 of 5] xl scheduler support Juergen Gross
5 siblings, 0 replies; 9+ messages in thread
From: Juergen Gross @ 2011-11-17 10:50 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 115 bytes --]
Patch subject is complete summary.
1 file changed, 1 insertion(+), 1 deletion(-)
tools/libxl/libxl.c | 2 +-
[-- Attachment #2: xen-staging.hg-5.patch --]
[-- Type: text/x-patch, Size: 743 bytes --]
# HG changeset patch
# User Juergen Gross <juergen.gross@ts.fujitsu.com>
# Date 1321520316 -3600
# Node ID 714852e181d3c1fdb1cde4f28a592110a9c7cf0d
# Parent f88a51e4877548c6dc231ec1db409f84b6909816
[mq]: sched-credit-errtxt
diff -r f88a51e48775 -r 714852e181d3 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Thu Nov 17 09:56:25 2011 +0100
+++ b/tools/libxl/libxl.c Thu Nov 17 09:58:36 2011 +0100
@@ -2679,7 +2679,7 @@ int libxl_sched_credit_domain_get(libxl_
rc = xc_sched_credit_domain_get(ctx->xch, domid, &sdom);
if (rc != 0) {
- LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "setting domain sched credit");
+ LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain sched credit");
return ERROR_FAIL;
}
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 5 of 5] [mq]: sched-sedf
2011-11-17 10:50 [PATCH 0 of 5] xl scheduler support Juergen Gross
` (3 preceding siblings ...)
2011-11-17 10:50 ` [PATCH 4 of 5] [mq]: sched-credit-errtxt Juergen Gross
@ 2011-11-17 10:50 ` Juergen Gross
2011-11-17 11:14 ` [PATCH 0 of 5] xl scheduler support Juergen Gross
5 siblings, 0 replies; 9+ messages in thread
From: Juergen Gross @ 2011-11-17 10:50 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 399 bytes --]
Patch subject is complete summary.
7 files changed, 284 insertions(+)
docs/man/xl.pod.1 | 42 +++++++++++
tools/libxl/libxl.c | 49 ++++++++++++
tools/libxl/libxl.h | 4 +
tools/libxl/libxl_types.idl | 8 ++
tools/libxl/xl.h | 1
tools/libxl/xl_cmdimpl.c | 164 +++++++++++++++++++++++++++++++++++++++++++
tools/libxl/xl_cmdtable.c | 16 ++++
[-- Attachment #2: xen-staging.hg-5.patch --]
[-- Type: text/x-patch, Size: 11778 bytes --]
# HG changeset patch
# User Juergen Gross <juergen.gross@ts.fujitsu.com>
# Date 1321526262 -3600
# Node ID 0d1eb69dbd1c691b3bee9f95a40c5b000b3a8705
# Parent 714852e181d3c1fdb1cde4f28a592110a9c7cf0d
[mq]: sched-sedf
diff -r 714852e181d3 -r 0d1eb69dbd1c docs/man/xl.pod.1
--- a/docs/man/xl.pod.1 Thu Nov 17 09:58:36 2011 +0100
+++ b/docs/man/xl.pod.1 Thu Nov 17 11:37:42 2011 +0100
@@ -645,6 +645,48 @@ Restrict output to domains in the specif
=back
+=item B<sched-sedf> [I<OPTIONS>]
+
+Set or get Simple EDF (Earliest Deadline First) scheduler parameters. This
+scheduler provides weighted CPU sharing in an intuitive way and uses
+realtime-algorithms to ensure time guarantees. For more information see
+docs/misc/sedf_scheduler_mini-HOWTO.txt in the Xen distribution.
+
+B<OPTIONS>
+
+=over 4
+
+=item B<-d DOMAIN>, B<--domain=DOMAIN>
+
+Specify domain for which scheduler parameters are to be modified or retrieved.
+Mandatory for modifying scheduler parameters.
+
+=item B<-p PERIOD>, B<--period=PERIOD>
+
+The normal EDF scheduling usage in milliseconds.
+
+=item B<-s SLICE>, B<--slice=SLICE>
+
+The normal EDF scheduling usage in milliseconds.
+
+=item B<-l LATENCY>, B<--latency=LATENCY>
+
+Scaled period if domain is doing heavy I/O.
+
+=item B<-e EXTRA>, B<--extra=EXTRA>
+
+Flag for allowing domain to run in extra time (0 or 1).
+
+=item B<-w WEIGHT>, B<--weight=WEIGHT>
+
+Another way of setting CPU slice.
+
+=item B<-c CPUPOOL>, B<--cpupool=CPUPOOL>
+
+Restrict output to domains in the specified cpupool.
+
+=back
+
=back
=head1 CPUPOOLS COMMANDS
diff -r 714852e181d3 -r 0d1eb69dbd1c tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Thu Nov 17 09:58:36 2011 +0100
+++ b/tools/libxl/libxl.c Thu Nov 17 11:37:42 2011 +0100
@@ -2777,6 +2777,55 @@ int libxl_sched_credit2_domain_set(libxl
return 0;
}
+int libxl_sched_sedf_domain_get(libxl_ctx *ctx, uint32_t domid, libxl_sched_sedf *scinfo)
+{
+ uint64_t period;
+ uint64_t slice;
+ uint64_t latency;
+ uint16_t extratime;
+ uint16_t weight;
+ int rc;
+
+ rc = xc_sedf_domain_get(ctx->xch, domid, &period, &slice, &latency, &extratime, &weight);
+ if (rc != 0) {
+ LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain sched sedf");
+ return ERROR_FAIL;
+ }
+
+ scinfo->period = period / 1000000;
+ scinfo->slice = slice / 1000000;
+ scinfo->latency = latency / 1000000;
+ scinfo->extratime = extratime;
+ scinfo->weight = weight;
+
+ return 0;
+}
+
+int libxl_sched_sedf_domain_set(libxl_ctx *ctx, uint32_t domid, libxl_sched_sedf *scinfo)
+{
+ xc_domaininfo_t domaininfo;
+ int rc;
+
+ rc = xc_domain_getinfolist(ctx->xch, domid, 1, &domaininfo);
+ if (rc < 0) {
+ LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain info list");
+ return ERROR_FAIL;
+ }
+ if (rc != 1 || domaininfo.domain != domid)
+ return ERROR_INVAL;
+
+
+ rc = xc_sedf_domain_set(ctx->xch, domid, scinfo->period * 1000000,
+ scinfo->slice * 1000000, scinfo->latency * 1000000,
+ scinfo->extratime, scinfo->weight);
+ if ( rc < 0 ) {
+ LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "setting domain sched sedf");
+ return ERROR_FAIL;
+ }
+
+ return 0;
+}
+
static int trigger_type_from_string(char *trigger_name)
{
if (!strcmp(trigger_name, "nmi"))
diff -r 714852e181d3 -r 0d1eb69dbd1c tools/libxl/libxl.h
--- a/tools/libxl/libxl.h Thu Nov 17 09:58:36 2011 +0100
+++ b/tools/libxl/libxl.h Thu Nov 17 11:37:42 2011 +0100
@@ -571,6 +571,10 @@ int libxl_sched_credit2_domain_get(libxl
libxl_sched_credit2 *scinfo);
int libxl_sched_credit2_domain_set(libxl_ctx *ctx, uint32_t domid,
libxl_sched_credit2 *scinfo);
+int libxl_sched_sedf_domain_get(libxl_ctx *ctx, uint32_t domid,
+ libxl_sched_sedf *scinfo);
+int libxl_sched_sedf_domain_set(libxl_ctx *ctx, uint32_t domid,
+ libxl_sched_sedf *scinfo);
int libxl_send_trigger(libxl_ctx *ctx, uint32_t domid,
char *trigger_name, uint32_t vcpuid);
int libxl_send_sysrq(libxl_ctx *ctx, uint32_t domid, char sysrq);
diff -r 714852e181d3 -r 0d1eb69dbd1c tools/libxl/libxl_types.idl
--- a/tools/libxl/libxl_types.idl Thu Nov 17 09:58:36 2011 +0100
+++ b/tools/libxl/libxl_types.idl Thu Nov 17 11:37:42 2011 +0100
@@ -377,3 +377,11 @@ libxl_sched_credit2 = Struct("sched_cred
libxl_sched_credit2 = Struct("sched_credit2", [
("weight", integer),
], dispose_fn=None)
+
+libxl_sched_sedf = Struct("sched_sedf", [
+ ("period", integer),
+ ("slice", integer),
+ ("latency", integer),
+ ("extratime", integer),
+ ("weight", integer),
+ ], dispose_fn=None)
diff -r 714852e181d3 -r 0d1eb69dbd1c tools/libxl/xl.h
--- a/tools/libxl/xl.h Thu Nov 17 09:58:36 2011 +0100
+++ b/tools/libxl/xl.h Thu Nov 17 11:37:42 2011 +0100
@@ -56,6 +56,7 @@ int main_memset(int argc, char **argv);
int main_memset(int argc, char **argv);
int main_sched_credit(int argc, char **argv);
int main_sched_credit2(int argc, char **argv);
+int main_sched_sedf(int argc, char **argv);
int main_domid(int argc, char **argv);
int main_domname(int argc, char **argv);
int main_rename(int argc, char **argv);
diff -r 714852e181d3 -r 0d1eb69dbd1c tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Thu Nov 17 09:58:36 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c Thu Nov 17 11:37:42 2011 +0100
@@ -3766,6 +3766,57 @@ static int sched_credit2_domain_output(
return 0;
}
+static int sched_sedf_domain_get(
+ int domid, libxl_sched_sedf *scinfo)
+{
+ int rc;
+
+ rc = libxl_sched_sedf_domain_get(ctx, domid, scinfo);
+ if (rc)
+ fprintf(stderr, "libxl_sched_sedf_domain_get failed.\n");
+
+ return rc;
+}
+
+static int sched_sedf_domain_set(
+ int domid, libxl_sched_sedf *scinfo)
+{
+ int rc;
+
+ rc = libxl_sched_sedf_domain_set(ctx, domid, scinfo);
+ if (rc)
+ fprintf(stderr, "libxl_sched_sedf_domain_set failed.\n");
+
+ return rc;
+}
+
+static int sched_sedf_domain_output(
+ int domid)
+{
+ char *domname;
+ libxl_sched_sedf scinfo;
+ int rc;
+
+ if (domid < 0) {
+ printf("%-33s %4s %6s %-6s %7s %5s %6s\n", "Name", "ID", "Period", "Slice", "Latency", "Extra", "Weight");
+ return 0;
+ }
+ rc = sched_sedf_domain_get(domid, &scinfo);
+ if (rc)
+ return rc;
+ domname = libxl_domid_to_name(ctx, domid);
+ printf("%-33s %4d %6d %6d %7d %5d %6d\n",
+ domname,
+ domid,
+ scinfo.period,
+ scinfo.slice,
+ scinfo.latency,
+ scinfo.extratime,
+ scinfo.weight);
+ free(domname);
+ return 0;
+}
+
static int sched_domain_output(
uint32_t sched, int (*output)(int), const char *cpupool)
{
@@ -3964,6 +4015,119 @@ int main_sched_credit2(int argc, char **
if (opt_w)
scinfo.weight = weight;
rc = sched_credit2_domain_set(domid, &scinfo);
+ if (rc)
+ return -rc;
+ }
+ }
+
+ return 0;
+}
+
+int main_sched_sedf(int argc, char **argv)
+{
+ libxl_sched_sedf scinfo;
+ const char *dom = NULL;
+ const char *cpupool = NULL;
+ int period = 0, opt_p = 0;
+ int slice = 0, opt_s = 0;
+ int latency = 0, opt_l = 0;
+ int extra = 0, opt_e = 0;
+ int weight = 0, opt_w = 0;
+ int opt, rc;
+ int option_index = 0;
+ static struct option long_options[] = {
+ {"period", 1, 0, 'p'},
+ {"slice", 1, 0, 's'},
+ {"latency", 1, 0, 'l'},
+ {"extra", 1, 0, 'e'},
+ {"weight", 1, 0, 'w'},
+ {"cpupool", 1, 0, 'c'},
+ {"help", 0, 0, 'h'},
+ {0, 0, 0, 0}
+ };
+
+ while (1) {
+ opt = getopt_long(argc, argv, "d:p:s:l:e:w:c:h", long_options, &option_index);
+ if (opt == -1)
+ break;
+ switch (opt) {
+ case 0: case 2:
+ return opt;
+ case 'd':
+ dom = optarg;
+ break;
+ case 'p':
+ period = strtol(optarg, NULL, 10);
+ opt_p = 1;
+ break;
+ case 's':
+ slice = strtol(optarg, NULL, 10);
+ opt_s = 1;
+ break;
+ case 'l':
+ latency = strtol(optarg, NULL, 10);
+ opt_l = 1;
+ break;
+ case 'e':
+ extra = strtol(optarg, NULL, 10);
+ opt_e = 1;
+ break;
+ case 'w':
+ weight = strtol(optarg, NULL, 10);
+ opt_w = 1;
+ break;
+ case 'c':
+ cpupool = optarg;
+ break;
+ case 'h':
+ help("sched-sedf");
+ return 0;
+ }
+ }
+
+ if (cpupool && (dom || opt_p || opt_s || opt_l || opt_e || opt_w)) {
+ fprintf(stderr, "Specifying a cpupool is not allowed with other options.\n");
+ return 1;
+ }
+ if (!dom && (opt_p || opt_s || opt_l || opt_e || opt_w)) {
+ fprintf(stderr, "Must specify a domain.\n");
+ return 1;
+ }
+ if (opt_w && (opt_p || opt_s)) {
+ fprintf(stderr, "Specifying a weight AND period or slice is not allowed.\n");
+ }
+
+ if (!dom) { /* list all domain's credit scheduler info */
+ return -sched_domain_output(XEN_SCHEDULER_SEDF, sched_sedf_domain_output, cpupool);
+ } else {
+ find_domain(dom);
+
+ rc = sched_sedf_domain_get(domid, &scinfo);
+ if (rc)
+ return -rc;
+
+ if (!opt_p && !opt_s && !opt_l && !opt_e && !opt_w) { /* output sedf scheduler info */
+ sched_sedf_domain_output(-1);
+ return -sched_sedf_domain_output(domid);
+ } else { /* set sedf scheduler paramaters */
+ if (opt_p) {
+ scinfo.period = period;
+ scinfo.weight = 0;
+ }
+ if (opt_s) {
+ scinfo.slice = slice;
+ scinfo.weight = 0;
+ }
+ if (opt_l)
+ scinfo.latency = latency;
+ if (opt_e)
+ scinfo.extratime = extra;
+ if (opt_w) {
+ scinfo.weight = weight;
+ scinfo.period = 0;
+ scinfo.slice = 0;
+ }
+ rc = sched_sedf_domain_set(domid, &scinfo);
if (rc)
return -rc;
}
diff -r 714852e181d3 -r 0d1eb69dbd1c tools/libxl/xl_cmdtable.c
--- a/tools/libxl/xl_cmdtable.c Thu Nov 17 09:58:36 2011 +0100
+++ b/tools/libxl/xl_cmdtable.c Thu Nov 17 11:37:42 2011 +0100
@@ -205,6 +205,22 @@ struct cmd_spec cmd_table[] = {
"-d DOMAIN, --domain=DOMAIN Domain to modify\n"
"-w WEIGHT, --weight=WEIGHT Weight (int)\n"
"-p CPUPOOL, --cpupool=CPUPOOL Restrict output to CPUPOOL"
+ },
+ { "sched-sedf",
+ &main_sched_sedf, 0,
+ "Get/set sedf scheduler parameters",
+ "[options]",
+ "-d DOMAIN, --domain=DOMAIN Domain to modify\n"
+ "-p MS, --period=MS Relative deadline(ms)\n"
+ "-s MS, --slice=MS Worst-case execution time(ms). (slice <\n"
+ " period)\n"
+ "-l MS, --latency=MS Scaled period (ms) when domain performs\n"
+ " heavy I/O\n"
+ "-e FLAG, --extra=FLAG Flag (0 or 1) controls if domain can run\n"
+ " in extra time\n"
+ "-w FLOAT, --weight=FLOAT CPU Period/slice (do not set with\n"
+ " --period/--slice)\n"
+ "-c CPUPOOL, --cpupool=CPUPOOL Restrict output to CPUPOOL"
},
{ "domid",
&main_domid, 0,
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0 of 5] xl scheduler support
2011-11-17 10:50 [PATCH 0 of 5] xl scheduler support Juergen Gross
` (4 preceding siblings ...)
2011-11-17 10:50 ` [PATCH 5 of 5] [mq]: sched-sedf Juergen Gross
@ 2011-11-17 11:14 ` Juergen Gross
5 siblings, 0 replies; 9+ messages in thread
From: Juergen Gross @ 2011-11-17 11:14 UTC (permalink / raw)
To: xen-devel
Please ignore, hg configuration problems!
On 11/17/2011 11:50 AM, Juergen Gross wrote:
> This patch series enhances scheduler support of xl.
>
> Patch 1: xl sched-credit: support long options
> Patch 2: Support cpupools in xl sched-credit
> Patch 3: Support of xl sched-credit2
> Patch 4: Correct error message in libxl_sched_credit_domain_get()
> Patch 5: Support of xl sched-sedf
>
> 7 files changed, 622 insertions(+), 38 deletions(-)
> docs/man/xl.pod.1 | 90 ++++++++-
> tools/libxl/libxl.c | 100 ++++++++++
> tools/libxl/libxl.h | 8
> tools/libxl/libxl_types.idl | 13 +
> tools/libxl/xl.h | 2
> tools/libxl/xl_cmdimpl.c | 418 +++++++++++++++++++++++++++++++++++++++----
> tools/libxl/xl_cmdtable.c | 29 ++
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
--
Juergen Gross Principal Developer Operating Systems
PDG ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions e-mail: juergen.gross@ts.fujitsu.com
Domagkstr. 28 Internet: ts.fujitsu.com
D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1 of 5] [mq]: sched-credit-options
2011-11-17 10:50 ` [PATCH 1 of 5] [mq]: sched-credit-options Juergen Gross
@ 2011-11-17 11:16 ` Ian Campbell
2011-11-17 11:22 ` Andrew Cooper
0 siblings, 1 reply; 9+ messages in thread
From: Ian Campbell @ 2011-11-17 11:16 UTC (permalink / raw)
To: Juergen Gross; +Cc: xen-devel@lists.xensource.com
On Thu, 2011-11-17 at 10:50 +0000, Juergen Gross wrote:
> Patch subject is complete summary.
I think you've forgotten to qrefresh to pickup the real summary or
something (for all mails).
Ian.
>
>
> 2 files changed, 26 insertions(+), 7 deletions(-)
> docs/man/xl.pod.1 | 15 ++++++++++-----
> tools/libxl/xl_cmdimpl.c | 18 ++++++++++++++++--
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1 of 5] [mq]: sched-credit-options
2011-11-17 11:16 ` Ian Campbell
@ 2011-11-17 11:22 ` Andrew Cooper
0 siblings, 0 replies; 9+ messages in thread
From: Andrew Cooper @ 2011-11-17 11:22 UTC (permalink / raw)
To: Ian Campbell; +Cc: Juergen Gross, xen-devel@lists.xensource.com
On 17/11/11 11:16, Ian Campbell wrote:
> On Thu, 2011-11-17 at 10:50 +0000, Juergen Gross wrote:
>> Patch subject is complete summary.
> I think you've forgotten to qrefresh to pickup the real summary or
> something (for all mails).
>
> Ian.
Depending on which options you pass to patchbomb, you sometimes have to
pop and push all before comments get picked up.
~Andrew (who will make an alteration to the relevant web page to this
effect)
>>
>> 2 files changed, 26 insertions(+), 7 deletions(-)
>> docs/man/xl.pod.1 | 15 ++++++++++-----
>> tools/libxl/xl_cmdimpl.c | 18 ++++++++++++++++--
>>
>>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
--
Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
T: +44 (0)1223 225 900, http://www.citrix.com
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-11-17 11:22 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-17 10:50 [PATCH 0 of 5] xl scheduler support Juergen Gross
2011-11-17 10:50 ` [PATCH 1 of 5] [mq]: sched-credit-options Juergen Gross
2011-11-17 11:16 ` Ian Campbell
2011-11-17 11:22 ` Andrew Cooper
2011-11-17 10:50 ` [PATCH 2 of 5] [mq]: sched-cpupools Juergen Gross
2011-11-17 10:50 ` [PATCH 3 of 5] [mq]: sched-credit2 Juergen Gross
2011-11-17 10:50 ` [PATCH 4 of 5] [mq]: sched-credit-errtxt Juergen Gross
2011-11-17 10:50 ` [PATCH 5 of 5] [mq]: sched-sedf Juergen Gross
2011-11-17 11:14 ` [PATCH 0 of 5] xl scheduler support Juergen Gross
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.