Re: [PATCH 12/35] autonuma: CPU follow memory algorithm

From: Peter Zijlstra
Date: Tue May 29 2012 - 09:01:33 EST


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..
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/