p***@xen.org
2018-11-04 05:03:53 UTC
commit dafd936dddbd7978d4131275ad1112f64457bf64
Author: George Dunlap <***@citrix.com>
AuthorDate: Mon Oct 29 14:51:51 2018 +0000
Commit: George Dunlap <***@citrix.com>
CommitDate: Mon Oct 29 14:58:34 2018 +0000
Make credit2 the default scheduler
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 <***@citrix.com>
Acked-by: Dario Faggioli <***@suse.com>
---
xen/common/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index ce965fbf17..68132a3a10 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -241,7 +241,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
@@ -262,7 +262,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
--
generated by git-patchbot for /home/xen/git/xen.git#master
Author: George Dunlap <***@citrix.com>
AuthorDate: Mon Oct 29 14:51:51 2018 +0000
Commit: George Dunlap <***@citrix.com>
CommitDate: Mon Oct 29 14:58:34 2018 +0000
Make credit2 the default scheduler
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 <***@citrix.com>
Acked-by: Dario Faggioli <***@suse.com>
---
xen/common/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index ce965fbf17..68132a3a10 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -241,7 +241,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
@@ -262,7 +262,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
--
generated by git-patchbot for /home/xen/git/xen.git#master