28 lines
849 B
Diff
28 lines
849 B
Diff
|
# Commit d38a668b6ef8c84d1d3fda9947ffb0056d01fe3a
|
||
|
# Date 2013-10-16 12:26:48 +0200
|
||
|
# Author Juergen Gross <juergen.gross@ts.fujitsu.com>
|
||
|
# Committer Jan Beulich <jbeulich@suse.com>
|
||
|
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>
|
||
|
|
||
|
--- a/xen/common/sched_credit.c
|
||
|
+++ b/xen/common/sched_credit.c
|
||
|
@@ -931,6 +931,12 @@ csched_vcpu_remove(const struct schedule
|
||
|
|
||
|
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);
|
||
|
|