Index: linux-2.6.21-rc1/mm/slub.c =================================================================== --- linux-2.6.21-rc1.orig/mm/slub.c 2007-02-26 20:16:29.000000000 -0800 +++ linux-2.6.21-rc1/mm/slub.c 2007-02-26 20:16:47.000000000 -0800 @@ -122,6 +122,7 @@ static struct page *allocate_slab(struct struct page * page; int pages = 1 << s->order; + printk("allocate_slab(%s, %x,%d) order=%d\n",s->name, (unsigned)flags, node, s->order); if (s->order) flags |= __GFP_COMP; @@ -713,6 +714,9 @@ static __always_inline void *__slab_allo local_irq_save(flags); cpu = smp_processor_id(); page = s->cpu_slab[cpu]; + printk(KERN_CRIT "__slab_alloc(%s,%x,%d) cpu=%d page=%p from %p\n", + s->name, (unsigned)gfpflags, node, cpu, page, s->cpu_slab + cpu); + if (!page) goto new_slab; @@ -743,6 +747,7 @@ redo: dump_stack(); } } + printk("return object=%p\n", object); return object; another_slab: @@ -771,6 +776,8 @@ new_slab: slab_lock(page); gotpage: + printk(KERN_ERR "gotpage: page=%p cpu->page=%p\n", + page, s->cpu_slab[cpu]); if (s->cpu_slab[cpu]) { slab_unlock(page); discard_slab(s, page); @@ -1149,6 +1156,7 @@ int kmem_cache_open(struct kmem_cache *s s->size = size; s->order = calculate_order(size); + printk(KERN_ERR "%s size=%d order=%d\n", s->name, size, s->order); if (s->order < 0) goto error;