Re: [RFC][PATCH] slub: Introduce 'alternate' per cpu partial lists

From: Christopher Lameter
Date: Wed Jul 12 2017 - 10:49:18 EST

On Wed, 14 Jun 2017, Joonsoo Kim wrote:

> > - Some of this code is redundant and can probably be combined.
> > - The fast path is very sensitive and it was suggested I leave it alone. The
> > approach I took means the fastpath cmpxchg always fails before trying the
> > alternate cmpxchg. From some of my profiling, the cmpxchg seemed to be fairly
> > expensive.
> It looks better to modify the fastpath for non-debuging poisoning. If
> we use the jump label, it doesn't cause any overhead to the fastpath
> for the user who doesn't use this feature. It really makes thing
> simpler. Only a few more lines will be needed in the fastpath.
> Christoph, any opinion?

Just looked through it. Sorry was on vacation in Europe for awhile.

The duplication in kmem_cache_cpu is not good performance wise. Maybe just
keep the single per cpu partial list and depending on a kmem_cache flag
change the locking semantics in order to allow for faster debugging?