cpuset,mm: fix memory spread bug
cover cpuset,mm: fix memory spread bug
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>
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.
Quoted 18 lines · Miao Xie
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 aftermemory_spread_pagewas set. it is caused by the oldmem_allowedand flags of the task, the current kernel doesn't updates them unless some function invokescpuset_update_task_memory_state(), it is too late sometimes.We must update themem_allowedand the flags of the tasks in time.Slab has the same problem.
The following patches fix this bug by updating tasks'
mem_allowedand 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_allowedin time
Quoted 6 lines
--
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>
--
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>
Quoted 3 lines · 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
Quoted 21 lines · Miao Xie
Quoted 19 lines
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 aftermemory_spread_pagewas set. it is caused by the oldmem_allowedand flags of the task, the current kernel doesn't updates them unless some function invokescpuset_update_task_memory_state(), it is too late sometimes.We must update themem_allowedand the flags of the tasks in time.Slab has the same problem.
The following patches fix this bug by updating tasks'
mem_allowedand 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_allowedin time
Quoted 9 lines
Quoted 6 lines
--
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>
--
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>