All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched: Assert for_each_thread() is properly locked
@ 2023-08-21 13:44 Matthew Wilcox (Oracle)
  2023-08-21 17:55 ` Joel Fernandes
  2023-09-15  8:36 ` [tip: sched/core] " tip-bot2 for Matthew Wilcox (Oracle)
  0 siblings, 2 replies; 3+ messages in thread
From: Matthew Wilcox (Oracle) @ 2023-08-21 13:44 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra
  Cc: Matthew Wilcox (Oracle), linux-kernel, Tong Tiangen, rcu

list_for_each_entry_rcu() takes an optional fourth argument which
allows RCU to assert that the correct lock is held.  Several callers
of for_each_thread() rely on their caller to be holding the appropriate
lock, so this is a useful assertion to include.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 include/linux/sched/signal.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h
index 669e8cff40c7..f1eae7f53be9 100644
--- a/include/linux/sched/signal.h
+++ b/include/linux/sched/signal.h
@@ -659,7 +659,8 @@ extern bool current_is_single_threaded(void);
 	while ((t = next_thread(t)) != g)
 
 #define __for_each_thread(signal, t)	\
-	list_for_each_entry_rcu(t, &(signal)->thread_head, thread_node)
+	list_for_each_entry_rcu(t, &(signal)->thread_head, thread_node, \
+		lockdep_is_held(&tasklist_lock))
 
 #define for_each_thread(p, t)		\
 	__for_each_thread((p)->signal, t)
-- 
2.40.1


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

end of thread, other threads:[~2023-09-15  8:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-21 13:44 [PATCH] sched: Assert for_each_thread() is properly locked Matthew Wilcox (Oracle)
2023-08-21 17:55 ` Joel Fernandes
2023-09-15  8:36 ` [tip: sched/core] " tip-bot2 for Matthew Wilcox (Oracle)

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.