From: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> Subject: mm/frontswap.c: use non-atomic '__set_bit()' when possible the 'a' and 'b' bitmaps are local to this function, so no concurrent access can occur. So the non-atomic '__set_bit()' can be used to save a few cycles. Link: https://lkml.kernel.org/r/e52476da5cee57151745c5c3c934a69798dc6fa4.1638132190.git.christophe.jaillet@xxxxxxxxxx Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/frontswap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/mm/frontswap.c~mm-mempool-use-non-atomic-__set_bit-when-possible +++ a/mm/frontswap.c @@ -127,7 +127,7 @@ void frontswap_register_ops(struct front spin_lock(&swap_lock); plist_for_each_entry(si, &swap_active_head, list) { if (!WARN_ON(!si->frontswap_map)) - set_bit(si->type, a); + __set_bit(si->type, a); } spin_unlock(&swap_lock); @@ -149,7 +149,7 @@ void frontswap_register_ops(struct front spin_lock(&swap_lock); plist_for_each_entry(si, &swap_active_head, list) { if (si->frontswap_map) - set_bit(si->type, b); + __set_bit(si->type, b); } spin_unlock(&swap_lock); _