Re: [PATCH] SLUB use cmpxchg_local

From: Mathieu Desnoyers
Date: Mon Aug 27 2007 - 17:51:53 EST


* Christoph Lameter (clameter@xxxxxxx) wrote:
> On Mon, 27 Aug 2007, Mathieu Desnoyers wrote:
>
> > > a clean solution source code wise. It also minimizes the interrupt holdoff
> > > for the non-cmpxchg_local arches. However, it means that we will have to
> > > disable interrupts twice for the slow path. If that is too expensive then
> > > we need a different solution.
> > >
> >
> > cmpxchg_local is not used on the slow path... ?
>
> Right.
>
> > Did you meant:
> >
> > it means that we will have to disable preemption _and_ interrupts on the
> > fast path for non-cmpxchg_local arches ?
>
> We would have to disable preemption and interrupts once on the fast path.
> The interrupt holdoff would just be a couple of instructions.
>

Right.

> The slow path would require disable preemption and two interrupt disables.
>

If the slow path have to call new_slab, then yes. But it seems that not
every slow path must call it, so for the other slow paths, only one
interrupt disable would be required.

> Question is if this makes sense performance wise. If not then we may have
> to look at more complicated schemes.
>

Yep, such as the arch_have_cmpxchg() macro that I proposed, but it
really hurts my eyes... :(

Mathieu

--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/