Skip to contentSkip to conversation

xl scheduler support

PATCH In review Juergen Gross 3 participants 14 messages Nov 17, 2011 – Nov 23, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 xl scheduler support

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 ++
#1 lore raw

PATCH 1/1 xl sched-credit: support long options

The help text of xl sched-credit supported long options. Neither the man page nor the implementation did.

Signed-off-by [email protected]
2 files changed, 26 insertions(+), 7 deletions(-)
docs/man/xl.pod.1        |   15 ++++++++++-----
tools/libxl/xl_cmdimpl.c |   18 ++++++++++++++++--

# HG changeset patch
# User Juergen Gross <[email protected]> # Date 1321527655 -3600
# Node ID 59c0e68a83cf1b007fb6ff1574cdedf2dd217a42 # Parent fd3567cafe1c7ccd0ddba0ad7fb067d435e13529 xl sched-credit: support long options

The help text of xl sched-credit supported long options. Neither the man page nor the implementation did.

Signed-off-by [email protected]
docs/man/xl.pod.1 +10 -5
diff -r fd3567cafe1c -r 59c0e68a83cf docs/man/xl.pod.1
@@ -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
tools/libxl/xl_cmdimpl.c +16 -2
diff -r fd3567cafe1c -r 59c0e68a83cf tools/libxl/xl_cmdimpl.c
@@ -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;
         }
     }
 

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#2 lore raw

PATCH 1/1 Support cpupools in xl sched-credit

In reply to Juergen Gross

Adds cpupool awareness to output of xl sched-credit. Output can now be restricted to a specific cpupool. The domains are printed for each cpupool seperately.

The loop over cpupools and domains is seperated from the main command implementation to be able to support other schedulers as well.

Signed-off-by [email protected]
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 +

# HG changeset patch
# User Juergen Gross <[email protected]> # Date 1321531168 -3600
# Node ID 0c42b3e133bfc246174444c5f485ea92ed19d727 # Parent 59c0e68a83cf1b007fb6ff1574cdedf2dd217a42 Support cpupools in xl sched-credit

Adds cpupool awareness to output of xl sched-credit. Output can now be restricted to a specific cpupool. The domains are printed for each cpupool seperately.

The loop over cpupools and domains is seperated from the main command implementation to be able to support other schedulers as well.

Signed-off-by [email protected]
docs/man/xl.pod.1 +4 -0
diff -r 59c0e68a83cf -r 0c42b3e133bf docs/man/xl.pod.1
@@ -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
tools/libxl/libxl.c +1 -0
diff -r 59c0e68a83cf -r 0c42b3e133bf tools/libxl/libxl.c
@@ -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)
tools/libxl/libxl_types.idl +1 -0
diff -r 59c0e68a83cf -r 0c42b3e133bf tools/libxl/libxl_types.idl
@@ -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", [
tools/libxl/xl_cmdimpl.c +89 -28

165 lines not on this page · raw message

tools/libxl/xl_cmdtable.c +3 -2
diff -r 59c0e68a83cf -r 0c42b3e133bf tools/libxl/xl_cmdtable.c
@@ -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,

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#3 lore raw

PATCH 1/1 Support of xl sched-credit2

In reply to Juergen Gross

Supports the xl subcommand sched-credit2.

Signed-off-by [email protected]
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 ++

# HG changeset patch
# User Juergen Gross <[email protected]> # Date 1321531180 -3600
# Node ID 4760199abd593cf88b082392878689c1b22c391c # Parent 0c42b3e133bfc246174444c5f485ea92ed19d727 Support of xl sched-credit2

Supports the xl subcommand sched-credit2.

Signed-off-by [email protected]
docs/man/xl.pod.1 +29 -0
diff -r 0c42b3e133bf -r 4760199abd59 docs/man/xl.pod.1
@@ -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
tools/libxl/libxl.c +48 -0

54 lines not on this page · raw message

tools/libxl/libxl.h +4 -0
diff -r 0c42b3e133bf -r 4760199abd59 tools/libxl/libxl.h
@@ -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);
tools/libxl/libxl_types.idl +4 -0
diff -r 0c42b3e133bf -r 4760199abd59 tools/libxl/libxl_types.idl
@@ -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)
tools/libxl/xl.h +1 -0
diff -r 0c42b3e133bf -r 4760199abd59 tools/libxl/xl.h
@@ -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);
tools/libxl/xl_cmdimpl.c +119 -0

131 lines not on this page · raw message

tools/libxl/xl_cmdtable.c +8 -0
diff -r 0c42b3e133bf -r 4760199abd59 tools/libxl/xl_cmdtable.c
@@ -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",

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#4 lore raw

PATCH 1/1 Correct error message in libxl_sched_credit_domain_get()

In reply to Juergen Gross

Just a typo...

Signed-off-by [email protected]
1 file changed, 1 insertion(+), 1 deletion(-)

tools/libxl/libxl.c | 2 +-

# HG changeset patch
# User Juergen Gross <[email protected]> # Date 1321531188 -3600
# Node ID 3a5111f4c9b6d4080db6b7d6415d4240140a44f9 # Parent 4760199abd593cf88b082392878689c1b22c391c Correct error message in libxl_sched_credit_domain_get()

Just a typo...

Signed-off-by [email protected]
tools/libxl/libxl.c +1 -1
diff -r 4760199abd59 -r 3a5111f4c9b6 tools/libxl/libxl.c
@@ -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;
     }
 

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#5 lore raw

PATCH 1/1 Support of xl sched-sedf

In reply to Juergen Gross

Supports the xl subcommand sched-sedf.
The man page is only a minimal version (copy from xm man page without examples). BTW: the xm man page seems not to be in sync with xm sched-sedf -h regarding the time units. I used milliseconds in the xl implementation. Only minimal semantical checks of parameters.

Signed-off-by [email protected]
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 ++++

# HG changeset patch
# User Juergen Gross <[email protected]> # Date 1321531194 -3600
# Node ID 69e2c7192beeb9efd657ab973fb3e942127918b7 # Parent 3a5111f4c9b6d4080db6b7d6415d4240140a44f9 Support of xl sched-sedf

Supports the xl subcommand sched-sedf.
The man page is only a minimal version (copy from xm man page without examples). BTW: the xm man page seems not to be in sync with xm sched-sedf -h regarding the time units. I used milliseconds in the xl implementation. Only minimal semantical checks of parameters.

Signed-off-by [email protected]
docs/man/xl.pod.1 +42 -0
diff -r 3a5111f4c9b6 -r 69e2c7192bee docs/man/xl.pod.1
@@ -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
tools/libxl/libxl.c +49 -0

55 lines not on this page · raw message

tools/libxl/libxl.h +4 -0
diff -r 3a5111f4c9b6 -r 69e2c7192bee tools/libxl/libxl.h
@@ -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);
tools/libxl/libxl_types.idl +8 -0
diff -r 3a5111f4c9b6 -r 69e2c7192bee tools/libxl/libxl_types.idl
@@ -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)
tools/libxl/xl.h +1 -0
diff -r 3a5111f4c9b6 -r 69e2c7192bee tools/libxl/xl.h
@@ -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);
tools/libxl/xl_cmdimpl.c +164 -0

176 lines not on this page · raw message

tools/libxl/xl_cmdtable.c +16 -0
diff -r 3a5111f4c9b6 -r 69e2c7192bee tools/libxl/xl_cmdtable.c
@@ -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,

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#6 lore raw
In reply to Juergen Gross
Quoted 2 lines · Juergen Gross

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

Signature · 5 lines
<<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)

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#7 lore raw

Hi Dario,

Quoted 13 lines · Dario Faggioli
Quoted 2 lines · Juergen Gross

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
Quoted 5 lines

`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

Signature · 5 lines
Juergen Gross                 Principal Developer Operating Systems
PDG ES&S SWE OS6                       Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions              e-mail: [email protected]
Domagkstr. 28                           Internet: ts.fujitsu.com
D-80807 Muenchen                 Company details: ts.fujitsu.com/imprint.html
#9 lore raw
In reply to Dario Faggioli
Quoted 5 lines · Dario Faggioli
Quoted 2 lines · Juergen Gross

This patch series enhances scheduler support of xl.

Hi Juergen,

Quoted 7 lines

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?

Quoted 10 lines

`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

#8 lore raw
In reply to Juergen Gross
Quoted 2 lines · Juergen Gross

Hi Dario,

Hi,

Quoted 7 lines
Quoted 2 lines

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,
Signature · 5 lines
<<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)

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#10 lore raw
In reply to Ian Campbell
Quoted 8 lines · Ian Campbell
Quoted 4 lines
# 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

Signature · 5 lines
<<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)

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#11 lore raw
Quoted 6 lines · Dario Faggioli
Quoted 5 lines · Ian Campbell
Quoted 4 lines
# xl sched-credit2
Cpupool Pool-0:
Name                                ID Weight
xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get
Quoted 6 lines
Quoted 3 lines

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

Signature · 5 lines
<<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)

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#12 lore raw
Quoted 15 lines · Dario Faggioli
Quoted 6 lines · Dario Faggioli
Quoted 5 lines · Ian Campbell
Quoted 4 lines
# xl sched-credit2
Cpupool Pool-0:
Name                                ID Weight
xl: symbol lookup error: xl: undefined symbol: libxl_sched_credit2_domain_get
Quoted 6 lines
Quoted 3 lines

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.

Quoted 7 lines

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.

#13 lore raw
Quoted 3 lines · Ian Campbell

/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. :-)

Quoted 6 lines

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.

Quoted 2 lines

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

Signature · 5 lines
<<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)

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel