tracing/events: add support for modules to TRACE_EVENT

Impact: allow modules to add TRACE_EVENTS on load

This patch adds the final hooks to allow modules to use the TRACE_EVENT
macro. A notifier and a data structure are used to link the TRACE_EVENTs
defined in the module to connect them with the ftrace event tracing system.

It also adds the necessary automated clean ups to the trace events when a
module is removed.

Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
Steven Rostedt
2009-04-10 14:53:50 -04:00
committed by Steven Rostedt
parent 17c873ec28
commit 6d723736e4
6 changed files with 113 additions and 32 deletions

View File

@@ -7,6 +7,7 @@
struct trace_array;
struct tracer;
struct dentry;
/*
* The trace entry - the most basic unit of tracing. This is what
@@ -87,6 +88,7 @@ struct ftrace_event_call {
char *name;
char *system;
struct dentry *dir;
struct trace_event *event;
int enabled;
int (*regfunc)(void);
void (*unregfunc)(void);
@@ -97,6 +99,7 @@ struct ftrace_event_call {
struct list_head fields;
int n_preds;
struct filter_pred **preds;
void *mod;
#ifdef CONFIG_EVENT_PROFILE
atomic_t profile_count;