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

From: Davidlohr Bueso
Date: Wed Sep 17 2014 - 05:36:51 EST


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!

> Cc: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
> Cc: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>

Acked-by: Davidlohr Bueso <dave@xxxxxxxxxxxx>

> Signed-off-by: Jason Low <jason.low2@xxxxxx>

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