Index: linux-2.6.21-rc1/mm/slub.c =================================================================== --- linux-2.6.21-rc1.orig/mm/slub.c 2007-02-27 09:39:04.000000000 -0800 +++ linux-2.6.21-rc1/mm/slub.c 2007-02-27 09:42:25.000000000 -0800 @@ -1113,12 +1113,12 @@ if ((flags & SLAB_POISON) && ((flags & SLAB_DESTROY_BY_RCU) || s->ctor || s->dtor)) { -// if (slub_debug & SLAB_POISON) + if (!(slub_debug & SLAB_POISON)) printk(KERN_WARNING "SLUB %s: Reset SLAB_POISON " "because de/constructor exists.\n", - s->name); + name); + flags &= ~SLAB_POISON; } - flags &= ~SLAB_POISON; s->name = name; s->ctor = ctor; @@ -1595,6 +1595,10 @@ if (slub_nomerge || (flags & SLUB_NEVER_MERGE)) return NULL; + if (size == 32) { + printk("Refusing to merge\n"); + return NULL; + } down_read(&slabstat_sem); list_for_each(h, &slab_caches) { struct kmem_cache *s = @@ -1618,6 +1622,7 @@ { struct kmem_cache *s = NULL; + printk(KERN_ERR "kmem_cache_create(%s, %d, %d, %lx)\n", name, (int)size,(int)align,flags); if (!ctor && !dtor) s = find_mergeable( ALIGN(size, calculate_alignment(flags, align)),