mbox series

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

Message ID cover.1605908165.git.asml.silence@gmail.com (mailing list archive)
Headers show
Series optimise sbitmap deferred clear | expand

Message

Pavel Begunkov Nov. 21, 2020, 12:01 a.m. UTC
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(-)