Re: [PATCH] SLUB use cmpxchg_local

Mathieu Desnoyers
2007-08-22T00:26:26Z

* Christoph Lameter (clameter@sgi.com) wrote:
> On Tue, 21 Aug 2007, Mathieu Desnoyers wrote:
>
> > - Rounding error.. you seem to round at 0.1ms, but I keep the values in
> > cycles. The times that you get (1.1ms) seems strangely higher than
> > mine, which are under 1000 cycles on a 3GHz system (less than 333ns).
> > I guess there is both a ms - ns error there and/or not enough
> > precision in your numbers.
>
> Nope the rounding for output is depending on the amount. Rounds to one
> digit after whatever unit we figured out is best to display.
>
> And multiplications (cyc2ns) do not result in rounding errors.
>

Ok, I see now that the 1.1ms was for the 10000 iterations, which makes
it about 230 ns/iteration for the 10000 times kmalloc(8) = 2.3ms test.

As I am going back through the initial cmpxchg_local implementation, it
seems like it was executing __slab_alloc() with preemption disabled,
which is wrong. new_slab() is not designed for that.

I'll try to run my tests on AMD64.

Mathieu