[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [for-4.8 PATCH] xen: 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> --- Cc: Anshul Makkar <anshul.makkar@xxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> --- George's Ack obtained 'out of band', as he is away. --- 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) { _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |