Pavel Begunkov b22fa62a35 io_uring: apply worker limits to previous users
Another change to the API io-wq worker limitation API added in 5.15,
apply the limit to all prior users that already registered a tctx. It
may be confusing as it's now, in particular the change covers the
following 2 cases:

TASK1                   | TASK2
_________________________________________________
ring = create()         |
                        | limit_iowq_workers()
*not limited*           |

TASK1                   | TASK2
_________________________________________________
ring = create()         |
                        | issue_requests()
limit_iowq_workers()    |
                        | *not limited*

A note on locking, it's safe to traverse ->tctx_list as we hold
->uring_lock, but do that after dropping sqd->lock to avoid possible
problems. It's also safe to access tctx->io_wq there because tasks
kill it only after removing themselves from tctx_list, see
io_uring_cancel_generic() -> io_uring_clean_tctx()

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/d6e09ecc3545e4dc56e43c906ee3d71b7ae21bed.1634818641.git.asml.silence@gmail.com
Reviewed-by: Hao Xu <haoxu@linux.alibaba.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-10-21 11:19:38 -06:00
..
2021-09-02 09:21:27 -07:00
2021-08-19 09:02:55 +09:00
2021-09-09 16:09:56 -07:00
2021-09-08 15:50:32 -07:00
2021-04-12 15:04:29 +02:00
2021-09-09 11:39:57 -07:00
2021-07-06 11:06:04 -07:00
2021-09-09 11:39:57 -07:00
2021-09-09 11:39:57 -07:00
2021-09-04 10:48:47 -07:00
2021-09-02 12:32:12 -07:00
2021-09-07 12:18:29 -07:00
2021-08-26 22:28:02 +02:00
2021-09-04 10:25:26 -07:00
2021-09-04 10:25:26 -07:00
2021-07-06 20:14:41 -04:00
2021-09-02 15:09:46 -07:00
2021-09-10 09:46:48 -07:00
2021-08-18 22:08:24 +02:00
2021-06-30 12:21:16 -07:00
2021-09-15 13:56:37 -07:00
2021-06-29 10:53:48 -07:00
2021-09-03 15:33:47 -07:00
2021-08-16 10:50:32 -06:00
2021-08-19 09:02:55 +09:00
2021-09-09 11:39:57 -07:00
\n
2021-08-30 10:24:50 -07:00
2021-08-31 11:13:35 -07:00
2021-09-09 13:25:49 -07:00
2021-09-11 14:48:42 -07:00
2021-10-19 17:09:34 -06:00
2021-08-31 11:06:32 -07:00
2021-06-29 10:53:48 -07:00
2021-08-18 22:08:24 +02:00
2021-02-21 11:02:48 -08:00
2021-08-10 17:57:22 +02:00