io-wq: split bounded and unbounded work into separate lists
We've got a few issues that all boil down to the fact that we have one
list of pending work items, yet two different types of workers to
serve them. This causes some oddities around workers switching type and
even hashed work vs regular work on the same bounded list.
Just separate them out cleanly, similarly to how we already do
accounting of what is running. That provides a clean separation and
removes some corner cases that can cause stalls when handling IO
that is punted to io-wq.
Fixes: ecc53c48c13d ("io-wq: check max_worker limits if a worker transitions bound state")
Signed-off-by: Jens Axboe <email address hidden>
Other io_uring related patches where backported here even without being
in linux-stable/linux-5.14.y. So why is this missing?
Why is this commit not included here?
commit f95dc207b93da9c 88ddbb7741ec373 0c6657b88e
Author: Jens Axboe <email address hidden>
AuthorDate: Tue Aug 31 13:57:32 2021 -0600
Commit: Jens Axboe <email address hidden>
CommitDate: Wed Sep 1 12:35:30 2021 -0600
io-wq: split bounded and unbounded work into separate lists
We've got a few issues that all boil down to the fact that we have one
list of pending work items, yet two different types of workers to
serve them. This causes some oddities around workers switching type and
even hashed work vs regular work on the same bounded list.
Just separate them out cleanly, similarly to how we already do
accounting of what is running. That provides a clean separation and
removes some corner cases that can cause stalls when handling IO
that is punted to io-wq.
Fixes: ecc53c48c13d ("io-wq: check max_worker limits if a worker transitions bound state")
Signed-off-by: Jens Axboe <email address hidden>
Other io_uring related patches where backported here even without being linux-5. 14.y. So why is this missing?
in linux-stable/
See also https:/ /bugs.launchpad .net/ubuntu/ +source/ linux/+ bug/1952222