io_uring/io-wq: don't gate worker wake up success on wake_up_process()
authorJens Axboe <axboe@kernel.dk>
Wed, 9 Aug 2023 19:07:54 +0000 (13:07 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 11 Aug 2023 16:36:20 +0000 (10:36 -0600)
commit22f7fb80e6d91980785d235dc939695d3a271c3b
treeb13719ddcc44d9020eb94b6805b9dada0cec6d23
parentde36a15f9a3842be24ca220060b77925f2f5435b
io_uring/io-wq: don't gate worker wake up success on wake_up_process()

All we really care about is finding a free worker. If said worker is
already running, it's either starting new work already or it's just
finishing up existing work. For the latter, we'll be finding this work
item next anyway, and for the former, if the worker does go to sleep,
it'll create a new worker anyway as we have pending items.

This reduces try_to_wake_up() overhead considerably:

23.16%    -10.46%  [kernel.kallsyms]      [k] try_to_wake_up

Reviewed-by: Hao Xu <howeyxu@tencent.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io-wq.c