Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sun, 26 Feb 2023 17:51:07 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH 3/6] locking/rwsem: Rework writer wakeup |
| |
On Sun, Feb 26, 2023 at 04:04:35PM +0100, Peter Zijlstra wrote: > On Thu, Feb 23, 2023 at 01:26:45PM +0100, Peter Zijlstra wrote: > > @@ -1072,7 +1067,7 @@ rwsem_down_read_slowpath(struct rw_semap > > for (;;) { > > set_current_state(state); > > if (!smp_load_acquire(&waiter.task)) { > > - /* Matches rwsem_mark_wake()'s smp_store_release(). */ > > + /* Matches rwsem_waiter_wake()'s smp_store_release(). */ > > break; > > } > > if (signal_pending_state(state, current)) { > > @@ -1143,54 +1138,36 @@ rwsem_down_write_slowpath(struct rw_sema > > } else { > > atomic_long_or(RWSEM_FLAG_WAITERS, &sem->count); > > Found it; if we remove the try_write_lock below, then at least this > new-waiter path needs to still do a trylock. > > Let me go test the other patches on top of all this and push out a fresh > set if that all still works.
queue.git locking/core
We'll see what the robots make of it.
| ![\](/images/icornerr.gif) |