Index: linux-2.6.21-mm1/mm/slub.c =================================================================== --- linux-2.6.21-mm1.orig/mm/slub.c 2007-05-07 16:55:41.000000000 -0700 +++ linux-2.6.21-mm1/mm/slub.c 2007-05-07 17:08:12.000000000 -0700 @@ -1354,6 +1354,7 @@ static void *__slab_alloc(struct kmem_ca void **object; int cpu = smp_processor_id(); + printk(KERN_CRIT "__slab_alloc(%s, %x,%d,%p,%p)\n", s->name, gfpflags, node, addr, page); if (!page) goto new_slab; @@ -1370,6 +1371,7 @@ load_freelist: object = page->freelist; page->cpu_freelist = object[page->offset]; page->inuse = s->objects; + page->freelist = NULL; slab_unlock(page); return object; @@ -2457,6 +2459,7 @@ void __init kmem_cache_init(void) */ static int slab_unmergeable(struct kmem_cache *s) { + printk(KERN_CRIT "slab_unmergeable(%s)\n", s->name); if (slub_nomerge || (s->flags & SLUB_NEVER_MERGE)) return 1; @@ -2473,6 +2476,8 @@ static struct kmem_cache *find_mergeable { struct list_head *h; + printk("find_mergeable(%d,%d,%x)\n", size, align, flags); + if (slub_nomerge || (flags & SLUB_NEVER_MERGE)) return NULL; @@ -2518,6 +2523,7 @@ struct kmem_cache *kmem_cache_create(con { struct kmem_cache *s; + printk(KERN_CRIT "kmem_cache_create(%s, %d, %d)\n", name, size, align); down_write(&slub_lock); s = find_mergeable(size, align, flags, dtor, ctor); if (s) {