a11c33863f
5281fad4-numa-sched-leave-node-affinity-alone-if-not-in-auto-mode.patch 52820823-nested-SVM-adjust-guest-handling-of-structure-mappings.patch 52820863-VMX-don-t-crash-processing-d-debug-key.patch 5282492f-x86-eliminate-has_arch_mmios.patch 52864df2-credit-Update-other-parameters-when-setting-tslice_ms.patch 52864f30-fix-leaking-of-v-cpu_affinity_saved-on-domain-destruction.patch 5289d225-nested-VMX-don-t-ignore-mapping-errors.patch 528a0eb0-x86-consider-modules-when-cutting-off-memory.patch 528f606c-x86-hvm-reset-TSC-to-0-after-domain-resume-from-S3.patch 528f609c-x86-crash-disable-the-watchdog-NMIs-on-the-crashing-cpu.patch 52932418-x86-xsave-fix-nonlazy-state-handling.patch - Add missing requires to pciutils package for xend-tools - bnc#851749 - Xen service file does not call xend properly xend.service - bnc#851386 - VUL-0: xen: XSA-78: Insufficient TLB flushing in VT-d (iommu) code 528a0e5b-TLB-flushing-in-dma_pte_clear_one.patch - bnc#849667 - VUL-0: xen: XSA-74: Lock order reversal between page_alloc_lock and mm_rwlock CVE-2013-4553-xsa74.patch - bnc#849665 - VUL-0: CVE-2013-4551: xen: XSA-75: Host crash due to guest VMX instruction execution 52809208-nested-VMX-VMLANUCH-VMRESUME-emulation-must-check-permission-1st.patch - bnc#849668 - VUL-0: xen: XSA-76: Hypercalls exposed to privilege rings 1 and 2 of HVM guests OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=279
64 lines
2.5 KiB
Diff
64 lines
2.5 KiB
Diff
# Commit 1320b8100c2ed390fc640557a050f5c700d8338d
|
|
# Date 2013-11-15 17:38:10 +0100
|
|
# Author Nate Studer <nate.studer@dornerworks.com>
|
|
# Committer Jan Beulich <jbeulich@suse.com>
|
|
credit: Update other parameters when setting tslice_ms
|
|
|
|
Add a utility function to update the rest of the timeslice
|
|
accounting fields when updating the timeslice of the
|
|
credit scheduler, so that capped CPUs behave correctly.
|
|
|
|
Before this patch changing the timeslice to a value higher
|
|
than the default would result in a domain not utilizing
|
|
its full capacity and changing the timeslice to a value
|
|
lower than the default would result in a domain exceeding
|
|
its capacity.
|
|
|
|
Signed-off-by: Nate Studer <nate.studer@dornerworks.com>
|
|
Reviewed-by: Dario Faggioli <dario.faggioli@citrix.com>
|
|
Reviewed-by: George Dunlap <george.dunlap@eu.citrix.com>
|
|
|
|
--- a/xen/common/sched_credit.c
|
|
+++ b/xen/common/sched_credit.c
|
|
@@ -1073,6 +1073,17 @@ csched_dom_cntl(
|
|
return 0;
|
|
}
|
|
|
|
+static inline void
|
|
+__csched_set_tslice(struct csched_private *prv, unsigned timeslice)
|
|
+{
|
|
+ prv->tslice_ms = timeslice;
|
|
+ prv->ticks_per_tslice = CSCHED_TICKS_PER_TSLICE;
|
|
+ if ( prv->tslice_ms < prv->ticks_per_tslice )
|
|
+ prv->ticks_per_tslice = 1;
|
|
+ prv->tick_period_us = prv->tslice_ms * 1000 / prv->ticks_per_tslice;
|
|
+ prv->credits_per_tslice = CSCHED_CREDITS_PER_MSEC * prv->tslice_ms;
|
|
+}
|
|
+
|
|
static int
|
|
csched_sys_cntl(const struct scheduler *ops,
|
|
struct xen_sysctl_scheduler_op *sc)
|
|
@@ -1091,7 +1102,7 @@ csched_sys_cntl(const struct scheduler *
|
|
|| params->ratelimit_us < XEN_SYSCTL_SCHED_RATELIMIT_MIN))
|
|
|| MICROSECS(params->ratelimit_us) > MILLISECS(params->tslice_ms) )
|
|
goto out;
|
|
- prv->tslice_ms = params->tslice_ms;
|
|
+ __csched_set_tslice(prv, params->tslice_ms);
|
|
prv->ratelimit_us = params->ratelimit_us;
|
|
/* FALLTHRU */
|
|
case XEN_SYSCTL_SCHEDOP_getinfo:
|
|
@@ -1903,12 +1914,7 @@ csched_init(struct scheduler *ops)
|
|
sched_credit_tslice_ms = CSCHED_DEFAULT_TSLICE_MS;
|
|
}
|
|
|
|
- prv->tslice_ms = sched_credit_tslice_ms;
|
|
- prv->ticks_per_tslice = CSCHED_TICKS_PER_TSLICE;
|
|
- if ( prv->tslice_ms < prv->ticks_per_tslice )
|
|
- prv->ticks_per_tslice = 1;
|
|
- prv->tick_period_us = prv->tslice_ms * 1000 / prv->ticks_per_tslice;
|
|
- prv->credits_per_tslice = CSCHED_CREDITS_PER_MSEC * prv->tslice_ms;
|
|
+ __csched_set_tslice(prv, sched_credit_tslice_ms);
|
|
|
|
if ( MICROSECS(sched_ratelimit_us) > MILLISECS(sched_credit_tslice_ms) )
|
|
{
|