Thread (4 messages) 4 messages, 4 authors, 2025-05-09

Re: [PATCH] tracing: fprobe: Fix RCU warning message in list traversal

From: Antonio Quartulli <antonio@mandelbit.com>
Date: 2025-04-15 07:42:22
Also in: lkml


On 10/04/2025 14:22, Breno Leitao wrote:
When CONFIG_PROVE_RCU_LIST is enabled, fprobe triggers the following
warning:

     WARNING: suspicious RCU usage
     kernel/trace/fprobe.c:457 RCU-list traversed in non-reader section!!

     other info that might help us debug this:
	#1: ffffffff863c4e08 (fprobe_mutex){+.+.}-{4:4}, at: fprobe_module_callback+0x7b/0x8c0

     Call Trace:
	fprobe_module_callback
	notifier_call_chain
	blocking_notifier_call_chain

This warning occurs because fprobe_remove_node_in_module() traverses an
RCU list using RCU primitives without holding an RCU read lock. However,
the function is only called from fprobe_module_callback(), which holds
the fprobe_mutex lock that provides sufficient protection for safely
traversing the list.

Fix the warning by specifying the locking design to the
CONFIG_PROVE_RCU_LIST mechanism. Add the lockdep_is_held() argument to
hlist_for_each_entry_rcu() to inform the RCU checker that fprobe_mutex
provides the required protection.

Fixes: a3dc2983ca7b90 ("tracing: fprobe: Cleanup fprobe hash when module unloading")
Signed-off-by: Breno Leitao <leitao@debian.org>
I just hit this issue and I verified that the patch actually solves it 
without causing side effects.

FWIW

Tested-by: Antonio Quartulli <antonio@mandelbit.com>

-- 
Antonio Quartulli

CEO and Co-Founder
Mandelbit Srl
https://www.mandelbit.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help