Re: [PATCH RT 00/02] SLOB optimizations

Ingo Molnar
2005-12-21T07:44:47Z

* Eric Dumazet <dada1@cosmosbay.com> wrote:

> >while it could possibly be cleaned up a bit, it's one of the
> >best-optimized subsystems Linux has. Most of the "unnecessary
> >complexity" in SLAB is related to a performance or a debugging feature.
> >Many times i have looked at the SLAB code in a disassembler, right next
> >to profile output from some hot workload, and have concluded: 'I couldnt
> >do this any better even with hand-coded assembly'.
>
> Well, I miss a version of kmem_cache_alloc()/kmem_cache_free() that
> wont play with IRQ masking.

sure, but adding this sure wont reduce complexity ;)

> The local_irq_save()/local_irq_restore() pair is quite expensive and
> could be avoided for several caches that are exclusively used in
> process context.

in any case, on sane platforms (i386, x86_64) an irq-disable is
well-optimized in hardware, and is just as fast as a preempt_disable().

Combined with the fact that CLI/STI has no register side-effects, it can
even be faster/cheaper, on x86 at least.

Ingo