Re: [PATCH] rwsem: reduce spinlock contention in wakeup code path

From: Ingo Molnar
Date: Tue Oct 01 2013 - 04:26:22 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Tue, Oct 01, 2013 at 09:28:15AM +0200, Ingo Molnar wrote:
>
> > That I mostly agree with, except that without a serious usecase do we
> > have a guarantee that bugs in fancies queueing in rwsems gets ironed
> > out?
>
> Methinks mmap_sem is still a big enough lock to work out a locking
> primitive :-)

I mean the AIM7 usecase probably falls away - we need to find another one
that shows the inefficiencies.

> In fact, try something like this from userspace:
>
> n-threads:
>
> pthread_mutex_lock(&mutex);
> foo = mmap();
> pthread_mutex_lock(&mutex);
>
> /* work */
>
> pthread_mutex_unlock(&mutex);
> munma(foo);
> pthread_mutex_unlock(&mutex);
>
> vs
>
> n-threads:
>
> foo = mmap();
> /* work */
> munmap(foo);
>
>
> I've had reports that the former was significantly faster than the
> latter.

That looks like a legitimate pattern that ought to trigger in many apps.
Would be nice to turn this into a:

perf bench mm thread-create

testcase or so.

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/