]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
Make credit2 the default scheduler
authorGeorge Dunlap <george.dunlap@citrix.com>
Tue, 25 Sep 2018 09:47:10 +0000 (10:47 +0100)
committerGeorge Dunlap <george.dunlap@citrix.com>
Tue, 25 Sep 2018 09:49:15 +0000 (10:49 +0100)
Credit2 was declared "supported" in 4.8, and as of 4.10 had two other
critical features implemented (soft affinity / NUMA and caps).

Why change the default?

The code is better: more predictable, less jitter, easier to determine
how modifications will affect overall behavior, easier in the future
to make load-balancing behavior more subtle (e.g., taking into account
the cost of powering up extra cores, &c).

Overall performance compared to Credit1 is somewhat of a mixed bag.
Unfortunately most of what I have are tests using XenServer's internal
perf testing system, so I can't share the raw data (via links anyway).

Here is a summary of data from an internal e-mail Dario sent in the
past:

* DVDbench: On underloaded systems, credit2 outperformed credit1 by
about 4%.  On overloaded systems, credit2 underperformed by about 3%.

* On a range of tests (unixbench, lmbench, &c), credit and credit2
perform within 5% of each other (up and down).

* Credit2 fairly consistently beats credit for TCP-style workloads.

* Credit2 is sometimes equal to, sometimes 5-15% worse than, credit for
synthetic CPU workloads (e.g., Dhrystone).

* On LoginVSI, credit2 fairly consistently outperforms credit by about 10%.

Credit2, like credit, has a number of workloads / setups for which
performance could be improved.  Personally I think networking and
partially-loaded systems is going to be more representative of what
Xen is actually used for; so I think credit2 is on the whole the
better scheduler to use by default.  And in any case, making those
improvements on credit2 will be easier than on credit.

Signed-off-by: George Dunlap <george.dunlap@citrix.com>
Acked-by: Dario Faggioli <dfaggioli@suse.com>
xen/common/Kconfig

index 1a6d6281c15a02635435a757759c6d8cf1b2a541..3a1c585d2570b5c61099c64fbbe27f1bbf604f52 100644 (file)
@@ -215,7 +215,7 @@ config SCHED_NULL
 
 choice
        prompt "Default Scheduler?"
-       default SCHED_CREDIT_DEFAULT
+       default SCHED_CREDIT2_DEFAULT
 
        config SCHED_CREDIT_DEFAULT
                bool "Credit Scheduler" if SCHED_CREDIT
@@ -236,7 +236,7 @@ config SCHED_DEFAULT
        default "rtds" if SCHED_RTDS_DEFAULT
        default "arinc653" if SCHED_ARINC653_DEFAULT
        default "null" if SCHED_NULL_DEFAULT
-       default "credit"
+       default "credit2"
 
 endmenu