[PATCH for-next 0/2] optimise sbitmap deferred clear

From: Pavel Begunkov
Date: Fri Nov 20 2020 - 19:04:35 EST


In short, sbitmap_deferred_clear() lights up pretty much in my profiler,
so these optimisations gave me ~1% more t-put. All the heavy stuff is in
[2/2]. Would love someones eye to check it.

I also want to replace cmpxchg() in that function with a single
atomic and, that's slightly lighter and also transfers it from
lock-free to wait-free, that's pretty neat.
The problem is that apparently there is a non-atomic_t atomic and,
and atomic_t is unsigned int but all the bitmap do unsigned long.
Advice is welcome.

Pavel Begunkov (2):
sbitmap: optimise sbitmap_deferred_clear()
sbitmap: remove swap_lock

include/linux/sbitmap.h | 5 -----
lib/sbitmap.c | 21 +++++++--------------
2 files changed, 7 insertions(+), 19 deletions(-)

--
2.24.0