The kernel still allocated the page caches on old node after modifying its
cpuset's mems when 'memory_spread_page' was set, or it didn't spread the page
cache evenly over all the nodes that faulting task is allowed to usr after
memory_spread_page was set. it is caused by the old mem_allowed and flags
of the task, the current kernel doesn't updates them unless some function
invokes cpuset_update_task_memory_state(), it is too late sometimes.We must
update the mem_allowed and the flags of the tasks in time.
Slab has the same problem.
The following patches fix this bug by updating tasks' mem_allowed and spread
flag after its cpuset's mems or spread flag is changed.
patch 1: restructure the function cpuset_update_task_memory_state()
patch 2: update tasks' page/slab spread flags in time
patch 3: update tasks' mems_allowed in time
Interesting patch set but I cannot find parts 2 and 3. The locking changes
get rid of the generation scheme in cpusets which is a good thing if it
works right.
On Tue, 7 Apr 2009, Miao Xie wrote:
> The kernel still allocated the page caches on old node after modifying its
> cpuset's mems when 'memory_spread_page' was set, or it didn't spread the page
> cache evenly over all the nodes that faulting task is allowed to usr after
> memory_spread_page was set. it is caused by the old mem_allowed and flags
> of the task, the current kernel doesn't updates them unless some function
> invokes cpuset_update_task_memory_state(), it is too late sometimes.We must
> update the mem_allowed and the flags of the tasks in time.
>
> Slab has the same problem.
>
> The following patches fix this bug by updating tasks' mem_allowed and spread
> flag after its cpuset's mems or spread flag is changed.
>
> patch 1: restructure the function cpuset_update_task_memory_state()
> patch 2: update tasks' page/slab spread flags in time
> patch 3: update tasks' mems_allowed in time
>
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to [email protected]. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
>
on 2009-4-8 5:04 Christoph Lameter wrote:
> Interesting patch set but I cannot find parts 2 and 3. The locking changes
> get rid of the generation scheme in cpusets which is a good thing if it
> works right.
Sorry for the late reply and my mistake. The following URLs is the patches'
address.
patch 1: restructure the function cpuset_update_task_memory_state()
http://marc.info/?l=linux-kernel&m=123910183705576&w=2
patch 2: update tasks' page/slab spread flags in time
http://marc.info/?l=linux-kernel&m=123910199505770&w=2
patch 3: update tasks' mems_allowed in time
http://marc.info/?l=linux-mm&m=123910199605776&w=2
Thanks
Miao
>
> On Tue, 7 Apr 2009, Miao Xie wrote:
>
>> The kernel still allocated the page caches on old node after modifying its
>> cpuset's mems when 'memory_spread_page' was set, or it didn't spread the page
>> cache evenly over all the nodes that faulting task is allowed to usr after
>> memory_spread_page was set. it is caused by the old mem_allowed and flags
>> of the task, the current kernel doesn't updates them unless some function
>> invokes cpuset_update_task_memory_state(), it is too late sometimes.We must
>> update the mem_allowed and the flags of the tasks in time.
>>
>> Slab has the same problem.
>>
>> The following patches fix this bug by updating tasks' mem_allowed and spread
>> flag after its cpuset's mems or spread flag is changed.
>>
>> patch 1: restructure the function cpuset_update_task_memory_state()
>> patch 2: update tasks' page/slab spread flags in time
>> patch 3: update tasks' mems_allowed in time
>>
>>
>> --
>> To unsubscribe, send a message with 'unsubscribe linux-mm' in
>> the body to [email protected]. For more info on Linux MM,
>> see: http://www.linux-mm.org/ .
>> Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
>>
>
>
>