sched: fix idle load balancing in softirqd context
authorSiddha, Suresh B <suresh.b.siddha@intel.com>
Tue, 8 May 2007 07:32:48 +0000 (00:32 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 8 May 2007 18:15:17 +0000 (11:15 -0700)
commitbdecea3a9282d529b54954f3f1e59877629baba1
treec7330b1cec4b4a9bf18657bc99100276343efc38
parent2bd7e20e0d24325b0799544bc8105cc57cc8e2aa
sched: fix idle load balancing in softirqd context

Periodic load balancing in recent kernels happen in the softirq.  In
certain -rt configurations, these softirqs are handled in softirqd context.
 And hence the check for idle processor was always returning busy (as
nr_running > 1).

This patch captures the idle information at the tick and passes this info
to softirq context through an element 'idle_at_tick' in rq.

[kernel@kolivas.org: Fix reverse idle at tick logic]
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/sched.c