Re: [PATCH v6 1/1] block/blk-mq: use atomic_t for quiesce_depth to avoid lock contention on RT
Sebastian Andrzej Siewior <[email protected]> Thu, 7 May 2026 09:45:02 +0200
| Newsgroups | org.kernel.vger.linux-rt-users,dev.linux.lists.linux-rt-devel,org.kernel.vger.linux-block,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
On 2026-05-06 11:43:32 [+0200], Bart Van Assche wrote: > On 5/6/26 9:47 AM, Sebastian Andrzej Siewior wrote: > > On 2026-05-06 09:14:33 [+0200], Bart Van Assche wrote: > > > If the atomic_inc() in blk_mq_quiesce_queue_nowait() is protected by > > > hctx->queue->queue_lock then the above code doesn't have to be modified. > > > > But wouldn't the atomic_inc + barrier avoid the need to have the lock? > > Isn't this a normal pattern? If the lock is kept, we could use > > non-atomic ops here then. But this avoids having the lock. > > I strongly prefer a spinlock + non-atomic variables rather than using an > atomic variable and barriers because algorithms that use a spinlock are > easier to verify. Hmmm. If we keep the lock, then there is no need for the atomic and we keep int counter. Then we are where we are right now with the lock synchronizing everything. Isn't this also improving the performance for the !RT case or is it simply not that visible here? > Thanks, > > Bart. Sebastian