Re: [PATCH v3] locking/rwsem: Avoid double checking before try acquiring write lock

From: Jason Low
Date: Wed Sep 17 2014 - 12:47:37 EST


On Wed, 2014-09-17 at 11:34 +0200, Davidlohr Bueso wrote:
> On Tue, 2014-09-16 at 17:16 -0700, Jason Low wrote:
> > Commit 9b0fc9c09f1b checks for if there are known active lockers
> > in order to avoid write trylocking using expensive cmpxchg() when
> > it likely wouldn't get the lock.
>
> Ah, I remember you had this one in your queue for some time :)
>
> > However, a subsequent patch was added such that we directly
> > check for sem->count == RWSEM_WAITING_BIAS right before trying
> > that cmpxchg(). Thus, commit 9b0fc9c09f1b now just adds overhead.
> > This patch modifies it so that we only do a check for if
> > count == RWSEM_WAITING_BIAS.
> >
> > Also, add a comment on why we do an "extra check" of count
> > before the cmpxchg().
>
> heh, so people don't try to remove the "redundant" check!

Right, I've already seen at least 1 such patch :)

> > Cc: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
> > Cc: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
>
> Acked-by: Davidlohr Bueso <dave@xxxxxxxxxxxx>

Thanks!

--
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/