Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932653Ab2J2QWT (ORCPT ); Mon, 29 Oct 2012 12:22:19 -0400 Received: from cantor2.suse.de ([195.135.220.15]:39817 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932495Ab2J2QWR (ORCPT ); Mon, 29 Oct 2012 12:22:17 -0400 Date: Mon, 29 Oct 2012 17:22:12 +0100 From: Michal Hocko To: Lai Jiangshan Cc: Mel Gorman , David Rientjes , LKML , x86 maintainers , Jiang Liu , Rusty Russell , Yinghai Lu , KAMEZAWA Hiroyuki , Yasuaki ISIMATU , Andrew Morton , Johannes Weiner , Balbir Singh , Tejun Heo , Li Zefan , cgroups@vger.kernel.org, linux-mm@kvack.org, containers@lists.linux-foundation.org Subject: Re: [V5 PATCH 08/26] memcontrol: use N_MEMORY instead N_HIGH_MEMORY Message-ID: <20121029162212.GE20757@dhcp22.suse.cz> References: <1351523301-20048-1-git-send-email-laijs@cn.fujitsu.com> <1351524078-20363-7-git-send-email-laijs@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1351524078-20363-7-git-send-email-laijs@cn.fujitsu.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4475 Lines: 119 On Mon 29-10-12 23:20:58, Lai Jiangshan wrote: > N_HIGH_MEMORY stands for the nodes that has normal or high memory. > N_MEMORY stands for the nodes that has any memory. What is the difference of those two? > The code here need to handle with the nodes which have memory, we should > use N_MEMORY instead. > > Signed-off-by: Lai Jiangshan > --- > mm/memcontrol.c | 18 +++++++++--------- > mm/page_cgroup.c | 2 +- > 2 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 7acf43b..1b69665 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -800,7 +800,7 @@ static unsigned long mem_cgroup_nr_lru_pages(struct mem_cgroup *memcg, > int nid; > u64 total = 0; > > - for_each_node_state(nid, N_HIGH_MEMORY) > + for_each_node_state(nid, N_MEMORY) > total += mem_cgroup_node_nr_lru_pages(memcg, nid, lru_mask); > return total; > } > @@ -1611,9 +1611,9 @@ static void mem_cgroup_may_update_nodemask(struct mem_cgroup *memcg) > return; > > /* make a nodemask where this memcg uses memory from */ > - memcg->scan_nodes = node_states[N_HIGH_MEMORY]; > + memcg->scan_nodes = node_states[N_MEMORY]; > > - for_each_node_mask(nid, node_states[N_HIGH_MEMORY]) { > + for_each_node_mask(nid, node_states[N_MEMORY]) { > > if (!test_mem_cgroup_node_reclaimable(memcg, nid, false)) > node_clear(nid, memcg->scan_nodes); > @@ -1684,7 +1684,7 @@ static bool mem_cgroup_reclaimable(struct mem_cgroup *memcg, bool noswap) > /* > * Check rest of nodes. > */ > - for_each_node_state(nid, N_HIGH_MEMORY) { > + for_each_node_state(nid, N_MEMORY) { > if (node_isset(nid, memcg->scan_nodes)) > continue; > if (test_mem_cgroup_node_reclaimable(memcg, nid, noswap)) > @@ -3759,7 +3759,7 @@ move_account: > drain_all_stock_sync(memcg); > ret = 0; > mem_cgroup_start_move(memcg); > - for_each_node_state(node, N_HIGH_MEMORY) { > + for_each_node_state(node, N_MEMORY) { > for (zid = 0; !ret && zid < MAX_NR_ZONES; zid++) { > enum lru_list lru; > for_each_lru(lru) { > @@ -4087,7 +4087,7 @@ static int memcg_numa_stat_show(struct cgroup *cont, struct cftype *cft, > > total_nr = mem_cgroup_nr_lru_pages(memcg, LRU_ALL); > seq_printf(m, "total=%lu", total_nr); > - for_each_node_state(nid, N_HIGH_MEMORY) { > + for_each_node_state(nid, N_MEMORY) { > node_nr = mem_cgroup_node_nr_lru_pages(memcg, nid, LRU_ALL); > seq_printf(m, " N%d=%lu", nid, node_nr); > } > @@ -4095,7 +4095,7 @@ static int memcg_numa_stat_show(struct cgroup *cont, struct cftype *cft, > > file_nr = mem_cgroup_nr_lru_pages(memcg, LRU_ALL_FILE); > seq_printf(m, "file=%lu", file_nr); > - for_each_node_state(nid, N_HIGH_MEMORY) { > + for_each_node_state(nid, N_MEMORY) { > node_nr = mem_cgroup_node_nr_lru_pages(memcg, nid, > LRU_ALL_FILE); > seq_printf(m, " N%d=%lu", nid, node_nr); > @@ -4104,7 +4104,7 @@ static int memcg_numa_stat_show(struct cgroup *cont, struct cftype *cft, > > anon_nr = mem_cgroup_nr_lru_pages(memcg, LRU_ALL_ANON); > seq_printf(m, "anon=%lu", anon_nr); > - for_each_node_state(nid, N_HIGH_MEMORY) { > + for_each_node_state(nid, N_MEMORY) { > node_nr = mem_cgroup_node_nr_lru_pages(memcg, nid, > LRU_ALL_ANON); > seq_printf(m, " N%d=%lu", nid, node_nr); > @@ -4113,7 +4113,7 @@ static int memcg_numa_stat_show(struct cgroup *cont, struct cftype *cft, > > unevictable_nr = mem_cgroup_nr_lru_pages(memcg, BIT(LRU_UNEVICTABLE)); > seq_printf(m, "unevictable=%lu", unevictable_nr); > - for_each_node_state(nid, N_HIGH_MEMORY) { > + for_each_node_state(nid, N_MEMORY) { > node_nr = mem_cgroup_node_nr_lru_pages(memcg, nid, > BIT(LRU_UNEVICTABLE)); > seq_printf(m, " N%d=%lu", nid, node_nr); > 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); > -- > 1.7.4.4 > -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/