Messages in this thread | | | From | Yafang Shao <> | Subject | [PATCH v2 0/3] tracing: introduce TRACE_EVENT_NOP and use it | Date | Tue, 26 Mar 2019 20:13:08 +0800 |
| |
In this patchset, I introduce some new macros TRACE_EVENT_NOP, DEFINE_EVENT_NOP and DECLARE_EVENT_CLASS_NOP, which will define a tracepoint as do-nothing inline function. #define DECLARE_EVENT_NOP(name, proto) \ static inline void trace_##name(proto) \ { } \ static inline bool trace_##name##_enabled(void) \ { \ return false; \ }
Let's take some examples for why these macros are needed.
- sched The tracepoints trace_sched_stat_{iowait, blocked, wait, sleep} should be not exposed to user if CONFIG_SCHEDSTATS is not set.
- rcu When CONFIG_RCU_TRACE is not set, some rcu tracepoints are defined as do-nothing macro without validating arguments, that is not proper. We should validate the arguments.
Yafang Shao (3): tracing: introduce TRACE_EVENT_NOP() sched/fair: do not expose some tracepoints to user if CONFIG_SCHEDSTATS is not set rcu: validate arguments for rcu tracepoints
include/linux/tracepoint.h | 15 ++++++++ include/trace/define_trace.h | 8 +++++ include/trace/events/rcu.h | 81 ++++++++++++++------------------------------ include/trace/events/sched.h | 21 ++++++++---- kernel/rcu/rcu.h | 9 ++--- kernel/rcu/tree.c | 8 ++--- 6 files changed, 68 insertions(+), 74 deletions(-)
-- 1.8.3.1
| |