Thread (2 messages) 2 messages, 2 authors, 2021-07-22

Re: [PATCH -next] trace doc: Fix the wrong example of tracepoint

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2021-07-22 15:02:24
Also in: linux-riscv, lkml

On Tue, 20 Jul 2021 10:06:07 +0800
Zhang Jianhua [off-list ref] wrote:
The example in tracepoints.rst is out of date, the build error below
will occur if coding according to example in the document.

drivers/irqchip/irq-riscv-intc.c:24:24:
error: macro "DEFINE_TRACE" requires 3 arguments, but only 1 given
   24 | DEFINE_TRACE(test_event);
      |                        ^
In file included from include/trace/events/test.h:8,
from drivers/irqchip/irq-riscv-intc.c:22:
include/linux/tracepoint.h:368:
note: macro "DEFINE_TRACE" defined here
  368 | #define DEFINE_TRACE(name, proto, args)
      |
drivers/irqchip/irq-riscv-intc.c:24:1:
warning: data definition has no type or storage class
   24 | DEFINE_TRACE(test_event);
      | ^~~~~~~~~~~~
drivers/irqchip/irq-riscv-intc.c:24:1:
error: type defaults to ‘int’ in declaration of ‘DEFINE_TRACE’
[-Werror=implicit-int]

There are two reasons for this error. On the one hand, the macro DEFINE_TRACE
has been refactored in commit d25e37d89dd2 ("tracepoint: Optimize using
static_call()") from DEFINE_TRACE(name) to DEFINE_TRACE(name, proto, args),
and the doc is not updated in time. On the other hand, the tracepoint has been
defined in header file, and it does not need to define repeatedly in C file.
Actually, the above is not quite correct.

By removing DEFINE_TRACE() you just removed the tracepoint entirely,
making it non-existent. This is a very old document and probably has a
lot more wrong with it than just this.

But for this case, you probably want it to read:

        #define CREATE_TRACE_POINTS

        #include <trace/events/subsys.h>

Otherwise the tracepoint is never created.

-- Steve

quoted hunk ↗ jump to hunk
--------

Signed-off-by: Zhang Jianhua <redacted>
---
 Documentation/trace/tracepoints.rst | 1 -
 1 file changed, 1 deletion(-)
diff --git a/Documentation/trace/tracepoints.rst b/Documentation/trace/tracepoints.rst
index 0cb8d9ca3d60..fbb2cb4abd3d 100644
--- a/Documentation/trace/tracepoints.rst
+++ b/Documentation/trace/tracepoints.rst
@@ -66,7 +66,6 @@ In subsys/file.c (where the tracing statement must be added)::
 	#include <trace/events/subsys.h>
 
 	#define CREATE_TRACE_POINTS
-	DEFINE_TRACE(subsys_eventname);
 
 	void somefct(void)
 	{
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help