Re: [rfc] balance-on-fork NUMA placement

From: Ingo Molnar
Date: Tue Jul 31 2007 - 04:01:28 EST



* Nick Piggin <npiggin@xxxxxxx> wrote:

> This patch uses memory policies to attempt to improve this. It
> requires that we ask the scheduler to suggest the child's new CPU
> earlier in the fork, but that is not a fundamental difference.

no fundamental objections, but i think we could simply move sched_fork()
to the following place:

> @@ -989,10 +990,13 @@ static struct task_struct *copy_process(
> if (retval)
> goto fork_out;
>
> + cpu = sched_fork_suggest_cpu(clone_flags);
> + mpol_arg = mpol_prefer_cpu_start(cpu);
> +
> retval = -ENOMEM;
> p = dup_task_struct(current);
> if (!p)
> - goto fork_out;
> + goto fork_mpol;
>
> rt_mutex_init_task(p);


_after_ the dup_task_struct(). Then change sched_fork() to return a CPU
number - hence we dont have a separate sched_fork_suggest_cpu()
initialization function, only one, obvious sched_fork() function.
Agreed?

Ingo
-
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/