On Wed, 12 May 2010 14:16:42 +0800 Miao Xie <miaox@xxxxxxxxxxxxxx> wrote: > >> #include <linux/security.h> > >> #include <linux/cpu.h> > >> +#include <linux/cpuset.h> > >> #include <linux/acct.h> > >> #include <linux/tsacct_kern.h> > >> #include <linux/file.h> > >> @@ -1003,8 +1004,10 @@ NORET_TYPE void do_exit(long code) > >> > >> exit_notify(tsk, group_dead); > >> #ifdef CONFIG_NUMA > >> + task_lock(tsk); > >> mpol_put(tsk->mempolicy); > >> tsk->mempolicy = NULL; > >> + task_unlock(tsk); > >> #endif > >> #ifdef CONFIG_FUTEX > >> if (unlikely(current->pi_state_cache)) > > > > Given that this function is already holding task_lock(tsk), this > > didn't work very well. > > Sorry for replying late. > > Thanks for your patch that removes task_lock(tsk). > > I made this patch against the mainline tree, and do_exit() in the mainline tree > doesn't hold task_lock(tsk), so I took task_lock(tsk). But I didn't take notice > that do_exit() in the mmotm tree had been changed, and I made this mistake. Ah, hang on. Yes, I had to manually fix that a lot of times. The code you were patching has moved from do_exit() over to exit_mm(). AFACIT my change is still OK though. Please carefully review latest -mm? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>