[PATCH 0/4] io-wq/io_uring locking optimisation

From: Pavel Begunkov
Date: Wed Mar 04 2020 - 08:15:15 EST


[1-3] are shedding excessive locking of @wqe's and @worker's spinlocks
from io_worker_handle_work().

[4] removes an extra pair of refcount get/put by making former io_put_work()
to own the submission reference. It also changes io-wq get/put API
and renames io_put_work() into io_free_work() to reflect it.

Pavel Begunkov (4):
io-wq: shuffle io_worker_handle_work() code
io-wq: optimise locking in io_worker_handle_work()
io-wq: optimise out *next_work() double lock
io_uring/io-wq: forward submission ref to async

fs/io-wq.c | 148 ++++++++++++++++++++++++++------------------------
fs/io-wq.h | 6 +-
fs/io_uring.c | 31 ++++-------
3 files changed, 90 insertions(+), 95 deletions(-)

--
2.24.0