Re: [RFC PATCH-tip v4 07/10] locking/rwsem: Change RWSEM_WAITING_BIAS for better disambiguation

From: Waiman Long
Date: Fri Aug 19 2016 - 12:22:18 EST


On 08/19/2016 01:57 AM, Wanpeng Li wrote:
2016-08-19 5:11 GMT+08:00 Waiman Long<Waiman.Long@xxxxxxx>:
When the count value is in between 0 and RWSEM_WAITING_BIAS, there
are 2 possibilities.
Either a writer is present and there is no waiter
count = 0xffff0001

or there are waiters and readers. There is no easy way to
count = 0xffff000X

However, RWSEM_WAITING_BIAS is equal to 0xffff0000, so both these two
cases are beyond RWSEM_WAITING_BIAS, right?

Regards,
Wanpeng Li

Perhaps I should make it clear that I am talking from a signed quantity point of view (it is an atomic_long_t). So

RWSEM_WAITING_BIAS < RWSEM_ACTIVE_WRITE_BIAS < 0

Hope this clarify your question.

Cheers,
Longman