Re: kernel BUG in __cache_alloc_node at linux-2.6.git/mm/slab.c:3177!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here is patch to add some printk to try to figure out what is going on. 
Run with this and send me the console output leading up to the failure.


Index: linux-2.6.19-rc2-mm1/mm/slab.c
===================================================================
--- linux-2.6.19-rc2-mm1.orig/mm/slab.c	2006-10-17 18:43:47.000000000 -0500
+++ linux-2.6.19-rc2-mm1/mm/slab.c	2006-10-18 16:47:42.904912835 -0500
@@ -2005,6 +2005,7 @@ static int setup_cpu_cache(struct kmem_c
 		return enable_cpucache(cachep);
 
 	if (g_cpucache_up == NONE) {
+		printk(KERN_CRIT "setup_cpu_cache: NONE\n");
 		/*
 		 * Note: the first kmem_cache_create must create the cache
 		 * that's used by kmalloc(24), otherwise the creation of
@@ -2023,6 +2024,7 @@ static int setup_cpu_cache(struct kmem_c
 		else
 			g_cpucache_up = PARTIAL_AC;
 	} else {
+		printk(KERN_CRIT "setup_cpu_cache: PARTIAL\n");
 		cachep->array[smp_processor_id()] =
 			kmalloc(sizeof(struct arraycache_init), GFP_KERNEL);
 
@@ -2219,6 +2221,7 @@ kmem_cache_create (const char *name, siz
 	align = ralign;
 
 	/* Get cache's description obj. */
+	printk(KERN_CRIT "Get cache descritor\n");
 	cachep = kmem_cache_zalloc(&cache_cache, SLAB_KERNEL);
 	if (!cachep)
 		goto oops;
@@ -3082,6 +3085,7 @@ static inline void *____cache_alloc(stru
 	void *objp;
 	struct array_cache *ac;
 
+	printk(KERN_CRIT "__cache_alloc\n");
 	check_irq_off();
 	ac = cpu_cache_get(cachep);
 	if (likely(ac->avail)) {
@@ -3135,6 +3139,7 @@ static void *alternate_node_alloc(struct
 {
 	int nid_alloc, nid_here;
 
+	printk(KERN_CRIT "alternate_node_alloc\n");
 	if (in_interrupt() || (flags & __GFP_THISNODE))
 		return NULL;
 	nid_alloc = nid_here = numa_node_id();
@@ -3160,6 +3165,7 @@ void *fallback_alloc(struct kmem_cache *
 	struct zone **z;
 	void *obj = NULL;
 
+	printk(KERN_CRIT "fallback_alloc\n");
 	for (z = zonelist->zones; *z && !obj; z++)
 		if (zone_idx(*z) <= ZONE_NORMAL &&
 				cpuset_zone_allowed(*z, flags))
@@ -3181,6 +3187,8 @@ static void *__cache_alloc_node(struct k
 	void *obj;
 	int x;
 
+	printk("__cache_alloc_node %d\n", nodeid);
+
 	l3 = cachep->nodelists[nodeid];
 	BUG_ON(!l3);
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux