[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0801181342120.7778@schroedinger.engr.sgi.com>
Date: Fri, 18 Jan 2008 13:43:45 -0800 (PST)
From: Christoph Lameter <clameter@....com>
To: Mel Gorman <mel@....ul.ie>
cc: Olaf Hering <olaf@...fle.de>,
Pekka Enberg <penberg@...helsinki.fi>,
linux-kernel@...r.kernel.org, linuxppc-dev@...abs.org,
Linux MM <linux-mm@...ck.org>
Subject: Re: crash in kmem_cache_init
On Fri, 18 Jan 2008, Mel Gorman wrote:
> 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++) {
> struct zone *zone = &pgdat->node_zones[zone_type];
> if (zone->present_pages)
> node_set_state(zone_to_nid(zone), N_NORMAL_MEMORY);
> }
> #endif
> }
>
> i.e. go through the other zones and if any of them have memory, set
> N_NORMAL_MEMORY. But... it only does this on CONFIG_HIGHMEM which on
> PPC64 is not going to be set so N_NORMAL_MEMORY never gets set on
> POWER.... That sounds bad.
Argh. We may need to do a
node_set_state(zone_to_nid(zone), N_NORMAL_MEMORY) in the !HIGHMEM case.
> and one of them is in kmem_cache_init(). That seems very significant.
> Christoph, can you think of possibilities of where N_NORMAL_MEMORY not
> being set would cause trouble for slab?
Yes. That results in the per node structures not being created and thus l3
== NULL. Explains our failures.
--
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