Re: [PATCH v4 3/5] locking/rwsem: Don't wake up one's own task

From: Waiman Long
Date: Wed May 18 2016 - 12:04:26 EST


On 05/18/2016 06:30 AM, Peter Zijlstra wrote:
On Tue, May 17, 2016 at 09:26:21PM -0400, Waiman Long wrote:
As rwsem_down_read_failed() will queue itself and potentially call
__rwsem_do_wake(sem, RWSEM_WAKE_ANY), it is possible that a reader
will try to wake up its own task. This patch adds a check to make
sure that this won't happen.

Yes, this is 'weird', but why are we fixing it at the cost of an extra
branch?

I think I should have put an unlikely tag there. Anyway, the cost of an extra branch should be pretty small compared with all the task wakeup work that have to be done. If you think this is necessary, I am totally fine for scrapping it.

Cheers,
Longman