io_uring: batch task_work
authorDylan Yudaken <dylany@fb.com>
Wed, 22 Jun 2022 13:40:25 +0000 (06:40 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 25 Jul 2022 00:39:15 +0000 (18:39 -0600)
commit3a0c037b0e16e38cf5d36d2ebc259e0ae644aaf4
tree732709a212417c60ee42eabc36859d59538f2ac3
parent923d159247b732885b176b24e4bafad8eda5a477
io_uring: batch task_work

Batching task work up is an important performance optimisation, as
task_work_add is expensive.

In order to keep the semantics replace the task_list with a fake node
while processing the old list, and then do a cmpxchg at the end to see if
there is more work.

Signed-off-by: Dylan Yudaken <dylany@fb.com>
Link: https://lore.kernel.org/r/20220622134028.2013417-6-dylany@fb.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c