Messages in this thread | | | From | Wen Congyang <> | Subject | [PART6 Patch] memory-hotplug: bugfix for movable node | Date | Wed, 31 Oct 2012 17:24:17 +0800 |
| |
This patch is part6 of the following patchset: https://lkml.org/lkml/2012/10/29/319
The patchset is based on Linus's tree with these three patches already applied: https://lkml.org/lkml/2012/10/24/151 https://lkml.org/lkml/2012/10/26/150
Part1 is here: https://lkml.org/lkml/2012/10/31/30
Part2 is here: http://marc.info/?l=linux-kernel&m=135166705909544&w=2
Part3 is here: http://marc.info/?l=linux-kernel&m=135167050510527&w=2
Part4 is here: http://marc.info/?l=linux-kernel&m=135167344211401&w=2
Part5 is here: http://marc.info/?l=linux-kernel&m=135167497312063&w=2
You can apply this patch without the other parts.
Issues):
mempolicy(M_BIND) don't act well when the nodemask has movable nodes only, the kernel allocation will fail and the task can't create new task or other kernel objects.
So we change the strategy/policy when the bound nodemask has movable node(s) only, we only apply mempolicy for userspace allocation, don't apply it for kernel allocation.
CPUSET also has the same problem, but the code spread in page_alloc.c, and we doesn't fix it yet, we can/will change allocation strategy to one of these 3 strategies: 1) the same strategy as mempolicy 2) change cpuset, make nodemask always has at least a normal node 3) split nodemask: nodemask_user and nodemask_kernel
This patchset only fixes issue1.
Lai Jiangshan (1): mempolicy: fix is_valid_nodemask()
mm/mempolicy.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-)
-- 1.8.0
| |