|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2 of 3] xen, credit2: Put the per-cpu schedule lock back to the default lock when releasing cpu
This fixes a bug that happens when you remove cpus from a credit2 cpupool.
Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
diff -r fd0d2fd2824b -r 761f0a1209f6 xen/common/sched_credit2.c
--- a/xen/common/sched_credit2.c Thu Apr 05 12:20:04 2012 +0100
+++ b/xen/common/sched_credit2.c Thu Apr 05 12:45:14 2012 +0100
@@ -1952,6 +1952,7 @@ csched_free_pdata(const struct scheduler
unsigned long flags;
struct csched_private *prv = CSCHED_PRIV(ops);
struct csched_runqueue_data *rqd;
+ struct schedule_data *sd = &per_cpu(schedule_data, cpu);
int rqi;
spin_lock_irqsave(&prv->lock, flags);
@@ -1979,6 +1980,11 @@ csched_free_pdata(const struct scheduler
deactivate_runqueue(prv, rqi);
}
+ /* Move spinlock to the original lock. */
+ ASSERT(sd->schedule_lock == &rqd->lock);
+ ASSERT(!spin_is_locked(&sd->_lock));
+ sd->schedule_lock = &sd->_lock;
+
spin_unlock(&rqd->lock);
cpumask_clear_cpu(cpu, &prv->initialized);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |