diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2020-11-22 15:35:46 +0000 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-12-07 17:12:49 -0700 |
commit | 661d4f55a79483aee4970a76e3bd9d4cdc74ac79 (patch) | |
tree | 2d239a9e27ebd6e016d4c80cca528883ad4bcc5d /include/linux/sbitmap.h | |
parent | b78beea038a3087df63bba7adaacb476a8ca95af (diff) | |
download | lwn-661d4f55a79483aee4970a76e3bd9d4cdc74ac79.tar.gz lwn-661d4f55a79483aee4970a76e3bd9d4cdc74ac79.zip |
sbitmap: remove swap_lock
map->swap_lock protects map->cleared from concurrent modification,
however sbitmap_deferred_clear() is already atomically drains it, so
it's guaranteed to not loose bits on concurrent
sbitmap_deferred_clear().
A one threaded tag heavy test on top of nullbk showed ~1.5% t-put
increase, and 3% -> 1% cycle reduction of sbitmap_get() according to perf.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/sbitmap.h')
-rw-r--r-- | include/linux/sbitmap.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/include/linux/sbitmap.h b/include/linux/sbitmap.h index e40d019c3d9d..74cc6384715e 100644 --- a/include/linux/sbitmap.h +++ b/include/linux/sbitmap.h @@ -32,11 +32,6 @@ struct sbitmap_word { * @cleared: word holding cleared bits */ unsigned long cleared ____cacheline_aligned_in_smp; - - /** - * @swap_lock: Held while swapping word <-> cleared - */ - spinlock_t swap_lock; } ____cacheline_aligned_in_smp; /** |