* [PATCH] tracing: Fix DECLARE_TRACE_CONDITION
@ 2025-01-28 11:19 Gabriele Monaco
2025-01-28 11:30 ` Gabriele Monaco
2025-01-29 1:01 ` Masami Hiramatsu
0 siblings, 2 replies; 3+ messages in thread
From: Gabriele Monaco @ 2025-01-28 11:19 UTC (permalink / raw)
To: Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers,
linux-kernel, linux-trace-kernel
Cc: Gabriele Monaco
Commit 287050d39026 ("tracing: Add TRACE_EVENT_CONDITIONAL()") adds
macros to define conditional trace events (TRACE_EVENT_CONDITIONAL) and
tracepoints (DECLARE_TRACE_CONDITION), but sets up functionality for
direct use only for the former.
Any attempt to use DECLARE_TRACE_CONDITION fails the build.
Add preprocessor bits in define_trace.h to allow usage of
DECLARE_TRACE_CONDITION just like DECLARE_TRACE.
Fixes: 287050d39026 ("tracing: Add TRACE_EVENT_CONDITIONAL()")
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
---
include/trace/define_trace.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h
index e1c1079f8c8d..ed52d0506c69 100644
--- a/include/trace/define_trace.h
+++ b/include/trace/define_trace.h
@@ -76,6 +76,10 @@
#define DECLARE_TRACE(name, proto, args) \
DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
+#undef DECLARE_TRACE_CONDITION
+#define DECLARE_TRACE_CONDITION(name, proto, args, cond) \
+ DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
+
/* If requested, create helpers for calling these tracepoints from Rust. */
#ifdef CREATE_RUST_TRACE_POINTS
#undef DEFINE_RUST_DO_TRACE
@@ -108,6 +112,8 @@
/* Make all open coded DECLARE_TRACE nops */
#undef DECLARE_TRACE
#define DECLARE_TRACE(name, proto, args)
+#undef DECLARE_TRACE_CONDITION
+#define DECLARE_TRACE_CONDITION(name, proto, args, cond)
#ifdef TRACEPOINTS_ENABLED
#include <trace/trace_events.h>
@@ -129,6 +135,7 @@
#undef DEFINE_EVENT_CONDITION
#undef TRACE_HEADER_MULTI_READ
#undef DECLARE_TRACE
+#undef DECLARE_TRACE_CONDITION
/* Only undef what we defined in this file */
#ifdef UNDEF_TRACE_INCLUDE_FILE
base-commit: 9c5968db9e625019a0ee5226c7eebef5519d366a
--
2.48.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] tracing: Fix DECLARE_TRACE_CONDITION
2025-01-28 11:19 [PATCH] tracing: Fix DECLARE_TRACE_CONDITION Gabriele Monaco
@ 2025-01-28 11:30 ` Gabriele Monaco
2025-01-29 1:01 ` Masami Hiramatsu
1 sibling, 0 replies; 3+ messages in thread
From: Gabriele Monaco @ 2025-01-28 11:30 UTC (permalink / raw)
To: linux-kernel, linux-trace-kernel
Cc: Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers
On Tue, 2025-01-28 at 12:19 +0100, Gabriele Monaco wrote:
> Commit 287050d39026 ("tracing: Add TRACE_EVENT_CONDITIONAL()") adds
> macros to define conditional trace events (TRACE_EVENT_CONDITIONAL)
> and
> tracepoints (DECLARE_TRACE_CONDITION), but sets up functionality for
> direct use only for the former.
> Any attempt to use DECLARE_TRACE_CONDITION fails the build.
>
> Add preprocessor bits in define_trace.h to allow usage of
> DECLARE_TRACE_CONDITION just like DECLARE_TRACE.
>
> Fixes: 287050d39026 ("tracing: Add TRACE_EVENT_CONDITIONAL()")
> Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
> ---
The macro is currently never used, I'm planning to use it in a future
patch.
Likewise also DECLARE_TRACE_SYSCALL is never used and would fail the
build if used. I'm not sure if the macro would be of use in this way,
since it's missing the reg and unreg parameters used in
DEFINE_TRACE_SYSCALL, one way not to fail the build is to treat it just like
DECLARE_TRACE (as DECLARE_TRACE_CONDITION).
I can prepare this as a patch if it's the intended behaviour:
diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h
index ed52d0506c69..497a5a2469dc 100644
--- a/include/trace/define_trace.h
+++ b/include/trace/define_trace.h
@@ -80,6 +80,10 @@
#define DECLARE_TRACE_CONDITION(name, proto, args, cond) \
DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
+#undef DECLARE_TRACE_SYSCALL
+#define DECLARE_TRACE_SYSCALL(name, proto, args, cond) \
+ DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
+
/* If requested, create helpers for calling these tracepoints from Rust. */
#ifdef CREATE_RUST_TRACE_POINTS
#undef DEFINE_RUST_DO_TRACE
@@ -114,6 +118,8 @@
#define DECLARE_TRACE(name, proto, args)
#undef DECLARE_TRACE_CONDITION
#define DECLARE_TRACE_CONDITION(name, proto, args, cond)
+#undef DECLARE_TRACE_SYSCALL
+#define DECLARE_TRACE_SYSCALL(name, proto, args, cond)
#ifdef TRACEPOINTS_ENABLED
#include <trace/trace_events.h>
@@ -136,6 +142,7 @@
#undef TRACE_HEADER_MULTI_READ
#undef DECLARE_TRACE
#undef DECLARE_TRACE_CONDITION
+#undef DECLARE_TRACE_SYSCALL
/* Only undef what we defined in this file */
#ifdef UNDEF_TRACE_INCLUDE_FILE
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] tracing: Fix DECLARE_TRACE_CONDITION
2025-01-28 11:19 [PATCH] tracing: Fix DECLARE_TRACE_CONDITION Gabriele Monaco
2025-01-28 11:30 ` Gabriele Monaco
@ 2025-01-29 1:01 ` Masami Hiramatsu
1 sibling, 0 replies; 3+ messages in thread
From: Masami Hiramatsu @ 2025-01-29 1:01 UTC (permalink / raw)
To: Gabriele Monaco
Cc: Steven Rostedt, Mathieu Desnoyers, linux-kernel, linux-trace-kernel
On Tue, 28 Jan 2025 12:19:26 +0100
Gabriele Monaco <gmonaco@redhat.com> wrote:
> Commit 287050d39026 ("tracing: Add TRACE_EVENT_CONDITIONAL()") adds
> macros to define conditional trace events (TRACE_EVENT_CONDITIONAL) and
> tracepoints (DECLARE_TRACE_CONDITION), but sets up functionality for
> direct use only for the former.
> Any attempt to use DECLARE_TRACE_CONDITION fails the build.
>
> Add preprocessor bits in define_trace.h to allow usage of
> DECLARE_TRACE_CONDITION just like DECLARE_TRACE.
>
> Fixes: 287050d39026 ("tracing: Add TRACE_EVENT_CONDITIONAL()")
> Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
Looks good to me.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Thank you,
> ---
> include/trace/define_trace.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h
> index e1c1079f8c8d..ed52d0506c69 100644
> --- a/include/trace/define_trace.h
> +++ b/include/trace/define_trace.h
> @@ -76,6 +76,10 @@
> #define DECLARE_TRACE(name, proto, args) \
> DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
>
> +#undef DECLARE_TRACE_CONDITION
> +#define DECLARE_TRACE_CONDITION(name, proto, args, cond) \
> + DEFINE_TRACE(name, PARAMS(proto), PARAMS(args))
> +
> /* If requested, create helpers for calling these tracepoints from Rust. */
> #ifdef CREATE_RUST_TRACE_POINTS
> #undef DEFINE_RUST_DO_TRACE
> @@ -108,6 +112,8 @@
> /* Make all open coded DECLARE_TRACE nops */
> #undef DECLARE_TRACE
> #define DECLARE_TRACE(name, proto, args)
> +#undef DECLARE_TRACE_CONDITION
> +#define DECLARE_TRACE_CONDITION(name, proto, args, cond)
>
> #ifdef TRACEPOINTS_ENABLED
> #include <trace/trace_events.h>
> @@ -129,6 +135,7 @@
> #undef DEFINE_EVENT_CONDITION
> #undef TRACE_HEADER_MULTI_READ
> #undef DECLARE_TRACE
> +#undef DECLARE_TRACE_CONDITION
>
> /* Only undef what we defined in this file */
> #ifdef UNDEF_TRACE_INCLUDE_FILE
>
> base-commit: 9c5968db9e625019a0ee5226c7eebef5519d366a
> --
> 2.48.1
>
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-29 1:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-28 11:19 [PATCH] tracing: Fix DECLARE_TRACE_CONDITION Gabriele Monaco
2025-01-28 11:30 ` Gabriele Monaco
2025-01-29 1:01 ` Masami Hiramatsu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®