All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] locking/percpu-rwsem: Annotate intentional data race in readers_active_check()
@ 2026-06-23  9:34 Sun Shaojie
  2026-06-23  9:44 ` Peter Zijlstra
  0 siblings, 1 reply; 4+ messages in thread
From: Sun Shaojie @ 2026-06-23  9:34 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Will Deacon, Boqun Feng, Waiman Long
  Cc: linux-kernel, Sun Shaojie

KCSAN reports a data race in readers_active_check():

  BUG: KCSAN: data-race in readers_active_check / percpu_down_write

  race at unknown origin, with read to 0xffff9f3eb5bf5f30 of 4 bytes
  by task 1271 on cpu 14:
   readers_active_check+0x...
   percpu_down_write+0x152/0x1f0

  value changed: 0xfffffff9 -> 0xfffffff8

This is a benign race. Annotate it with data_race() to suppress the
KCSAN warning.

Signed-off-by: Sun Shaojie <sunshaojie@kylinos.cn>
---
 kernel/locking/percpu-rwsem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c
index f7e152c40d6d..6c78961fe753 100644
--- a/kernel/locking/percpu-rwsem.c
+++ b/kernel/locking/percpu-rwsem.c
@@ -211,7 +211,7 @@ EXPORT_SYMBOL_GPL(percpu_is_read_locked);
  */
 static bool readers_active_check(struct percpu_rw_semaphore *sem)
 {
-	if (per_cpu_sum(*sem->read_count) != 0)
+	if (data_race(per_cpu_sum(*sem->read_count)) != 0)
 		return false;
 
 	/*
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-06-23 13:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-23  9:34 [PATCH] locking/percpu-rwsem: Annotate intentional data race in readers_active_check() Sun Shaojie
2026-06-23  9:44 ` Peter Zijlstra
2026-06-23 10:41   ` [PATCH v2] " Sun Shaojie
2026-06-23 13:25     ` Peter Zijlstra

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.