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