xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [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; 18+ 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] 18+ 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; 18+ 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] 18+ 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; 18+ 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] 18+ 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; 18+ 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] 18+ 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; 18+ 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] 18+ 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; 18+ 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] 18+ 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; 18+ 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] 18+ 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; 18+ 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] 18+ 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; 18+ 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] 18+ messages in thread

* [PATCH 0 of 5] xl scheduler support
@ 2011-11-17 12:00 Juergen Gross
  2011-11-23  9:11 ` Dario Faggioli
  0 siblings, 1 reply; 18+ messages in thread
From: Juergen Gross @ 2011-11-17 12:00 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] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-17 12:00 Juergen Gross
@ 2011-11-23  9:11 ` Dario Faggioli
  2011-11-23  9:21   ` Juergen Gross
  2011-11-23  9:24   ` Ian Campbell
  0 siblings, 2 replies; 18+ messages in thread
From: Dario Faggioli @ 2011-11-23  9:11 UTC (permalink / raw)
  To: Juergen Gross; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 961 bytes --]

On Thu, 2011-11-17 at 13:00 +0100, Juergen Gross wrote:
> This patch series enhances scheduler support of xl.
> 
Hi Juergen,

I applied your series to test some changes I'm doing in sched_adjust,
but here's what I'm getting when I boot with sched=credit2.

# xl sched-credit2
Cpupool Pool-0:
Name                                ID Weight
xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get

`xl sched-credit' seems to work fine (sedf I can't test, does not boot
on my box).

Could that be my fault? Can I do anything else to help you debug/fix
this?

Thanks and Regards,
Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
----------------------------------------------------------------------
Dario Faggioli, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
PhD Candidate, ReTiS Lab, Scuola Superiore Sant'Anna, Pisa  (Italy)

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: 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] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-23  9:11 ` Dario Faggioli
@ 2011-11-23  9:21   ` Juergen Gross
  2011-11-23 10:23     ` Dario Faggioli
  2011-11-23  9:24   ` Ian Campbell
  1 sibling, 1 reply; 18+ messages in thread
From: Juergen Gross @ 2011-11-23  9:21 UTC (permalink / raw)
  To: Dario Faggioli; +Cc: xen-devel

Hi Dario,

On 11/23/2011 10:11 AM, Dario Faggioli wrote:
> On Thu, 2011-11-17 at 13:00 +0100, Juergen Gross wrote:
>> This patch series enhances scheduler support of xl.
>>
> Hi Juergen,
>
> I applied your series to test some changes I'm doing in sched_adjust,
> but here's what I'm getting when I boot with sched=credit2.
>
> # xl sched-credit2
> Cpupool Pool-0:
> Name                                ID Weight
> xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get
>
> `xl sched-credit' seems to work fine (sedf I can't test, does not boot
> on my box).
>
> Could that be my fault? Can I do anything else to help you debug/fix
> this?

Are you sure the patches applied completely? libxl_sched_credit2_domain_get()
is added in the third patch to libxl.c, the usage in xl_cmdimpl.c is in the
same patch. I tested it on my box and all worked fine.


Juergen

-- 
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] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-23  9:11 ` Dario Faggioli
  2011-11-23  9:21   ` Juergen Gross
@ 2011-11-23  9:24   ` Ian Campbell
  2011-11-23 10:24     ` Dario Faggioli
  1 sibling, 1 reply; 18+ messages in thread
From: Ian Campbell @ 2011-11-23  9:24 UTC (permalink / raw)
  To: Dario Faggioli; +Cc: Juergen Gross, xen-devel@lists.xensource.com

On Wed, 2011-11-23 at 09:11 +0000, Dario Faggioli wrote:
> On Thu, 2011-11-17 at 13:00 +0100, Juergen Gross wrote:
> > This patch series enhances scheduler support of xl.
> > 
> Hi Juergen,
> 
> I applied your series to test some changes I'm doing in sched_adjust,
> but here's what I'm getting when I boot with sched=credit2.
> 
> # xl sched-credit2
> Cpupool Pool-0:
> Name                                ID Weight
> xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get

Is there a chance you are picking up an older version of libxl from
somewhere?

> 
> `xl sched-credit' seems to work fine (sedf I can't test, does not boot
> on my box).
> 
> Could that be my fault? Can I do anything else to help you debug/fix
> this?
> 
> Thanks and Regards,
> Dario
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-23  9:21   ` Juergen Gross
@ 2011-11-23 10:23     ` Dario Faggioli
  0 siblings, 0 replies; 18+ messages in thread
From: Dario Faggioli @ 2011-11-23 10:23 UTC (permalink / raw)
  To: Juergen Gross; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 2108 bytes --]

On Wed, 2011-11-23 at 10:21 +0100, Juergen Gross wrote:
> Hi Dario,
> 
Hi,

> > Could that be my fault? Can I do anything else to help you debug/fix
> > this?
> 
> Are you sure the patches applied completely? libxl_sched_credit2_domain_get()
> is added in the third patch to libxl.c, the usage in xl_cmdimpl.c is in the
> same patch. I tested it on my box and all worked fine.
> 
I double checked that, but I guess so:

$ grep libxl_sched_credit2_domain_get * -R
Binary file dist/install/usr/sbin/xl matches
Binary file dist/install/usr/lib64/libxenlight.so.2.0.0 matches
Binary file dist/install/usr/lib64/libxenlight.so.2.0 matches
Binary file dist/install/usr/lib64/libxenlight.a matches
Binary file dist/install/usr/lib64/libxenlight.so matches
dist/install/usr/include/libxl.h:int libxl_sched_credit2_domain_get(libxl_ctx *ctx, uint32_t domid,
Binary file tools/libxl/xl_cmdimpl.o matches
tools/libxl/xl_cmdimpl.c:    rc = libxl_sched_credit2_domain_get(ctx, domid, scinfo);
tools/libxl/xl_cmdimpl.c:        fprintf(stderr, "libxl_sched_credit2_domain_get failed.\n");
Binary file tools/libxl/libxenlight.so.2.0.0 matches
Binary file tools/libxl/xl matches
Binary file tools/libxl/libxenlight.so.2.0 matches
Binary file tools/libxl/libxl.o matches
Binary file tools/libxl/libxenlight.a matches
Binary file tools/libxl/libxenlight.so matches
tools/libxl/libxl.c:int libxl_sched_credit2_domain_get(libxl_ctx *ctx, uint32_t domid, libxl_sched_credit2 *scinfo)
tools/libxl/xl_cmdimpl.c.orig:    rc = libxl_sched_credit2_domain_get(ctx, domid, scinfo);
tools/libxl/xl_cmdimpl.c.orig:        fprintf(stderr, "libxl_sched_credit2_domain_get failed.\n");
tools/libxl/libxl.h:int libxl_sched_credit2_domain_get(libxl_ctx *ctx, uint32_t domid,

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-------------------------------------------------------------------
Dario Faggioli, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
PhD Candidate, ReTiS Lab, Scuola Superiore Sant'Anna, Pisa (Italy)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: 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] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-23  9:24   ` Ian Campbell
@ 2011-11-23 10:24     ` Dario Faggioli
  2011-11-23 10:55       ` Dario Faggioli
  0 siblings, 1 reply; 18+ messages in thread
From: Dario Faggioli @ 2011-11-23 10:24 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Juergen Gross, xen-devel@lists.xensource.com


[-- Attachment #1.1: Type: text/plain, Size: 798 bytes --]

On Wed, 2011-11-23 at 09:24 +0000, Ian Campbell wrote:
> > # xl sched-credit2
> > Cpupool Pool-0:
> > Name                                ID Weight
> > xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get
> 
> Is there a chance you are picking up an older version of libxl from
> somewhere?
> 
More than once... That should be the culprit for me too, but I'm still
trying to figure out how... :-)

Thanks and Regards,
Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-------------------------------------------------------------------
Dario Faggioli, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
PhD Candidate, ReTiS Lab, Scuola Superiore Sant'Anna, Pisa (Italy)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: 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] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-23 10:24     ` Dario Faggioli
@ 2011-11-23 10:55       ` Dario Faggioli
  2011-11-23 11:38         ` Ian Campbell
  0 siblings, 1 reply; 18+ messages in thread
From: Dario Faggioli @ 2011-11-23 10:55 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Juergen Gross, xen-devel@lists.xensource.com


[-- Attachment #1.1: Type: text/plain, Size: 1389 bytes --]

On Wed, 2011-11-23 at 11:24 +0100, Dario Faggioli wrote:
> On Wed, 2011-11-23 at 09:24 +0000, Ian Campbell wrote:
> > > # xl sched-credit2
> > > Cpupool Pool-0:
> > > Name                                ID Weight
> > > xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get
> > 
> > Is there a chance you are picking up an older version of libxl from
> > somewhere?
> > 
> More than once... That should be the culprit for me too, but I'm still
> trying to figure out how... :-)
> 
Ok, found! Sorry for having bothered you in the first place.

The thing is I'm running Debian Sid on the testbox, and there seems to
be no '/usr/lib64' there (neither as a real directory nor as a symlink
to '/usr/lib'), while build system put the libraries in
'dist/install/usr/lib64'. Installing the xen distribution (which is
basically unpacking an archive here) created '/ust/lib64', but it does
not appear to be on the search path for shared libraries on such
distro... Could that be an issue?

Thanks and Regards,
Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-------------------------------------------------------------------
Dario Faggioli, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
PhD Candidate, ReTiS Lab, Scuola Superiore Sant'Anna, Pisa (Italy)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: 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] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-23 10:55       ` Dario Faggioli
@ 2011-11-23 11:38         ` Ian Campbell
  2011-11-23 12:07           ` Dario Faggioli
  0 siblings, 1 reply; 18+ messages in thread
From: Ian Campbell @ 2011-11-23 11:38 UTC (permalink / raw)
  To: Dario Faggioli; +Cc: Juergen Gross, xen-devel@lists.xensource.com

On Wed, 2011-11-23 at 10:55 +0000, Dario Faggioli wrote:
> On Wed, 2011-11-23 at 11:24 +0100, Dario Faggioli wrote:
> > On Wed, 2011-11-23 at 09:24 +0000, Ian Campbell wrote:
> > > > # xl sched-credit2
> > > > Cpupool Pool-0:
> > > > Name                                ID Weight
> > > > xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get
> > > 
> > > Is there a chance you are picking up an older version of libxl from
> > > somewhere?
> > > 
> > More than once... That should be the culprit for me too, but I'm still
> > trying to figure out how... :-)
> > 
> Ok, found! Sorry for having bothered you in the first place.
> 
> The thing is I'm running Debian Sid on the testbox, and there seems to
> be no '/usr/lib64' there (neither as a real directory nor as a symlink
> to '/usr/lib'), while build system put the libraries in
> 'dist/install/usr/lib64'. Installing the xen distribution (which is
> basically unpacking an archive here) created '/ust/lib64', but it does
> not appear to be on the search path for shared libraries on such
> distro... Could that be an issue?

/usr/lib64 used to be a symlink to /usr/lib on Debian but that has gone
away due to the beginnings of multiarch support.

It's not clear to me if this is a bug of sorts in multiarch (or at least
in the transition) or if we ought to be doing something to work with
such systems. My build/test machines are all Debian Stable so I haven't
had to think about it too hard yet since multiarch-ification is only
going on in unstable (perhaps testing too, I don't know).

Short term you can edit config/StdGNU.mk to change LIBLEAFDIR_x86_64.

Ian.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 0 of 5] xl scheduler support
  2011-11-23 11:38         ` Ian Campbell
@ 2011-11-23 12:07           ` Dario Faggioli
  0 siblings, 0 replies; 18+ messages in thread
From: Dario Faggioli @ 2011-11-23 12:07 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Juergen Gross, xen-devel@lists.xensource.com


[-- Attachment #1.1: Type: text/plain, Size: 1269 bytes --]

On Wed, 2011-11-23 at 11:38 +0000, Ian Campbell wrote:
> /usr/lib64 used to be a symlink to /usr/lib on Debian but that has gone
> away due to the beginnings of multiarch support.
> 
Yep. I was thinking I've messed up something, but then I saw no symlink
on my workstation (still Sid) at all. :-)

> It's not clear to me if this is a bug of sorts in multiarch (or at least
> in the transition) or if we ought to be doing something to work with
> such systems. My build/test machines are all Debian Stable so I haven't
> had to think about it too hard yet since multiarch-ification is only
> going on in unstable (perhaps testing too, I don't know).
> 
Ok, that's exactly why I fired the question.

> Short term you can edit config/StdGNU.mk to change LIBLEAFDIR_x86_64.
> 
Nice. I've already put something in my scripts to cope with that, I'll
see which solution better fits my needs.

Thanks and Regards,
Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-------------------------------------------------------------------
Dario Faggioli, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
PhD Candidate, ReTiS Lab, Scuola Superiore Sant'Anna, Pisa (Italy)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: 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] 18+ messages in thread

end of thread, other threads:[~2011-11-23 12:07 UTC | newest]

Thread overview: 18+ 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
  -- strict thread matches above, loose matches on Subject: below --
2011-11-17 12:00 Juergen Gross
2011-11-23  9:11 ` Dario Faggioli
2011-11-23  9:21   ` Juergen Gross
2011-11-23 10:23     ` Dario Faggioli
2011-11-23  9:24   ` Ian Campbell
2011-11-23 10:24     ` Dario Faggioli
2011-11-23 10:55       ` Dario Faggioli
2011-11-23 11:38         ` Ian Campbell
2011-11-23 12:07           ` Dario Faggioli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).