Re: [GIT PULL] adaptive spinning mutexes

From: Ingo Molnar
Date: Thu Jan 15 2009 - 13:09:25 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> > Has anyone found a non-synthetic benchmark where this makes a
> > significant difference? Aside from btrfs, I mean.
>
> Yea, if you have some particular filesystem (or other subsystem) that
> uses a global mutex, you'll obviously see way more contention. Btrfs may
> not be _unique_ in this regard, but it's definitely doing something that
> isn't good.
>
> Btw, it's doing something that ext3 also used to do iirc, until we fixed
> it to use spinlocks instead (the block group lock in particular).
>
> Yeah - just double-checked. Commit c12b9866ea52 in the historical Linux
> archive, from 2003. Which made block allocation protected by a per-group
> spinlock, rather than lock_super().

btw., i think spin-mutexes have a design advantage here: in a lot of code
areas it's quite difficult to use spinlocks - cannot allocate memory,
cannot call any code that can sporadically block (but does not _normally_
block), etc.

With mutexes those atomicity constraints go away - and the performance
profile should now be quite close to that of spinlocks as well.

Ingo
--
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/