| Date | Tue, 29 May 2012 09:54:27 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH 12/35] autonuma: CPU follow memory algorithm |
| |
On 05/29/2012 09:00 AM, Peter Zijlstra wrote: > On Fri, 2012-05-25 at 19:02 +0200, Andrea Arcangeli wrote: >> @@ -3274,6 +3268,8 @@ need_resched: >> >> post_schedule(rq); >> >> + sched_autonuma_balance(); >> + >> sched_preempt_enable_no_resched(); >> if (need_resched()) >> goto need_resched; > > > >> +void sched_autonuma_balance(void) >> +{ > >> + for_each_online_node(nid) { >> + } > >> + for_each_online_node(nid) { >> + for_each_cpu_and(cpu, cpumask_of_node(nid), allowed) { > > >> + } >> + } > >> + stop_one_cpu(this_cpu, migration_cpu_stop,&arg); >> +} > > NAK > > You do _NOT_ put a O(nr_cpus) or even O(nr_nodes) loop in the middle of > schedule(). > > I see you've made it conditional, but schedule() taking that long -- > even occasionally -- is just not cool. > > schedule() calling schedule() is also an absolute abomination. > > You were told to fix this several times..
Do you have any suggestions for how Andrea could fix this?
Pairwise comparisons with a busy CPU/node?
-- All rights reversed
|