summaryrefslogtreecommitdiff
path: root/lib/vdso
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2023-01-09 14:46:09 +0000
committerJens Axboe <axboe@kernel.dk>2023-01-29 15:17:40 -0700
commitbca39f39058567643487cd654970717705784ba3 (patch)
tree1f0282a4e401c5c06e453d3c0605588e89045f63 /lib/vdso
parent7b235dd82ad32c1626e51303d94ec5ef4d7bc994 (diff)
downloadlwn-bca39f39058567643487cd654970717705784ba3.tar.gz
lwn-bca39f39058567643487cd654970717705784ba3.zip
io_uring: add lazy poll_wq activation
Even though io_poll_wq_wake()'s waitqueue_active reuses a barrier we do for another waitqueue, it's not going to be the case in the future and so we want to have a fast path for it when the ring has never been polled. Move poll_wq wake ups into __io_commit_cqring_flush() using a new flag called ->poll_activated. The idea behind the flag is to set it when the ring was polled for the first time. This requires additional sync to not miss events, which is done here by using task_work for ->task_complete rings, and by default enabling the flag for all other types of rings. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/060785e8e9137a920b232c0c7f575b131af19cac.1673274244.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'lib/vdso')
0 files changed, 0 insertions, 0 deletions