cpumask: remove cpumask allocation from idle_balance
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 19 Mar 2009 04:52:20 +0000 (15:22 +1030)
committerIngo Molnar <mingo@elte.hu>
Thu, 19 Mar 2009 07:15:15 +0000 (08:15 +0100)
commitdf7c8e845e8e2030e8ae947e0ace56d184d0e9a0
tree15f68e17f2efaf853ffc8f3ba03bca37d847a32b
parentc38da5692e3a4d5d303c04cbf7e526f1eb761076
cpumask: remove cpumask allocation from idle_balance

Impact: fix circular locking

Steven reports a circular locking from alloc_cpumask_var doing
a wakeup. We get rid of this using the tried-and-true technique
of using a per-cpu cpumask_var_t rather than doing an alloc
every time.

Simpler and more robust than a rare, implicit allocation within
an atomic codepath.

Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
LKML-Reference: <alpine.DEB.2.00.0903181729360.31583@gandalf.stny.rr.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c