mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 23:51:37 +00:00
tracing: Add tracing_event_time_stamp() API
Add a tracing_event_time_stamp() API that checks if the event passed in is not on the ring buffer but a pointer to the per CPU trace_buffered_event which does not have its time stamp set yet. If it is a pointer to the trace_buffered_event, then just return the current time stamp that the ring buffer would produce. Otherwise, return the time stamp from the event. Link: https://lkml.kernel.org/r/20210316164114.131996180@goodmis.org Reviewed-by: Tom Zanussi <zanussi@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
a948c69d6f
commit
d8279bfc5e
@ -6972,6 +6972,14 @@ static int tracing_time_stamp_mode_open(struct inode *inode, struct file *file)
|
||||
return ret;
|
||||
}
|
||||
|
||||
u64 tracing_event_time_stamp(struct trace_buffer *buffer, struct ring_buffer_event *rbe)
|
||||
{
|
||||
if (rbe == this_cpu_read(trace_buffered_event))
|
||||
return ring_buffer_time_stamp(buffer, smp_processor_id());
|
||||
|
||||
return ring_buffer_event_time_stamp(buffer, rbe);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set or disable using the per CPU trace_buffer_event when possible.
|
||||
*/
|
||||
|
@ -372,6 +372,7 @@ extern int tracing_check_open_get_tr(struct trace_array *tr);
|
||||
extern struct trace_array *trace_array_find(const char *instance);
|
||||
extern struct trace_array *trace_array_find_get(const char *instance);
|
||||
|
||||
extern u64 tracing_event_time_stamp(struct trace_buffer *buffer, struct ring_buffer_event *rbe);
|
||||
extern int tracing_set_filter_buffering(struct trace_array *tr, bool set);
|
||||
extern int tracing_set_clock(struct trace_array *tr, const char *clockstr);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user