Messages in this thread | | | Date | Wed, 12 May 2010 17:00:45 +0800 | From | Miao Xie <> | Subject | Re: [PATCH -mm] cpuset,mm: fix no node to alloc memory when changing cpuset's mems - fix2 |
| |
on 2010-5-12 12:32, Andrew Morton wrote: > On Wed, 12 May 2010 15:20:51 +0800 Miao Xie <miaox@cn.fujitsu.com> wrote: > >> @@ -985,6 +984,7 @@ repeat: >> * for the read-side. >> */ >> while (ACCESS_ONCE(tsk->mems_allowed_change_disable)) { >> + task_unlock(tsk); >> if (!task_curr(tsk)) >> yield(); >> goto repeat; > > Oh, I meant to mention that. No yield()s, please. Their duration is > highly unpredictable. Can we do something more deterministic here?
Maybe we can use wait_for_completion().
> > Did you consider doing all this with locking? get_mems_allowed() does > mutex_lock(current->lock)?
do you means using a real lock(such as: mutex) to protect mempolicy and mem_allowed?
It may cause the performance regression, so I do my best to abstain from using a real lock.
Thanks Miao
> > > >
| |