Messages in this thread | | | Subject | Re: [PATCH-tip v7 12/20] locking/rwsem: Clarify usage of owner's nonspinaable bit | From | Waiman Long <> | Date | Fri, 3 May 2019 11:26:19 -0400 |
| |
On 5/3/19 11:21 AM, Peter Zijlstra wrote: > On Sun, Apr 28, 2019 at 05:25:49PM -0400, Waiman Long wrote: >> Bit 1 of sem->owner (RWSEM_ANONYMOUSLY_OWNED) is used to designate an >> anonymous owner - readers or an anonymous writer. The setting of this >> anonymous bit is used as an indicator that optimistic spinning cannot >> be done on this rwsem. >> >> With the upcoming reader optimistic spinning patches, a reader-owned >> rwsem can be spinned on for a limit period of time. We still need >> this bit to indicate a rwsem is nonspinnable, but not setting this >> bit loses its meaning that the owner is known. So rename the bit >> to RWSEM_NONSPINNABLE to clarify its meaning. >> >> This patch also fixes a DEBUG_RWSEMS_WARN_ON() bug in __up_write(). >> >> Signed-off-by: Waiman Long <longman@redhat.com> >> --- >> include/linux/rwsem.h | 2 +- >> kernel/locking/rwsem.c | 43 +++++++++++++++++++++--------------------- >> 2 files changed, 22 insertions(+), 23 deletions(-) >> >> diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h >> index 148983e21d47..bb76e82398b2 100644 >> --- a/include/linux/rwsem.h >> +++ b/include/linux/rwsem.h >> @@ -50,7 +50,7 @@ struct rw_semaphore { >> }; >> >> /* >> - * Setting bit 1 of the owner field but not bit 0 will indicate >> + * Setting all bits of the owner field except bit 0 will indicate >> * that the rwsem is writer-owned with an unknown owner. >> */ >> #define RWSEM_OWNER_UNKNOWN ((struct task_struct *)-2L) > As you know, I'm trying to kill that :-)
I am planning to remove it once your patch is merged.
Cheers, Longman
| |