Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > On Mon, Jun 12, 2023 at 9:45 AM Jens Axboe <axboe@xxxxxxxxx> wrote: >> >> You snipped the suspicion in my reply on why that exists, to avoid >> io_wq_worker_sleeping() triggering. > > I'm not seeing why triggering io_wq_worker_sleeping() should even be a > problem in the first place. > > I suspect that is entirely historical too, and has to do with how it > used to do that > > struct io_worker *worker = kthread_data(tsk); > struct io_wqe *wqe = worker->wqe; > > back in the bad old days of kthreads. > > But yeah, I don't know that code. If it is a problem it looks like the thread shutdown can clear "worker->flags & IO_WORKER_F_UP" rather than "current->flags & PF_IO_WORKER". I don't see how it makes sense for the load balancing logic for a per-process thread pool to be running at that point. Eric