Yet another version of the percpu-rwsem rewrite..
This one (ab)uses the waitqueue in an entirely different and unique way, but no
longer shares it like it did. It retains the use of rcuwait for the
writer-waiting-for-readers-to-complete condition.
This one should be FIFO fair with writer-stealing.
It seems to pass locktorture torture_type=percpu_rwsem_lock. But as always,
this stuff is tricky, please look carefully.
Hi,
On 13/11/19 11:21, Peter Zijlstra wrote:
> Yet another version of the percpu-rwsem rewrite..
>
> This one (ab)uses the waitqueue in an entirely different and unique way, but no
> longer shares it like it did. It retains the use of rcuwait for the
> writer-waiting-for-readers-to-complete condition.
>
> This one should be FIFO fair with writer-stealing.
>
> It seems to pass locktorture torture_type=percpu_rwsem_lock. But as always,
> this stuff is tricky, please look carefully.
Backported this series to v5.2.21-rt13.
locktorture looks good (running for several hours) and DEBUG_LOCKS splat
[1] not reproducible anymore.
Tested-by: Juri Lelli <[email protected]>
Thanks!
Juri
1 - https://lore.kernel.org/lkml/[email protected]/