Messages in this thread | | | Subject | Re: [PATCH] locking/lockdep: Dump state of percpu_rwsem upon hung up. | From | Tetsuo Handa <> | Date | Tue, 10 Jul 2018 19:48:31 +0900 |
| |
On 2018/07/10 18:30, Peter Zijlstra wrote: >> diff --git a/include/linux/rwsem-spinlock.h b/include/linux/rwsem-spinlock.h >> index e475683..1164965 100644 >> --- a/include/linux/rwsem-spinlock.h >> +++ b/include/linux/rwsem-spinlock.h >> @@ -22,7 +22,7 @@ >> * - if wait_list is not empty, then there are processes waiting for the semaphore >> */ >> struct rw_semaphore { >> - __s32 count; >> + atomic_long_t count; > > Uhhh... how does this even build? rwsem-spinlock.c doesn't use > atomic_long primitives to change count.
Sorry, I forgot to build test rwsem-spinlock.c side.
> > And the atomic_long count usage is completely private to rwsem-xadd.c, > nothing outside of that should use that field, ever. >
The reason I made above patch is to make "[PATCH] locking/lockdep: Dump state of percpu_rwsem upon hung up." patch possible to build on x86_64. Although "nothing outside of that should use that field", I want to check "struct rw_semaphore"->count for isolating the problem.
Should I update "[PATCH] locking/lockdep: Dump state of percpu_rwsem upon hung up." side to use "#ifndef CONFIG_RWSEM_GENERIC_SPINLOCK" ?
| |