On 2021-08-04 08:23:55 [-0600], Jens Axboe wrote: > Totally untested, but I think the principle is sound. I'll run it through > some testing. This is needed: diff --git a/fs/io-wq.c b/fs/io-wq.c index 1192ee2abd982..77ec6896edaa5 100644 --- a/fs/io-wq.c +++ b/fs/io-wq.c @@ -428,9 +428,9 @@ static struct io_wq_work *io_get_next_work(struct io_wqe *wqe) } if (stall_hash != -1U) { - raw_spin_unlock(&wqe->lock); + raw_spin_unlock_irq(&wqe->lock); io_wait_on_hash(wqe, stall_hash); - raw_spin_lock(&wqe->lock); + raw_spin_lock_irq(&wqe->lock); } return NULL; otherwise the spinlock_t lock in io_wait_on_hash() is acquired with disabled interrupts which is a no-no on -RT. With that it all looks good as far as I can tell. Thank you. Sebastian