From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Wed, 1 Aug 2007 02:21:14 +0200 From: Nick Piggin Subject: Re: [rfc] balance-on-fork NUMA placement Message-ID: <20070801002114.GB31006@wotan.suse.de> References: <20070731054142.GB11306@wotan.suse.de> <20070731080114.GA12367@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070731080114.GA12367@elte.hu> Sender: owner-linux-mm@kvack.org Return-Path: To: Ingo Molnar Cc: Andi Kleen , Linux Kernel Mailing List , Linux Memory Management List List-ID: On Tue, Jul 31, 2007 at 10:01:14AM +0200, Ingo Molnar wrote: > > * Nick Piggin 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? That puts task struct, kernel stack, thread info on the wrong node. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org