Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex

Peter Zijlstra
2011-06-15T11:43:06Z

On Wed, 2011-06-15 at 12:58 +0200, Peter Zijlstra wrote:
> On Wed, 2011-06-15 at 12:36 +0200, Peter Zijlstra wrote:
> > On Tue, 2011-06-14 at 17:29 -0700, Tim Chen wrote:
> > > MOSBENCH test suite.
> >
> > Argh, I'm trying to get this thing to run, but its all snake poo..
> >
> > /me takes up a heavy club and goes snake hunting, should make a pretty
> > hat or something.
>
> Sweet, I've got meself a snake-skin hat!
>
> The first thing that stood out when running it was:
>
> 31694 root 20 0 26660 1460 1212 S 17.5 0.0 0:01.97 exim
> 7 root -2 19 0 0 0 S 12.7 0.0 0:06.14 rcuc0
> 24 root -2 19 0 0 0 S 11.7 0.0 0:04.15 rcuc3
> 34 root -2 19 0 0 0 S 11.7 0.0 0:04.10 rcuc5
> 39 root -2 19 0 0 0 S 11.7 0.0 0:06.38 rcuc6
> 44 root -2 19 0 0 0 S 11.7 0.0 0:04.53 rcuc7
> 49 root -2 19 0 0 0 S 11.7 0.0 0:04.11 rcuc8
> 79 root -2 19 0 0 0 S 11.7 0.0 0:03.91 rcuc14
> 89 root -2 19 0 0 0 S 11.7 0.0 0:03.90 rcuc16
> 110 root -2 19 0 0 0 S 11.7 0.0 0:03.90 rcuc20
> 120 root -2 19 0 0 0 S 11.7 0.0 0:03.82 rcuc22
> 13 root -2 19 0 0 0 S 10.7 0.0 0:04.37 rcuc1
> 19 root -2 19 0 0 0 S 10.7 0.0 0:04.19 rcuc2
> 29 root -2 19 0 0 0 S 10.7 0.0 0:04.12 rcuc4
> 54 root -2 19 0 0 0 S 10.7 0.0 0:04.11 rcuc9
> 59 root -2 19 0 0 0 S 10.7 0.0 0:04.40 rcuc10
> 64 root -2 19 0 0 0 R 10.7 0.0 0:04.17 rcuc11
> 69 root -2 19 0 0 0 R 10.7 0.0 0:04.23 rcuc12
> 84 root -2 19 0 0 0 S 10.7 0.0 0:03.90 rcuc15
> 95 root -2 19 0 0 0 S 10.7 0.0 0:03.99 rcuc17
> 100 root -2 19 0 0 0 S 10.7 0.0 0:03.88 rcuc18
> 105 root -2 19 0 0 0 S 10.7 0.0 0:04.14 rcuc19
> 125 root -2 19 0 0 0 S 10.7 0.0 0:03.79 rcuc23
> 74 root -2 19 0 0 0 S 9.7 0.0 0:04.33 rcuc13
> 115 root -2 19 0 0 0 R 9.7 0.0 0:03.82 rcuc21
>
> Which is an impressive amount of RCU usage..

FWIW, Alex Shi's patch:

http://lkml.kernel.org/r/1308029185.15392.147.camel@sli10-conroe

Improves the situation to:

3745 root 20 0 26664 1460 1212 S 18.5 0.0 0:01.28 exim
39 root -2 19 0 0 0 S 4.9 0.0 0:02.83 rcuc6
105 root -2 19 0 0 0 S 4.9 0.0 0:02.79 rcuc19
7 root -2 19 0 0 0 S 3.9 0.0 0:02.70 rcuc0
13 root -2 19 0 0 0 S 3.9 0.0 0:02.54 rcuc1
19 root -2 19 0 0 0 S 3.9 0.0 0:02.76 rcuc2
24 root -2 19 0 0 0 S 3.9 0.0 0:02.75 rcuc3
...

And throughput increases like:

-tip 260.092 messages/sec/core
-tip+sirq-rcu 271.078 messages/sec/core