[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] credit2: make runqueues be per-socket by default



commit 3a782c76036063e9b654fb54e952211ddc1e38f6
Author:     Dario Faggioli <dario.faggioli@xxxxxxxxxx>
AuthorDate: Tue Nov 29 16:01:03 2016 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Nov 29 16:01:03 2016 +0100

    credit2: make runqueues be per-socket by default
    
    Benchmarks have shown that per-socket runqueues arrangement
    behaves better (e.g., we achieve better load balancing)
    than the current per-core default.
    
    Here's an example (coming from
    https://lists.xen.org/archives/html/xen-devel/2016-06/msg02287.html ):
    
    |=======================================|
    | XEN BUILD TIME, LOW LOAD, NO NOISE    |
    |---------------------------------------|
    |       runq=core   runq=socket         |
    |         35.200       33.433           |
    |---------------------------------------|------------------------------|
    | XEN BUILD TIME, HIGH LOAD, NO NOISE   | IPERF, HIGH LOAD, NO NOISE   |
    |---------------------------------------|------------------------------|
    |       runq=core   runq=socket         |     runq=core runq=socket    |
    |         18.013       18.530           |       23.200     23.466      |
    |---------------------------------------|------------------------------|
    | XEN BUILD TIME, LOW LOAD, WITH NOISE  |
    |-------------------------------------  |
    |       runq=core   runq=socket         |
    |         45.866       39.493           |
    |---------------------------------------|------------------------------|
    | XEN BUILD TIME, HIGH LOAD, WITH NOISE | IPERF, HIGH LOAD, WITH NOISE |
    |---------------------------------------|------------------------------|
    |       runq=core   runq=socket         |     runq=core runq=socket    |
    |         36.840       29.080           |       19.967     21.000      |
    |=======================================|==============================|
    
    The only reason why we went for per-core, initially, was to
    introduce some form of hyperthreading support. Now we have
    hyperthreading support, independently from how runqueues
    are organized (9bb9c7388 "xen: credit2: implement true SMT
    support"), and thus we can switch to per-socket.
    
    Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
    Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
    Release-acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 docs/misc/xen-command-line.markdown | 2 +-
 xen/common/sched_credit2.c          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.markdown 
b/docs/misc/xen-command-line.markdown
index 87c3023..0138978 100644
--- a/docs/misc/xen-command-line.markdown
+++ b/docs/misc/xen-command-line.markdown
@@ -527,7 +527,7 @@ The default value of `1 sec` is rather long.
 ### credit2\_runqueue
 > `= core | socket | node | all`
 
-> Default: `core`
+> Default: `socket`
 
 Specify how host CPUs are arranged in runqueues. Runqueues are kept
 balanced with respect to the load generated by the vCPUs running on
diff --git a/xen/common/sched_credit2.c b/xen/common/sched_credit2.c
index c2c563d..ef8e0d8 100644
--- a/xen/common/sched_credit2.c
+++ b/xen/common/sched_credit2.c
@@ -330,7 +330,7 @@ static const char *const opt_runqueue_str[] = {
     [OPT_RUNQUEUE_NODE] = "node",
     [OPT_RUNQUEUE_ALL] = "all"
 };
-static int __read_mostly opt_runqueue = OPT_RUNQUEUE_CORE;
+static int __read_mostly opt_runqueue = OPT_RUNQUEUE_SOCKET;
 
 static void parse_credit2_runqueue(const char *s)
 {
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.