sched: always ask the scheduler to re-place the vcpu when the affinity changes

It's probably a good idea to re-evaluate placement whenever the
affinity changes.

This additionally has the benefit of removing scheduler-specific
exceptions introduced in git c/s e6a6fd63.

The conditionals surrounding vcpu_migrate() are left pending a re-work
of the logic to avoid the common case calling vcpu_migrate() twice (once
here, and once in context_saved().

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
This commit is contained in:
George Dunlap authored and Jan Beulich committed 2013-03-08 09:43:40 +01:00
1 parent e31d4781c0
commit 0f3b02d07e
1 file changed
+4 -3
+4 -3
View File
@@ -614,9 +614,10 @@ int vcpu_set_affinity(struct vcpu *v, const cpumask_t *affinity)
vcpu_schedule_lock_irq(v);
cpumask_copy(v->cpu_affinity, affinity);
if ( VCPU2OP(v)->sched_id == XEN_SCHEDULER_SEDF ||
!cpumask_test_cpu(v->processor, v->cpu_affinity) )
set_bit(_VPF_migrating, &v->pause_flags);
/* Always ask the scheduler to re-evaluate placement
* when changing the affinity */
set_bit(_VPF_migrating, &v->pause_flags);
vcpu_schedule_unlock_irq(v);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.