aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Gross <juergen.gross@ts.fujitsu.com>2013-10-16 12:26:48 +0200
committerJan Beulich <jbeulich@suse.com>2013-10-16 12:26:48 +0200
commitd38a668b6ef8c84d1d3fda9947ffb0056d01fe3a (patch)
tree3757a7d52fd5a8e07691810a2730b49ec5e0eeb8
parent720f45ad01b6a3af2d77fb8fe122d934bbadba47 (diff)
downloadxen-d38a668b6ef8c84d1d3fda9947ffb0056d01fe3a.tar.gz
xen-d38a668b6ef8c84d1d3fda9947ffb0056d01fe3a.tar.bz2
xen-d38a668b6ef8c84d1d3fda9947ffb0056d01fe3a.zip
credit: unpause parked vcpu before destroying it
A capped out vcpu must be unpaused in case of moving it to another cpupool, otherwise it will be paused forever. Signed-off-by: Juergen Gross <juergen.gross@ts.fujitsu.com> Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
-rw-r--r--xen/common/sched_credit.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xen/common/sched_credit.c b/xen/common/sched_credit.c
index 192c653937..e69d794a22 100644
--- a/xen/common/sched_credit.c
+++ b/xen/common/sched_credit.c
@@ -929,6 +929,12 @@ csched_vcpu_remove(const struct scheduler *ops, struct vcpu *vc)
SCHED_STAT_CRANK(vcpu_destroy);
+ if ( test_and_clear_bit(CSCHED_FLAG_VCPU_PARKED, &svc->flags) )
+ {
+ SCHED_STAT_CRANK(vcpu_unpark);
+ vcpu_unpause(svc->vcpu);
+ }
+
if ( __vcpu_on_runq(svc) )
__runq_remove(svc);