Re: [Bugme-new] [Bug 15618] New: 2.6.18->2.6.32->2.6.33 hugeregression in performance

From: Ingo Molnar
Date: Tue Mar 23 2010 - 14:00:26 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Tue, 23 Mar 2010, Ingo Molnar wrote:
> >
> > It shows a very brutal amount of page fault invoked mmap_sem spinning
> > overhead.
>
> Isn't this already fixed? It's the same old "x86-64 rwsemaphores are using
> the shit-for-brains generic version" thing, and it's fixed by
>
> 1838ef1 x86-64, rwsem: 64-bit xadd rwsem implementation
> 5d0b723 x86: clean up rwsem type system
> 59c33fa x86-32: clean up rwsem inline asm statements

Ah, indeed!

> NOTE! None of those are in 2.6.33 - they were merged afterwards. But they
> are in 2.6.34-rc1 (and obviously current -git). So Anton would have to
> compile his own kernel to test his load.

another option is to run the rawhide kernel via something like:

yum update --enablerepo=development kernel

this will give kernel-2.6.34-0.13.rc1.git1.fc14.x86_64, which has those
changes included.

OTOH that kernel has debugging [lockdep] enabled so it might not be
comparable.

> We could mark them as stable material if the load in question is a real load
> rather than just a test-case. On one of the random page-fault benchmarks the
> rwsem fix was something like a 400% performance improvement, and it was
> apparently visible in real life on some crazy SGI "initialize huge heap
> concurrently on lots of threads" load.
>
> Side note: the reason the spinlock sucks is because of the fair ticket
> locks, it really does all the wrong things for the rwsem code. That's why
> old kernels don't show it - the old unfair locks didn't show the same kind
> of behavior.

Yeah.

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/