[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171011193628.xvapnggpqci3v6cr@hirez.programming.kicks-ass.net>
Date: Wed, 11 Oct 2017 21:36:28 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Waiman Long <longman@...hat.com>
Cc: Ingo Molnar <mingo@...hat.com>, linux-kernel@...r.kernel.org,
x86@...nel.org, linux-alpha@...r.kernel.org,
linux-ia64@...r.kernel.org, linux-s390@...r.kernel.org,
linux-arch@...r.kernel.org, Davidlohr Bueso <dave@...olabs.net>,
Dave Chinner <david@...morbit.com>
Subject: Re: [PATCH v6 02/11] locking/rwsem: Implement a new locking scheme
On Wed, Oct 11, 2017 at 02:58:02PM -0400, Waiman Long wrote:
> On 10/11/2017 02:40 PM, Peter Zijlstra wrote:
> > So I implemented rwsem-mutex (also qrwlock based) that puts
> >
> > (unsigned long)current | RWSEM_WRITER
> >
> > in the atomic_long_t rw_semaphore::owner field. The down-side is that
> > you can't do fetch_add based __down_read, because that would clobber the
> > pointer. The up-side is that we have a stable owner pointer (which is
> > what I needed for PI like things).
>
> Without fetch_add for readers, it could lead to reduced performance for
> reader heavy workloads.
Yeah I know.. :-)
> Are you trying to do a PI version of rwsem? It can work when the lock is
> writer owned, but not when it is reader owned.
Not classical PI; there's one of those in -rt btw:
https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/tree/kernel/locking/rwsem-rt.c?h=linux-4.11.y-rt
I'm implementing proxy-execution (or rather, playing with it in a few
spare moments here and there). But yes, it will only be able to boost
write owners. But in order to make that happen I need the lock state and
owner thing in the same field, like mutex.
In any case, I'll try and have a look at these patches.
Powered by blists - more mailing lists