From d38a668b6ef8c84d1d3fda9947ffb0056d01fe3a Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: Wed, 16 Oct 2013 12:26:48 +0200 Subject: 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 Acked-by: George Dunlap --- xen/common/sched_credit.c | 6 ++++++ 1 file changed, 6 insertions(+) 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); -- cgit v1.2.3