Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f52d569f authored by Changbin Du's avatar Changbin Du Committed by Steven Rostedt (VMware)
Browse files

tracing: Show stacktrace for wakeup tracers

This align the behavior of wakeup tracers with irqsoff latency tracer
that we record stacktrace at the beginning and end of waking up. The
stacktrace shows us what is happening in the kernel.

Link: http://lkml.kernel.org/r/20190116160249.7554-1-changbin.du@gmail.com



Signed-off-by: default avatarChangbin Du <changbin.du@gmail.com>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 88d380eb
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -475,6 +475,7 @@ probe_wakeup_sched_switch(void *ignore, bool preempt,


	__trace_function(wakeup_trace, CALLER_ADDR0, CALLER_ADDR1, flags, pc);
	__trace_function(wakeup_trace, CALLER_ADDR0, CALLER_ADDR1, flags, pc);
	tracing_sched_switch_trace(wakeup_trace, prev, next, flags, pc);
	tracing_sched_switch_trace(wakeup_trace, prev, next, flags, pc);
	__trace_stack(wakeup_trace, flags, 0, pc);


	T0 = data->preempt_timestamp;
	T0 = data->preempt_timestamp;
	T1 = ftrace_now(cpu);
	T1 = ftrace_now(cpu);
@@ -586,6 +587,7 @@ probe_wakeup(void *ignore, struct task_struct *p)
	data = per_cpu_ptr(wakeup_trace->trace_buffer.data, wakeup_cpu);
	data = per_cpu_ptr(wakeup_trace->trace_buffer.data, wakeup_cpu);
	data->preempt_timestamp = ftrace_now(cpu);
	data->preempt_timestamp = ftrace_now(cpu);
	tracing_sched_wakeup_trace(wakeup_trace, p, current, flags, pc);
	tracing_sched_wakeup_trace(wakeup_trace, p, current, flags, pc);
	__trace_stack(wakeup_trace, flags, 0, pc);


	/*
	/*
	 * We must be careful in using CALLER_ADDR2. But since wake_up
	 * We must be careful in using CALLER_ADDR2. But since wake_up