On Thu, Jun 28, 2012 at 02:55:59PM +0200, Andrea Arcangeli wrote: > This is where the dynamically allocated sched_autonuma structure is > being handled. > > The reason for keeping this outside of the task_struct besides not > using too much kernel stack, is to only allocate it on NUMA > hardware. So the not NUMA hardware only pays the memory of a pointer > in the kernel stack (which remains NULL at all times in that case). .. snip.. > + if (unlikely(alloc_task_autonuma(tsk, orig, node))) > + /* free_thread_info() undoes arch_dup_task_struct() too */ > + goto out_thread_info; > That looks (without seeing the implementation) and from reading the git commit, like that on non-NUMA machines it would fail - and end up stop the creation of a task. Perhaps a better name for the function: alloc_always_task_autonuma since the function (at least from the description of this patch) will always succeed. Perhaps even remove the: "if unlikely(..)" bit? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>