[PATCH v2 0/2] optimise blk_try_enter_queue()

From: Pavel Begunkov
Date: Thu Oct 21 2021 - 09:31:01 EST


Kill extra rcu_read_lock/unlock() pair in blk_try_enter_queue().
Testing with io_uring (high batching) with nullblk:

Before:
3.20% io_uring [kernel.vmlinux] [k] __rcu_read_unlock
3.05% io_uring [kernel.vmlinux] [k] __rcu_read_lock

After:
2.52% io_uring [kernel.vmlinux] [k] __rcu_read_unlock
2.28% io_uring [kernel.vmlinux] [k] __rcu_read_lock

Doesn't necessarily translates into 1.4% perfofrmance improvement
but nice to have.

v2: rcu_read_lock_held() warning (Tejun)

Pavel Begunkov (2):
percpu_ref: percpu_ref_tryget_live() version holding RCU
block: kill extra rcu lock/unlock in queue enter

block/blk-core.c | 2 +-
include/linux/percpu-refcount.h | 33 +++++++++++++++++++++++----------
2 files changed, 24 insertions(+), 11 deletions(-)

--
2.33.1