Re: [PATCH v8 0/9] rwsem performance optimizations

From: Ingo Molnar
Date: Thu Oct 10 2013 - 03:55:02 EST



* Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx> wrote:

> The throughput of pure mmap with mutex is below vs pure mmap is below:
>
> % change in performance of the mmap with pthread-mutex vs pure mmap
> #threads vanilla all rwsem without optspin
> patches
> 1 3.0% -1.0% -1.7%
> 5 7.2% -26.8% 5.5%
> 10 5.2% -10.6% 22.1%
> 20 6.8% 16.4% 12.5%
> 40 -0.2% 32.7% 0.0%
>
> So with mutex, the vanilla kernel and the one without optspin both run
> faster. This is consistent with what Peter reported. With optspin, the
> picture is more mixed, with lower throughput at low to moderate number
> of threads and higher throughput with high number of threads.

So, going back to your orignal table:

> % change in performance of the mmap with pthread-mutex vs pure mmap
> #threads vanilla all without optspin
> 1 3.0% -1.0% -1.7%
> 5 7.2% -26.8% 5.5%
> 10 5.2% -10.6% 22.1%
> 20 6.8% 16.4% 12.5%
> 40 -0.2% 32.7% 0.0%
>
> In general, vanilla and no-optspin case perform better with
> pthread-mutex. For the case with optspin, mmap with pthread-mutex is
> worse at low to moderate contention and better at high contention.

it appears that 'without optspin' appears to be a pretty good choice - if
it wasn't for that '1 thread' number, which, if I correctly assume is the
uncontended case, is one of the most common usecases ...

How can the single-threaded case get slower? None of the patches should
really cause noticeable overhead in the non-contended case. That looks
weird.

It would also be nice to see the 2, 3, 4 thread numbers - those are the
most common contention scenarios in practice - where do we see the first
improvement in performance?

Also, it would be nice to include a noise/sttdev figure, it's really hard
to tell whether -1.7% is statistically significant.

Thanks,

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/