Patch "sparc/ftrace: Fix ftrace graph time measurement" has been added to the 4.11-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
sparc/ftrace: Fix ftrace graph time measurement
to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
sparc-ftrace-fix-ftrace-graph-time-measurement.patch
and it can be found in the queue-4.11 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Wed May 31 16:49:09 JST 2017
From: "Liam R. Howlett" <[email protected]>
Date: Wed, 17 May 2017 11:47:00 -0400
Subject: sparc/ftrace: Fix ftrace graph time measurement
From: "Liam R. Howlett" <[email protected]>
[ Upstream commit 48078d2dac0a26f84f5f3ec704f24f7c832cce14 ]
The ftrace function_graph time measurements of a given function is not accurate according to those recorded by ftrace using the function filters. This change pulls the x86_64 fix from 'commit 722b3c746953 ("ftrace/graph: Trace function entry before updating index")' into the sparc specific prepare_ftrace_return which stops ftrace from counting interrupted tasks in the time measurement.
Example measurements for select_task_rq_fair running "hackbench 100 process 1000":
| tracing/trace_stat/function0 | function_graph Before patch | 2.802 us | 4.255 us After patch | 2.749 us | 3.094 us
--- arch/sparc/kernel/ftrace.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
arch/sparc/kernel/ftrace.c +6 -7
@@ -130,17 +130,16 @@ unsigned long prepare_ftrace_return(unsiif (unlikely (atomic_read (¤t->tracing_graph_pause)))return parent +8UL ; -if (ftrace_push_return_trace (parent, self_addr, &trace.depth, - frame_pointer,NULL ) == -EBUSY ) -return parent +8UL ; - trace.func = self_addr; + trace.depth = current->curr_ret_stack +1 ;/* Only trace if the calling function expects to */ -if (!ftrace_graph_entry (&trace)) { - current->curr_ret_stack--; +if (!ftrace_graph_entry (&trace)) +return parent +8UL ; + +if (ftrace_push_return_trace (parent, self_addr, &trace.depth, + frame_pointer,NULL ) == -EBUSY )return parent +8UL ; - }return return_hooker; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.11/sparc-ftrace-fix-ftrace-graph-time-measurement.patch