From: "Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
To: Steven Rostedt <rostedt@goodmis.org>,
Gabriele Monaco <gmonaco@redhat.com>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Nam Cao <namcao@linutronix.de>
Cc: linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org,
"Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Subject: [PATCH 3/3] rv: Add explicit lockdep context for reactors
Date: Tue, 14 Oct 2025 07:51:58 +0200 [thread overview]
Message-ID: <20251014-rv-lockdep-v1-3-0b9e51919ea8@linutronix.de> (raw)
In-Reply-To: <20251014-rv-lockdep-v1-0-0b9e51919ea8@linutronix.de>
Reactors can be called from any context through tracepoints.
When developing reactors care needs to be taken to only call APIs which
are safe. As the tracepoints used during testing may not actually be
called from restrictive contexts lockdep may not be helpful.
Add explicit overrides to help lockdep find invalid code patterns.
The usage of LD_WAIT_FREE will trigger lockdep warnings in the panic
reactor. These are indeed valid warnings but they are out of scope for
RV and will instead be fixed by the printk subsystem.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
kernel/trace/rv/rv_reactors.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/kernel/trace/rv/rv_reactors.c b/kernel/trace/rv/rv_reactors.c
index 8c02426bc3bd944265f809e431283d1a20d56a8c..d9d335ae9badaa320f1d35dd159a033c3a30eb1a 100644
--- a/kernel/trace/rv/rv_reactors.c
+++ b/kernel/trace/rv/rv_reactors.c
@@ -61,6 +61,7 @@
* printk
*/
+#include <linux/lockdep.h>
#include <linux/slab.h>
#include "rv.h"
@@ -480,6 +481,7 @@ int init_rv_reactors(struct dentry *root_dir)
void rv_react(struct rv_monitor *monitor, const char *msg, ...)
{
+ static DEFINE_WAIT_OVERRIDE_MAP(rv_react_map, LD_WAIT_FREE);
va_list args;
if (!rv_reacting_on() || !monitor->react)
@@ -487,7 +489,9 @@ void rv_react(struct rv_monitor *monitor, const char *msg, ...)
va_start(args, msg);
+ lock_map_acquire_try(&rv_react_map);
monitor->react(msg, args);
+ lock_map_release(&rv_react_map);
va_end(args);
}
--
2.51.0
next prev parent reply other threads:[~2025-10-14 5:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-14 5:51 [PATCH 0/3] rv: Add explicit lockdep context for reactors Thomas Weißschuh
2025-10-14 5:51 ` [PATCH 1/3] rv: Pass va_list to reactors Thomas Weißschuh
2025-10-14 7:08 ` Gabriele Monaco
2025-10-14 5:51 ` [PATCH 2/3] rv: Make rv_reacting_on() static Thomas Weißschuh
2025-10-14 5:51 ` Thomas Weißschuh [this message]
2025-10-14 6:55 ` [PATCH 3/3] rv: Add explicit lockdep context for reactors Gabriele Monaco
2025-10-14 7:13 ` Thomas Weißschuh
2025-10-14 7:38 ` Nam Cao
2025-10-14 9:46 ` Thomas Weißschuh
2025-10-14 10:22 ` Gabriele Monaco
2025-10-14 12:51 ` Thomas Weißschuh
2025-10-14 13:45 ` Gabriele Monaco
2025-10-14 14:18 ` Thomas Weißschuh
2025-10-14 14:50 ` Gabriele Monaco
2025-10-15 10:07 ` Thomas Weißschuh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251014-rv-lockdep-v1-3-0b9e51919ea8@linutronix.de \
--to=thomas.weissschuh@linutronix.de \
--cc=gmonaco@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=namcao@linutronix.de \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).