All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mel Gorman <mel@csn.ul.ie>
To: Christoph Lameter <clameter@sgi.com>
Cc: linuxppc-dev@ozlabs.org, Olaf Hering <olaf@aepfle.de>,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	linux-kernel@vger.kernel.org, Linux MM <linux-mm@kvack.org>
Subject: Re: crash in kmem_cache_init
Date: Fri, 18 Jan 2008 21:30:11 +0000	[thread overview]
Message-ID: <20080118213011.GC10491@csn.ul.ie> (raw)
In-Reply-To: <Pine.LNX.4.64.0801181043290.30348@schroedinger.engr.sgi.com>

On (18/01/08 10:47), Christoph Lameter didst pronounce:
> On Thu, 17 Jan 2008, Olaf Hering wrote:
> 
> > early_node_map[1] active PFN ranges
> >     1:        0 ->   892928
> > Could not find start_pfn for node 0
> 
> Corrupted min_pfn?
> 

Doubtful. Node 0 has no memory but it is still being initialised.

Still, I looked closer at what is going on when that message gets
displayed and I see this in free_area_init_nodes()

        for_each_online_node(nid) {
                pg_data_t *pgdat = NODE_DATA(nid);
                free_area_init_node(nid, pgdat, NULL,
                                find_min_pfn_for_node(nid), NULL);

                /* Any memory on that node */
                if (pgdat->node_present_pages)
                        node_set_state(nid, N_HIGH_MEMORY);
                check_for_regular_memory(pgdat);
        }

This "Any memory on that node" thing is new and it says if there is any
memory on the node, set N_HIGH_MEMORY. Fine I guess, I haven't tracked these
changes closely. It calls check_for_regular_memory() which looks like

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.

mel@arnold:~/git/linux-2.6/mm$ grep -n N_NORMAL_MEMORY slab.c 
1593:           for_each_node_state(nid, N_NORMAL_MEMORY) {
1971:   for_each_node_state(node, N_NORMAL_MEMORY) {
2102:                   for_each_node_state(node, N_NORMAL_MEMORY) {
3818:   for_each_node_state(node, N_NORMAL_MEMORY) {

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?

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mel@csn.ul.ie>
To: Christoph Lameter <clameter@sgi.com>
Cc: Olaf Hering <olaf@aepfle.de>,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
	Linux MM <linux-mm@kvack.org>
Subject: Re: crash in kmem_cache_init
Date: Fri, 18 Jan 2008 21:30:11 +0000	[thread overview]
Message-ID: <20080118213011.GC10491@csn.ul.ie> (raw)
In-Reply-To: <Pine.LNX.4.64.0801181043290.30348@schroedinger.engr.sgi.com>

On (18/01/08 10:47), Christoph Lameter didst pronounce:
> On Thu, 17 Jan 2008, Olaf Hering wrote:
> 
> > early_node_map[1] active PFN ranges
> >     1:        0 ->   892928
> > Could not find start_pfn for node 0
> 
> Corrupted min_pfn?
> 

Doubtful. Node 0 has no memory but it is still being initialised.

Still, I looked closer at what is going on when that message gets
displayed and I see this in free_area_init_nodes()

        for_each_online_node(nid) {
                pg_data_t *pgdat = NODE_DATA(nid);
                free_area_init_node(nid, pgdat, NULL,
                                find_min_pfn_for_node(nid), NULL);

                /* Any memory on that node */
                if (pgdat->node_present_pages)
                        node_set_state(nid, N_HIGH_MEMORY);
                check_for_regular_memory(pgdat);
        }

This "Any memory on that node" thing is new and it says if there is any
memory on the node, set N_HIGH_MEMORY. Fine I guess, I haven't tracked these
changes closely. It calls check_for_regular_memory() which looks like

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.

mel@arnold:~/git/linux-2.6/mm$ grep -n N_NORMAL_MEMORY slab.c 
1593:           for_each_node_state(nid, N_NORMAL_MEMORY) {
1971:   for_each_node_state(node, N_NORMAL_MEMORY) {
2102:                   for_each_node_state(node, N_NORMAL_MEMORY) {
3818:   for_each_node_state(node, N_NORMAL_MEMORY) {

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?

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mel@csn.ul.ie>
To: Christoph Lameter <clameter@sgi.com>
Cc: Olaf Hering <olaf@aepfle.de>,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
	Linux MM <linux-mm@kvack.org>
Subject: Re: crash in kmem_cache_init
Date: Fri, 18 Jan 2008 21:30:11 +0000	[thread overview]
Message-ID: <20080118213011.GC10491@csn.ul.ie> (raw)
In-Reply-To: <Pine.LNX.4.64.0801181043290.30348@schroedinger.engr.sgi.com>

On (18/01/08 10:47), Christoph Lameter didst pronounce:
> On Thu, 17 Jan 2008, Olaf Hering wrote:
> 
> > early_node_map[1] active PFN ranges
> >     1:        0 ->   892928
> > Could not find start_pfn for node 0
> 
> Corrupted min_pfn?
> 

Doubtful. Node 0 has no memory but it is still being initialised.

Still, I looked closer at what is going on when that message gets
displayed and I see this in free_area_init_nodes()

        for_each_online_node(nid) {
                pg_data_t *pgdat = NODE_DATA(nid);
                free_area_init_node(nid, pgdat, NULL,
                                find_min_pfn_for_node(nid), NULL);

                /* Any memory on that node */
                if (pgdat->node_present_pages)
                        node_set_state(nid, N_HIGH_MEMORY);
                check_for_regular_memory(pgdat);
        }

This "Any memory on that node" thing is new and it says if there is any
memory on the node, set N_HIGH_MEMORY. Fine I guess, I haven't tracked these
changes closely. It calls check_for_regular_memory() which looks like

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.

mel@arnold:~/git/linux-2.6/mm$ grep -n N_NORMAL_MEMORY slab.c 
1593:           for_each_node_state(nid, N_NORMAL_MEMORY) {
1971:   for_each_node_state(node, N_NORMAL_MEMORY) {
2102:                   for_each_node_state(node, N_NORMAL_MEMORY) {
3818:   for_each_node_state(node, N_NORMAL_MEMORY) {

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?

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-01-18 21:30 UTC|newest]

Thread overview: 177+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-15 15:09 crash in kmem_cache_init Olaf Hering
2008-01-15 15:58 ` Olaf Hering
2008-01-17 12:14 ` Pekka Enberg
2008-01-17 12:14   ` Pekka Enberg
2008-01-17 12:14   ` Pekka Enberg
2008-01-17 14:30   ` Christoph Lameter
2008-01-17 14:30     ` Christoph Lameter
2008-01-17 14:30     ` Christoph Lameter
2008-01-17 18:12     ` Olaf Hering
2008-01-17 18:12       ` Olaf Hering
2008-01-17 18:12       ` Olaf Hering
2008-01-17 18:58       ` Christoph Lameter
2008-01-17 18:58         ` Christoph Lameter
2008-01-17 18:58         ` Christoph Lameter
2008-01-17 19:54         ` Olaf Hering
2008-01-17 19:54           ` Olaf Hering
2008-01-17 20:20           ` Olaf Hering
2008-01-17 20:20             ` Olaf Hering
2008-01-17 20:20             ` Olaf Hering
2008-01-19  4:56             ` Christoph Lameter
2008-01-19  4:56               ` Christoph Lameter
2008-01-19  4:56               ` Christoph Lameter
2008-01-17 21:15         ` Olaf Hering
2008-01-17 21:15           ` Olaf Hering
2008-01-17 21:15           ` Olaf Hering
2008-01-18  6:56           ` Olaf Hering
2008-01-18  6:56             ` Olaf Hering
2008-01-18  6:56             ` Olaf Hering
2008-01-18 18:42             ` Christoph Lameter
2008-01-18 18:42               ` Christoph Lameter
2008-01-18 18:42               ` Christoph Lameter
2008-01-19  4:55             ` Christoph Lameter
2008-01-19  4:55               ` Christoph Lameter
2008-01-19  4:55               ` Christoph Lameter
2008-01-18 18:47           ` Christoph Lameter
2008-01-18 18:47             ` Christoph Lameter
2008-01-18 18:47             ` Christoph Lameter
2008-01-18 21:30             ` Mel Gorman [this message]
2008-01-18 21:30               ` Mel Gorman
2008-01-18 21:30               ` Mel Gorman
2008-01-18 21:43               ` Christoph Lameter
2008-01-18 21:43                 ` Christoph Lameter
2008-01-18 21:43                 ` Christoph Lameter
2008-01-18 22:16               ` Christoph Lameter
2008-01-18 22:16                 ` Christoph Lameter
2008-01-18 22:16                 ` Christoph Lameter
2008-01-18 22:19                 ` Nish Aravamudan
2008-01-18 22:19                   ` Nish Aravamudan
2008-01-18 22:19                   ` Nish Aravamudan
2008-01-18 22:38                 ` Christoph Lameter
2008-01-18 22:38                   ` Christoph Lameter
2008-01-18 22:38                   ` Christoph Lameter
2008-01-18 22:57                 ` Olaf Hering
2008-01-18 22:57                   ` Olaf Hering
2008-01-18 22:57                   ` Olaf Hering
2008-01-22 19:54                   ` Mel Gorman
2008-01-22 19:54                     ` Mel Gorman
2008-01-22 19:54                     ` Mel Gorman
2008-01-22 20:11                     ` Christoph Lameter
2008-01-22 20:11                       ` Christoph Lameter
2008-01-22 20:11                       ` Christoph Lameter
2008-01-22 21:26                       ` Mel Gorman
2008-01-22 21:26                         ` Mel Gorman
2008-01-22 21:26                         ` Mel Gorman
2008-01-22 21:34                         ` Christoph Lameter
2008-01-22 21:34                           ` Christoph Lameter
2008-01-22 21:34                           ` Christoph Lameter
2008-01-22 22:50                           ` Mel Gorman
2008-01-22 22:50                             ` Mel Gorman
2008-01-22 22:57                             ` Christoph Lameter
2008-01-22 22:57                               ` Christoph Lameter
2008-01-22 22:57                               ` Christoph Lameter
2008-01-22 23:10                               ` Mel Gorman
2008-01-22 23:10                                 ` Mel Gorman
2008-01-22 23:10                                 ` Mel Gorman
2008-01-22 23:14                                 ` Christoph Lameter
2008-01-22 23:14                                   ` Christoph Lameter
2008-01-22 23:14                                   ` Christoph Lameter
2008-01-22 22:59                             ` Pekka Enberg
2008-01-22 22:59                               ` Pekka Enberg
2008-01-22 22:59                               ` Pekka Enberg
2008-01-22 23:12                               ` Christoph Lameter
2008-01-22 23:12                                 ` Christoph Lameter
2008-01-22 23:12                                 ` Christoph Lameter
2008-01-22 23:18                                 ` Christoph Lameter
2008-01-22 23:18                                   ` Christoph Lameter
2008-01-22 23:18                                   ` Christoph Lameter
2008-01-23  8:19                                   ` Pekka Enberg
2008-01-23  8:19                                     ` Pekka Enberg
2008-01-23  8:19                                     ` Pekka Enberg
2008-01-23  8:40                                     ` Olaf Hering
2008-01-23  8:40                                       ` Olaf Hering
2008-01-23  8:40                                       ` Olaf Hering
2008-01-22 21:45                     ` Olaf Hering
2008-01-22 21:45                       ` Olaf Hering
2008-01-22 21:45                       ` Olaf Hering
2008-01-22 22:12                       ` Nish Aravamudan
2008-01-22 22:12                         ` Nish Aravamudan
2008-01-22 22:12                         ` Nish Aravamudan
2008-01-22 22:23                       ` Christoph Lameter
2008-01-22 22:23                         ` Christoph Lameter
2008-01-22 22:23                         ` Christoph Lameter
2008-01-23  7:58                         ` Olaf Hering
2008-01-23  7:58                           ` Olaf Hering
2008-01-23  7:58                           ` Olaf Hering
2008-01-23 10:50                           ` Mel Gorman
2008-01-23 10:50                             ` Mel Gorman
2008-01-23 10:50                             ` Mel Gorman
2008-01-23 12:14                             ` Olaf Hering
2008-01-23 12:14                               ` Olaf Hering
2008-01-23 12:14                               ` Olaf Hering
2008-01-23 12:52                               ` Olaf Hering
2008-01-23 12:52                                 ` Olaf Hering
2008-01-23 12:52                                 ` Olaf Hering
2008-01-23 13:55                                 ` [PATCH] Fix boot problem in situations where the boot CPU is running on a memoryless node Mel Gorman
2008-01-23 13:55                                   ` Mel Gorman
2008-01-23 13:55                                   ` Mel Gorman
2008-01-23 14:18                                   ` Pekka J Enberg
2008-01-23 14:18                                     ` Pekka J Enberg
2008-01-23 14:18                                     ` Pekka J Enberg
2008-01-23 14:32                                     ` Pekka J Enberg
2008-01-23 14:32                                       ` Pekka J Enberg
2008-01-23 14:32                                       ` Pekka J Enberg
2008-01-23 14:49                                       ` Pekka J Enberg
2008-01-23 14:49                                         ` Pekka J Enberg
2008-01-23 14:49                                         ` Pekka J Enberg
2008-01-23 15:56                                         ` Mel Gorman
2008-01-23 15:56                                           ` Mel Gorman
2008-01-23 15:56                                           ` Mel Gorman
2008-01-23 17:29                                           ` Pekka J Enberg
2008-01-23 17:29                                             ` Pekka J Enberg
2008-01-23 17:29                                             ` Pekka J Enberg
2008-01-23 17:42                                             ` Pekka J Enberg
2008-01-23 17:42                                               ` Pekka J Enberg
2008-01-23 17:42                                               ` Pekka J Enberg
2008-01-23 18:51                                             ` Christoph Lameter
2008-01-23 18:51                                               ` Christoph Lameter
2008-01-23 18:51                                               ` Christoph Lameter
2008-01-23 19:52                                             ` Nishanth Aravamudan
2008-01-23 19:52                                               ` Nishanth Aravamudan
2008-01-23 19:52                                               ` Nishanth Aravamudan
2008-01-23 21:02                                               ` Pekka Enberg
2008-01-23 21:02                                                 ` Pekka Enberg
2008-01-23 21:02                                                 ` Pekka Enberg
2008-01-23 21:14                                                 ` Christoph Lameter
2008-01-23 21:14                                                   ` Christoph Lameter
2008-01-23 21:14                                                   ` Christoph Lameter
2008-01-23 21:36                                                   ` Nishanth Aravamudan
2008-01-23 21:36                                                     ` Nishanth Aravamudan
2008-01-23 21:36                                                     ` Nishanth Aravamudan
2008-01-24  3:13                                                     ` Christoph Lameter
2008-01-24  3:13                                                       ` Christoph Lameter
2008-01-24  3:13                                                       ` Christoph Lameter
2008-01-23 18:36                                         ` Christoph Lameter
2008-01-23 18:36                                           ` Christoph Lameter
2008-01-23 18:36                                           ` Christoph Lameter
2008-01-23 18:35                                     ` Christoph Lameter
2008-01-23 18:35                                       ` Christoph Lameter
2008-01-23 18:35                                       ` Christoph Lameter
2008-01-23 14:27                                   ` Olaf Hering
2008-01-23 14:27                                     ` Olaf Hering
2008-01-23 14:27                                     ` Olaf Hering
2008-01-23 14:42                                     ` Mel Gorman
2008-01-23 14:42                                       ` Mel Gorman
2008-01-23 14:42                                       ` Mel Gorman
2008-01-23 18:41                                   ` Christoph Lameter
2008-01-23 18:41                                     ` Christoph Lameter
2008-01-23 18:41                                     ` Christoph Lameter
2008-01-23 13:41                               ` crash in kmem_cache_init Mel Gorman
2008-01-23 13:41                                 ` Mel Gorman
2008-01-23 13:41                                 ` Mel Gorman
2008-01-18 18:51           ` Christoph Lameter
2008-01-18 18:51             ` Christoph Lameter
2008-01-18 18:51             ` Christoph Lameter
2008-01-17 19:03       ` Christoph Lameter
2008-01-17 19:03         ` Christoph Lameter
2008-01-17 19:03         ` Christoph Lameter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080118213011.GC10491@csn.ul.ie \
    --to=mel@csn.ul.ie \
    --cc=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=olaf@aepfle.de \
    --cc=penberg@cs.helsinki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.