On ma, 2016-01-25 at 17:15 -0800, Laura Abbott wrote: > --- a/init/Kconfig > +++ b/init/Kconfig > +config SLUB_DEBUG_FASTPATH > + bool "Allow SLUB debugging to utilize the fastpath" > + depends on SLUB_DEBUG > + help > + SLUB_DEBUG forces all allocations to utilize the slow path which > + is a performance penalty. Turning on this option lets the debugging > + use the fast path. This helps the performance when debugging > + features are turned on. If you aren't planning on utilizing any > + of the SLUB_DEBUG features, you should say N here. > + > + If unsure, say N > --- a/mm/slub.c > +++ b/mm/slub.c > +#ifdef SLUB_DEBUG_FASTPATH I have no clue what your patch does, but I could spot this should probably be #ifdef CONFIG_SLUB_DEBUG_FASTPATH > +static noinline int alloc_debug_processing_fastpath(struct kmem_cache > *s, > + struct kmem_cache_cpu *c, > + struct page *page, > + void *object, unsigned long > tid, > + unsigned long addr) > +{ > + unsigned long flags; > + int ret = 0; > + > + preempt_disable(); > + local_irq_save(flags); > + > + /* > + * We've now disabled preemption and IRQs but we still need > + * to check that this is the right CPU > + */ > + if (!this_cpu_cmpxchg_double(s->cpu_slab->freelist, s > ->cpu_slab->tid, > + c->freelist, tid, > + c->freelist, tid)) > + goto out; > + > + ret = alloc_debug_processing(s, page, object, addr); > + > +out: > + local_irq_restore(flags); > + preempt_enable(); > + return ret; > +} > +#else > +static noinline int alloc_debug_processing_fastpath(struct kmem_cache > *s, > + struct kmem_cache_cpu *c, > + struct page *page, > + void *object, unsigned long > tid, > + unsigned long addr) > +{ > + return 1; > +} > +#endif Thanks, Paul Bolle -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>