[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20110422093619.FA5A.A69D9226@jp.fujitsu.com>
Date: Fri, 22 Apr 2011 09:36:15 +0900 (JST)
From: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
To: David Rientjes <rientjes@...gle.com>
Cc: kosaki.motohiro@...fujitsu.com,
Andrew Morton <akpm@...ux-foundation.org>,
Mel Gorman <mel@....ul.ie>,
Lee Schermerhorn <Lee.Schermerhorn@...com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [patch] mm: always set nodes with regular memory in N_NORMAL_MEMORY
> N_NORMAL_MEMORY is intended to include all nodes that have present memory
> in regular zones, that is, zones below ZONE_HIGHMEM. This should be done
> regardless of whether CONFIG_HIGHMEM is set or not.
>
> This fixes ia64 so that the nodes get set appropriately in the nodemask
> for DISCONTIGMEM and mips if it does not enable CONFIG_HIGHMEM even for
> 32-bit kernels.
>
> If N_NORMAL_MEMORY is not accurate, slub may encounter errors since it
> relies on this nodemask to setup kmem_cache_node data structures for each
> cache.
>
> Signed-off-by: David Rientjes <rientjes@...gle.com>
> ---
> mm/page_alloc.c | 2 --
> 1 files changed, 0 insertions(+), 2 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -4727,7 +4727,6 @@ out:
> /* Any regular memory on that node ? */
> static void check_for_regular_memory(pg_data_t *pgdat)
> {
> -#ifdef CONFIG_HIGHMEM
> enum zone_type zone_type;
>
> for (zone_type = 0; zone_type <= ZONE_NORMAL; zone_type++) {
> @@ -4735,7 +4734,6 @@ static void check_for_regular_memory(pg_data_t *pgdat)
> if (zone->present_pages)
> node_set_state(zone_to_nid(zone), N_NORMAL_MEMORY);
> }
> -#endif
enum node_states {
N_POSSIBLE, /* The node could become online at some point */
N_ONLINE, /* The node is online */
N_NORMAL_MEMORY, /* The node has regular memory */
#ifdef CONFIG_HIGHMEM
N_HIGH_MEMORY, /* The node has regular or high memory */
#else
N_HIGH_MEMORY = N_NORMAL_MEMORY,
#endif
N_CPU, /* The node has one or more cpus */
NR_NODE_STATES
};
Then, only node_set_state(nid, N_HIGH_MEMORY) is enough initialization, IIUC.
Can you please explain when do we need this patch?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists