Re: [GIT PULL] adaptive spinning mutexes

Linus Torvalds
2009-01-15T18:05:11Z

On Thu, 15 Jan 2009, Matthew Wilcox wrote:
>
> I asked a couple of our benchmarking teams to try -v9. Neither the OLTP
> benchmark, nor the kernel-perf test suite found any significant
> performance change. I suspect mutex contention isn't a significant
> problem for most workloads.

We've been very good about spreading out mutexes. The normal kernel really
only does it for write accesses to the same directory, and readdir().
Almost everything else is totally in the noise.

I think Ingo's benchmark essentially tests exactly that "write to same
directory" case, and little else.

Unless:

> 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().

Linus