Re: [PATCH] security, keys: Optimize barrier usage for Rmw atomic bitops
From: Davidlohr Bueso <dave@stgolabs.net>
Date: 2020-03-20 17:10:06
Also in:
lkml
From: Davidlohr Bueso <dave@stgolabs.net>
Date: 2020-03-20 17:10:06
Also in:
lkml
ping? On Wed, 29 Jan 2020, Davidlohr Bueso wrote:
For both set and clear_bit, we can avoid the unnecessary barriers on non LL/SC architectures, such as x86. Instead, use the smp_mb__{before,after}_atomic() calls. Signed-off-by: Davidlohr Bueso <redacted> --- security/keys/gc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/security/keys/gc.c b/security/keys/gc.c index 671dd730ecfc..ce7b4c22e3c4 100644 --- a/security/keys/gc.c +++ b/security/keys/gc.c@@ -102,7 +102,7 @@ void key_gc_keytype(struct key_type *ktype)key_gc_dead_keytype = ktype; set_bit(KEY_GC_REAPING_KEYTYPE, &key_gc_flags); - smp_mb(); + smp_mb__after_atomic(); set_bit(KEY_GC_REAP_KEYTYPE, &key_gc_flags); kdebug("schedule");@@ -308,7 +308,7 @@ static void key_garbage_collector(struct work_struct *work)if (unlikely(gc_state & KEY_GC_REAPING_DEAD_3)) { kdebug("dead wake"); - smp_mb(); + smp_mb__before_atomic(); clear_bit(KEY_GC_REAPING_KEYTYPE, &key_gc_flags); wake_up_bit(&key_gc_flags, KEY_GC_REAPING_KEYTYPE); } -- 2.16.4