summaryrefslogtreecommitdiffstats
path: root/include/linux/sbitmap.h
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2020-11-22 15:35:46 +0000
committerJens Axboe <axboe@kernel.dk>2020-12-07 17:12:49 -0700
commit661d4f55a79483aee4970a76e3bd9d4cdc74ac79 (patch)
tree2d239a9e27ebd6e016d4c80cca528883ad4bcc5d /include/linux/sbitmap.h
parentb78beea038a3087df63bba7adaacb476a8ca95af (diff)
downloadlinux-661d4f55a79483aee4970a76e3bd9d4cdc74ac79.tar.bz2
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.h5
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;
/**