Re: [PATCH 2/2] cpuset,mm: fix no node to alloc memory when changing cpuset's mems

Miao Xie
2010-05-12T06:15:25Z

on 2010-5-12 9:49, Andrew Morton wrote:
...
>> --- a/kernel/exit.c
>> +++ b/kernel/exit.c
>> @@ -16,6 +16,7 @@
>> #include <linux/key.h>
>> #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.

> Also, why was the inclusion of cpuset.h added? Nothing which this
> patch adds appears to need it?
>

This is my mistake, I will make patch to cleanup it.

Thanks!
Miao