Re: [PATCH] cpuset: fix allocating page cache/slab object on the unallowed node when memory spread is set

Nick Piggin
2009-02-09T04:03:17Z

On Saturday 07 February 2009 06:19:27 Paul Menage wrote:
> On Wed, Feb 4, 2009 at 1:31 AM, Miao Xie <miaox@cn.fujitsu.com> wrote:
> >> AFAICS this patch still has a race between a thread reading its
> >> mems_allowed, and another thread updating it. The current architecture
> >> of having task->mems_allowed be only updatable by current was PaulJ's
> >> code originally, and I'm a bit loathe to touch it. But if we're going
> >> to, we'll need at the minimum to add a lock for any code that touches
> >> current->mems_allowed.
> >
> > Agree! But mems_allowed is touched in the module of memory management
> > in general, adding a lock to protect mems_allowed may lead to performance
> > regression.
>
> I've asked Andrew to remove this from -mm until we can figure out:
>
> - whether it's needed
> - how to do it safely.

Is it a problem if mems_allowed can get sampled in an unsafe way?
It will happen only quite rarely. This code seems to be far simpler
and more robust than the current fragile scheme, so it would be
nice to use it.