Re: [PATCH] Fix boot problem in situations where the boot CPU is running on a memoryless node

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Mel Gorman <mel@...>
Cc: <akpm@...>, Christoph Lameter <clameter@...>, <linux-kernel@...>, <linuxppc-dev@...>, Aneesh Kumar K.V <aneesh.kumar@...>, hanth Aravamudan <nacc@...>, KAMEZAWA Hiroyuki <kamezawa.hiroyu@...>, <lee.schermerhorn@...>, Linux MM <linux-mm@...>, Olaf Hering <olaf@...>
Date: Wednesday, January 23, 2008 - 1:42 pm

On Wed, 23 Jan 2008, Pekka J Enberg wrote:

[snip]
 

An untested patch follows:

---
 mm/slab.c |   39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

Index: linux-2.6/mm/slab.c
===================================================================
--- linux-2.6.orig/mm/slab.c
+++ linux-2.6/mm/slab.c
@@ -304,11 +304,11 @@ struct kmem_list3 {
 /*
  * Need this for bootstrapping a per node allocator.
  */
-#define NUM_INIT_LISTS (2 * MAX_NUMNODES + 1)
+#define NUM_INIT_LISTS (3 * MAX_NUMNODES)
 struct kmem_list3 __initdata initkmem_list3[NUM_INIT_LISTS];
 #define	CACHE_CACHE 0
-#define	SIZE_AC 1
-#define	SIZE_L3 (1 + MAX_NUMNODES)
+#define	SIZE_AC MAX_NUMNODES
+#define	SIZE_L3 (2 * MAX_NUMNODES)
 
 static int drain_freelist(struct kmem_cache *cache,
 			struct kmem_list3 *l3, int tofree);
@@ -1410,6 +1410,22 @@ static void init_list(struct kmem_cache 
 }
 
 /*
+ * For setting up all the kmem_list3s for cache whose buffer_size is same as
+ * size of kmem_list3.
+ */
+static void __init set_up_list3s(struct kmem_cache *cachep, int index)
+{
+	int node;
+
+	for_each_node_state(node, N_NORMAL_MEMORY) {
+		cachep->nodelists[node] = &initkmem_list3[index + node];
+		cachep->nodelists[node]->next_reap = jiffies +
+		    REAPTIMEOUT_LIST3 +
+		    ((unsigned long)cachep) % REAPTIMEOUT_LIST3;
+	}
+}
+
+/*
  * Initialisation.  Called after the page allocator have been initialised and
  * before smp_init().
  */
@@ -1432,6 +1448,7 @@ void __init kmem_cache_init(void)
 		if (i < MAX_NUMNODES)
 			cache_cache.nodelists[i] = NULL;
 	}
+	set_up_list3s(&cache_cache, CACHE_CACHE);
 
 	/*
 	 * Fragmentation resistance on low memory - only use bigger
@@ -1964,22 +1981,6 @@ static void slab_destroy(struct kmem_cac
 	}
 }
 
-/*
- * For setting up all the kmem_list3s for cache whose buffer_size is same as
- * size of kmem_list3.
- */
-static void __init set_up_list3s(struct kmem_cache *cachep, int index)
-{
-	int node;
-
-	for_each_node_state(node, N_NORMAL_MEMORY) {
-		cachep->nodelists[node] = &initkmem_list3[index + node];
-		cachep->nodelists[node]->next_reap = jiffies +
-		    REAPTIMEOUT_LIST3 +
-		    ((unsigned long)cachep) % REAPTIMEOUT_LIST3;
-	}
-}
-
 static void __kmem_cache_destroy(struct kmem_cache *cachep)
 {
 	int i;
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
crash in kmem_cache_init, Olaf Hering, (Tue Jan 15, 11:09 am)
Re: crash in kmem_cache_init, Pekka Enberg, (Thu Jan 17, 8:14 am)
Re: crash in kmem_cache_init, Christoph Lameter, (Thu Jan 17, 10:30 am)
Re: crash in kmem_cache_init, Olaf Hering, (Thu Jan 17, 2:12 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Thu Jan 17, 3:03 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Thu Jan 17, 2:58 pm)
Re: crash in kmem_cache_init, Olaf Hering, (Thu Jan 17, 5:15 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Fri Jan 18, 2:51 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Fri Jan 18, 2:47 pm)
Re: crash in kmem_cache_init, Mel Gorman, (Fri Jan 18, 5:30 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Fri Jan 18, 6:16 pm)
Re: crash in kmem_cache_init, Olaf Hering, (Fri Jan 18, 6:57 pm)
Re: crash in kmem_cache_init, Mel Gorman, (Tue Jan 22, 3:54 pm)
Re: crash in kmem_cache_init, Olaf Hering, (Tue Jan 22, 5:45 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Tue Jan 22, 6:23 pm)
Re: crash in kmem_cache_init, Olaf Hering, (Wed Jan 23, 3:58 am)
Re: crash in kmem_cache_init, Mel Gorman, (Wed Jan 23, 6:50 am)
Re: crash in kmem_cache_init, Olaf Hering, (Wed Jan 23, 8:14 am)
Re: crash in kmem_cache_init, Mel Gorman, (Wed Jan 23, 9:41 am)
Re: crash in kmem_cache_init, Olaf Hering, (Wed Jan 23, 8:52 am)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Christoph Lameter, (Wed Jan 23, 2:41 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Christoph Lameter, (Wed Jan 23, 2:35 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Christoph Lameter, (Wed Jan 23, 2:36 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Nishanth Aravamudan, (Wed Jan 23, 3:52 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Christoph Lameter, (Wed Jan 23, 5:14 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Nishanth Aravamudan, (Wed Jan 23, 5:36 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Christoph Lameter, (Wed Jan 23, 11:13 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Christoph Lameter, (Wed Jan 23, 2:51 pm)
Re: [PATCH] Fix boot problem in situations where the boot CP..., Pekka J Enberg, (Wed Jan 23, 1:42 pm)
Re: crash in kmem_cache_init, Nish Aravamudan, (Tue Jan 22, 6:12 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Tue Jan 22, 4:11 pm)
Re: crash in kmem_cache_init, Mel Gorman, (Tue Jan 22, 5:26 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Tue Jan 22, 5:34 pm)
Re: crash in kmem_cache_init, Mel Gorman, (Tue Jan 22, 6:50 pm)
Re: crash in kmem_cache_init, Pekka Enberg, (Tue Jan 22, 6:59 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Tue Jan 22, 7:12 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Tue Jan 22, 7:18 pm)
Re: crash in kmem_cache_init, Pekka Enberg, (Wed Jan 23, 4:19 am)
Re: crash in kmem_cache_init, Olaf Hering, (Wed Jan 23, 4:40 am)
Re: crash in kmem_cache_init, Christoph Lameter, (Tue Jan 22, 6:57 pm)
Re: crash in kmem_cache_init, Mel Gorman, (Tue Jan 22, 7:10 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Tue Jan 22, 7:14 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Fri Jan 18, 6:38 pm)
Re: crash in kmem_cache_init, Nish Aravamudan, (Fri Jan 18, 6:19 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Fri Jan 18, 5:43 pm)
Re: crash in kmem_cache_init, Olaf Hering, (Fri Jan 18, 2:56 am)
Re: crash in kmem_cache_init, Christoph Lameter, (Sat Jan 19, 12:55 am)
Re: crash in kmem_cache_init, Christoph Lameter, (Fri Jan 18, 2:42 pm)
Re: crash in kmem_cache_init, Olaf Hering, (Thu Jan 17, 3:54 pm)
Re: crash in kmem_cache_init, Olaf Hering, (Thu Jan 17, 4:20 pm)
Re: crash in kmem_cache_init, Christoph Lameter, (Sat Jan 19, 12:56 am)
Re: crash in kmem_cache_init, Olaf Hering, (Tue Jan 15, 11:58 am)