aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/sched_credit.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2011-03-14 17:19:22 +0000
committerJan Beulich <jbeulich@novell.com>2011-03-14 17:19:22 +0000
commit58a83b75d17c4346f0f8f20f9815e00d6f6ed5f1 (patch)
tree5c02a733ccc561ec5a9b9cf04924a7c908bad8a0 /xen/common/sched_credit.c
parent342392ddbe4f8910979472d9dfcdb76c78f0ea51 (diff)
downloadxen-58a83b75d17c4346f0f8f20f9815e00d6f6ed5f1.tar.gz
xen-58a83b75d17c4346f0f8f20f9815e00d6f6ed5f1.tar.bz2
xen-58a83b75d17c4346f0f8f20f9815e00d6f6ed5f1.zip
_csched_cpu_pick(): don't return CPUs outside vCPU's affinity mask
This fixes a fairly blatant bug I introduced in c/s 20377:cff23354d026 - I wonder how this went unnoticed for so long. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/common/sched_credit.c')
-rw-r--r--xen/common/sched_credit.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/xen/common/sched_credit.c b/xen/common/sched_credit.c
index 0cbc7e1342..bfdd567e3e 100644
--- a/xen/common/sched_credit.c
+++ b/xen/common/sched_credit.c
@@ -530,6 +530,7 @@ _csched_cpu_pick(const struct scheduler *ops, struct vcpu *vc, bool_t commit)
|| ( !sched_smt_power_savings
&& (weight_cpu * migrate_factor < weight_nxt) ) )
{
+ cpus_and(nxt_idlers, cpus, nxt_idlers);
cpu = cycle_cpu(CSCHED_PCPU(nxt)->idle_bias, nxt_idlers);
if ( commit )
CSCHED_PCPU(nxt)->idle_bias = cpu;