Messages in this thread | | | Date | Tue, 07 Apr 2009 18:52:26 +0800 | From | Miao Xie <> | Subject | [RFC][PATCH 0/3] 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
| |