]> git.karo-electronics.de Git - linux-beck.git/commitdiff
tracing: Introduce TRACE_EVENT_FN_COND macro
authorDenis Kirjanov <kda@linux-powerpc.org>
Mon, 14 Dec 2015 20:18:05 +0000 (23:18 +0300)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 23 Dec 2015 19:27:21 +0000 (14:27 -0500)
TRACE_EVENT_FN can't be used in some circumstances
like invoking trace functions from offlined CPU due
to RCU usage.

This patch adds the TRACE_EVENT_FN_COND macro
to make such trace points conditional.

Link: http://lkml.kernel.org/r/1450124286-4822-1-git-send-email-kda@linux-powerpc.org
Signed-off-by: Denis Kirjanov <kda@linux-powerpc.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/tracepoint.h
include/trace/define_trace.h
include/trace/trace_events.h

index 696a339c592c831942a8fcdc9b2e5ea963599747..45b3fcf7dd3c1ebf759ba288d3f07406b3e24e27 100644 (file)
@@ -493,6 +493,10 @@ extern void syscall_unregfunc(void);
 #define TRACE_EVENT_FN(name, proto, args, struct,              \
                assign, print, reg, unreg)                      \
        DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
+#define TRACE_EVENT_FN_COND(name, proto, args, cond, struct,           \
+               assign, print, reg, unreg)                      \
+       DECLARE_TRACE_CONDITION(name, PARAMS(proto),    \
+                       PARAMS(args), PARAMS(cond))
 #define TRACE_EVENT_CONDITION(name, proto, args, cond,         \
                              struct, assign, print)            \
        DECLARE_TRACE_CONDITION(name, PARAMS(proto),            \
index 2d8639ea64d54dd7dd0f314281cfe1798a392250..6e3945f64102c275669fc3a0c21f910c3be7be03 100644 (file)
                assign, print, reg, unreg)                      \
        DEFINE_TRACE_FN(name, reg, unreg)
 
+#undef TRACE_EVENT_FN_COND
+#define TRACE_EVENT_FN_COND(name, proto, args, cond, tstruct,          \
+               assign, print, reg, unreg)                      \
+       DEFINE_TRACE_FN(name, reg, unreg)
+
 #undef DEFINE_EVENT
 #define DEFINE_EVENT(template, name, proto, args) \
        DEFINE_TRACE(name)
@@ -93,6 +98,7 @@
 
 #undef TRACE_EVENT
 #undef TRACE_EVENT_FN
+#undef TRACE_EVENT_FN_COND
 #undef TRACE_EVENT_CONDITION
 #undef DECLARE_EVENT_CLASS
 #undef DEFINE_EVENT
index de996cf610536ee0da0657f2a4e9aae071793755..170c93bbdbb75e1be7a4efb71c7873d6c84d9e35 100644 (file)
@@ -123,6 +123,12 @@ TRACE_MAKE_SYSTEM_STR();
        TRACE_EVENT(name, PARAMS(proto), PARAMS(args),                  \
                PARAMS(tstruct), PARAMS(assign), PARAMS(print))         \
 
+#undef TRACE_EVENT_FN_COND
+#define TRACE_EVENT_FN_COND(name, proto, args, cond, tstruct,  \
+               assign, print, reg, unreg)                              \
+       TRACE_EVENT_CONDITION(name, PARAMS(proto), PARAMS(args), PARAMS(cond),          \
+               PARAMS(tstruct), PARAMS(assign), PARAMS(print))         \
+
 #undef TRACE_EVENT_FLAGS
 #define TRACE_EVENT_FLAGS(name, value)                                 \
        __TRACE_EVENT_FLAGS(name, value)