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

Ingo Molnar
2007-07-31T08:01:14Z

* Nick Piggin <npiggin@suse.de> 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