[lkml]   [2009]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] cpuset: fix allocating page cache/slab object on the unallowed node when memory spread is set
On Wed, Feb 4, 2009 at 1:31 AM, Miao Xie <> 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.

Basically the problem that you're seeing is that when you move a task
into a cpuset that has memory_spread_page=1, it fails to call

One thing missing from your test - can you verify that the test
program really did get migrated into the child cpuset? If it failed
(and echo failed to report the error) that would explain what you're


 \ /
  Last update: 2009-02-06 20:21    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean