On Fri, 2012-05-25 at 19:02 +0200, Andrea Arcangeli wrote: > Invoke autonuma_balance only on the busy CPUs at the same frequency of > the CFS load balance. > > Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> > --- > kernel/sched/fair.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 99d1d33..1357938 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -4893,6 +4893,9 @@ static void run_rebalance_domains(struct softirq_action *h) > > rebalance_domains(this_cpu, idle); > > + if (!this_rq->idle_balance) > + sched_set_autonuma_need_balance(); > + This just isn't enough.. the whole thing needs to move out of schedule(). The only time schedule() should ever look at another cpu is if its idle. As it stands load-balance actually takes too much time as it is to live in a softirq, -rt gets around that by pushing all softirqs into a thread and I was thinking of doing some of that for mainline too. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href