]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: force creation of separate context for ATTACH_WQ and non-threads
authorJens Axboe <axboe@kernel.dk>
Thu, 11 Mar 2021 17:17:56 +0000 (10:17 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 11 Mar 2021 17:17:56 +0000 (10:17 -0700)
commiteecf9569d7f9a4dc530e41a8f4e1dff67b3ab7c2
tree0e982ab8c04605a4fa42933b3e7a1567ae957830
parent00b48ef11e0bf1e46a9b105a2c2b4f4a2af6ff00
io_uring: force creation of separate context for ATTACH_WQ and non-threads

Earlier kernels had SQPOLL threads that could share across anything, as
we grabbed the context we needed on a per-ring basis. This is no longer
the case, so only allow attaching directly if we're in the same thread
group. That is the common use case. For non-group tasks, just setup a
new context and thread as we would've done if sharing wasn't set. This
isn't 100% ideal in terms of CPU utilization for the forked and share
case, but hopefully that isn't much of a concern. If it is, there are
plans in motion for how to improve that. Most importantly, we want to
avoid app side regressions where sharing worked before and now doesn't.
With this patch, functionality is equivalent to previous kernels that
supported IORING_SETUP_ATTACH_WQ with SQPOLL.

Reported-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c