diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-03 13:26:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-03 13:26:31 -0400 |
commit | 68114e5eb862ad0a7a261b91497281b026102715 (patch) | |
tree | 0a7296ab83fd6c33f26010c99151445f49042d6a /include/linux/ftrace_event.h | |
parent | 59ecc26004e77e100c700b1d0da7502b0fdadb46 (diff) | |
parent | 3862807880acc0adaef6749738d210c9f45c3049 (diff) |
Merge tag 'trace-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing updates from Steven Rostedt:
"Most of the changes were largely clean ups, and some documentation.
But there were a few features that were added:
Uprobes now work with event triggers and multi buffers and have
support under ftrace and perf.
The big feature is that the function tracer can now be used within the
multi buffer instances. That is, you can now trace some functions in
one buffer, others in another buffer, all functions in a third buffer
and so on. They are basically agnostic from each other. This only
works for the function tracer and not for the function graph trace,
although you can have the function graph tracer running in the top
level buffer (or any tracer for that matter) and have different
function tracing going on in the sub buffers"
* tag 'trace-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (45 commits)
tracing: Add BUG_ON when stack end location is over written
tracepoint: Remove unused API functions
Revert "tracing: Move event storage for array from macro to standalone function"
ftrace: Constify ftrace_text_reserved
tracepoints: API doc update to tracepoint_probe_register() return value
tracepoints: API doc update to data argument
ftrace: Fix compilation warning about control_ops_free
ftrace/x86: BUG when ftrace recovery fails
ftrace: Warn on error when modifying ftrace function
ftrace: Remove freelist from struct dyn_ftrace
ftrace: Do not pass data to ftrace_dyn_arch_init
ftrace: Pass retval through return in ftrace_dyn_arch_init()
ftrace: Inline the code from ftrace_dyn_table_alloc()
ftrace: Cleanup of global variables ftrace_new_pgs and ftrace_update_cnt
tracing: Evaluate len expression only once in __dynamic_array macro
tracing: Correctly expand len expressions from __dynamic_array macro
tracing/module: Replace include of tracepoint.h with jump_label.h in module.h
tracing: Fix event header migrate.h to include tracepoint.h
tracing: Fix event header writeback.h to include tracepoint.h
tracing: Warn if a tracepoint is not set via debugfs
...
Diffstat (limited to 'include/linux/ftrace_event.h')
-rw-r--r-- | include/linux/ftrace_event.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 4cdb3a17bcb5..cdc30111d2f8 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
@@ -163,6 +163,8 @@ void trace_current_buffer_discard_commit(struct ring_buffer *buffer, | |||
163 | 163 | ||
164 | void tracing_record_cmdline(struct task_struct *tsk); | 164 | void tracing_record_cmdline(struct task_struct *tsk); |
165 | 165 | ||
166 | int ftrace_output_call(struct trace_iterator *iter, char *name, char *fmt, ...); | ||
167 | |||
166 | struct event_filter; | 168 | struct event_filter; |
167 | 169 | ||
168 | enum trace_reg { | 170 | enum trace_reg { |
@@ -197,6 +199,32 @@ struct ftrace_event_class { | |||
197 | extern int ftrace_event_reg(struct ftrace_event_call *event, | 199 | extern int ftrace_event_reg(struct ftrace_event_call *event, |
198 | enum trace_reg type, void *data); | 200 | enum trace_reg type, void *data); |
199 | 201 | ||
202 | int ftrace_output_event(struct trace_iterator *iter, struct ftrace_event_call *event, | ||
203 | char *fmt, ...); | ||
204 | |||
205 | int ftrace_event_define_field(struct ftrace_event_call *call, | ||
206 | char *type, int len, char *item, int offset, | ||
207 | int field_size, int sign, int filter); | ||
208 | |||
209 | struct ftrace_event_buffer { | ||
210 | struct ring_buffer *buffer; | ||
211 | struct ring_buffer_event *event; | ||
212 | struct ftrace_event_file *ftrace_file; | ||
213 | void *entry; | ||
214 | unsigned long flags; | ||
215 | int pc; | ||
216 | }; | ||
217 | |||
218 | void *ftrace_event_buffer_reserve(struct ftrace_event_buffer *fbuffer, | ||
219 | struct ftrace_event_file *ftrace_file, | ||
220 | unsigned long len); | ||
221 | |||
222 | void ftrace_event_buffer_commit(struct ftrace_event_buffer *fbuffer); | ||
223 | |||
224 | int ftrace_event_define_field(struct ftrace_event_call *call, | ||
225 | char *type, int len, char *item, int offset, | ||
226 | int field_size, int sign, int filter); | ||
227 | |||
200 | enum { | 228 | enum { |
201 | TRACE_EVENT_FL_FILTERED_BIT, | 229 | TRACE_EVENT_FL_FILTERED_BIT, |
202 | TRACE_EVENT_FL_CAP_ANY_BIT, | 230 | TRACE_EVENT_FL_CAP_ANY_BIT, |