tracing: Add "last_func_repeats" to struct trace_array
The field is used to keep track of the consecutive (on the same CPU) calls of a single function. This information is needed in order to consolidate the function tracing record in the cases when a single function is called number of times. Link: https://lkml.kernel.org/r/20210415181854.147448-4-y.karadz@gmail.com Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Родитель
f689e4f280
Коммит
20344c54d1
|
@ -9104,6 +9104,7 @@ static int __remove_instance(struct trace_array *tr)
|
|||
ftrace_clear_pids(tr);
|
||||
ftrace_destroy_function_files(tr);
|
||||
tracefs_remove(tr->dir);
|
||||
free_percpu(tr->last_func_repeats);
|
||||
free_trace_buffers(tr);
|
||||
|
||||
for (i = 0; i < tr->nr_topts; i++) {
|
||||
|
|
|
@ -262,6 +262,17 @@ struct cond_snapshot {
|
|||
cond_update_fn_t update;
|
||||
};
|
||||
|
||||
/*
|
||||
* struct trace_func_repeats - used to keep track of the consecutive
|
||||
* (on the same CPU) calls of a single function.
|
||||
*/
|
||||
struct trace_func_repeats {
|
||||
unsigned long ip;
|
||||
unsigned long parent_ip;
|
||||
unsigned long count;
|
||||
u64 ts_last_call;
|
||||
};
|
||||
|
||||
/*
|
||||
* The trace array - an array of per-CPU trace arrays. This is the
|
||||
* highest level data structure that individual tracers deal with.
|
||||
|
@ -358,6 +369,7 @@ struct trace_array {
|
|||
#ifdef CONFIG_TRACER_SNAPSHOT
|
||||
struct cond_snapshot *cond_snapshot;
|
||||
#endif
|
||||
struct trace_func_repeats __percpu *last_func_repeats;
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
Загрузка…
Ссылка в новой задаче