Re: [V5 PATCH 08/26] memcontrol: use N_MEMORY instead N_HIGH_MEMORY
From: Michal Hocko <hidden>
Date: 2012-10-31 13:18:17
Also in:
linux-mm, lkml
On Wed 31-10-12 15:03:36, Wen Congyang wrote:
At 10/30/2012 04:46 AM, David Rientjes Wrote:quoted
On Mon, 29 Oct 2012, Lai Jiangshan wrote:
[...]
quoted
quoted
In one word, we need a N_MEMORY. We just intrude it as an alias to N_HIGH_MEMORY and fix all im-proper usages of N_HIGH_MEMORY in late patches.If this is really that problematic (and it appears it's not given that there are many use cases of it and people tend to get it right), then why not simply rename N_HIGH_MEMORY instead of introducing yet another nodemask to the equation?The reason is that we need a node which only contains movable memory. This feature is very important for node hotplug. So we will add a new nodemask for movable memory. N_MEMORY contains movable memory but N_HIGH_MEMORY doesn't contain it.
OK, so the N_MOVABLE_MEMORY (or how you will call it) requires that all the allocations will be migrateable? How do you want to achieve that with the page_cgroup descriptors? (see bellow) On Mon 29-10-12 23:20:58, Lai Jiangshan wrote: [...]
quoted hunk
diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c index 5ddad0c..c1054ad 100644 --- a/mm/page_cgroup.c +++ b/mm/page_cgroup.c@@ -271,7 +271,7 @@ void __init page_cgroup_init(void) if (mem_cgroup_disabled()) return; - for_each_node_state(nid, N_HIGH_MEMORY) { + for_each_node_state(nid, N_MEMORY) { unsigned long start_pfn, end_pfn; start_pfn = node_start_pfn(nid);
This will call init_section_page_cgroup(pfn, nid) later which allocates page_cgroup descriptors which are not movable. Or is there any code in your patchset that handles this? -- Michal Hocko SUSE Labs