Skip to content

ftrace: Add funcgraph-tail option

Robert Elliott lkml 2 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v1 Latest posting 2/22 patches 0 repliesNew
  2. v1 posting 1/22 patches 0 repliesSuperseded

Patches in v1 posting 2/2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2ftrace: Eliminate duplicate TRACE_GRAPH_PRINT_xx defineskernel/trace/trace.h kernel/trace/trace_functions_graph.c+1 -90 replies
2/2ftrace: Add funcgraph_tail option to print function name after closing bracesDocumentation/trace/ftrace.txt kernel/trace/trace.h kernel/trace/trace_functions_graph.c+33 -30 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH RESEND 0/2] ftrace: Add funcgraph-tail option

Using ftrace function-graph to examine the times consumed by functions, the time shows up on the line where the call is made if no other traceable functions were called by that function:
11) 0.672 us | cmd_alloc [hpsa]();

but the time shows up down by the } if the were other traceable functions called by that function:

 11)               |              cmd_alloc [hpsa]() {
 11)   0.129 us    |                cmd_free [hpsa]();
 11)   0.106 us    |                cmd_free [hpsa]();
 11)   2.014 us    |              }

On its own, the } line doesn't indicate which function it is closing, so grep cannot be used to search for all the times for this function. You have to write a parser.

The function name does get printed on those lines when the start of the function is off the trace.

This patch series adds a funcgraph-tail option to do that in all cases.

echo 1 > /sys/kernel/debug/tracing/options/funcgraph-tail or
echo funcgraph-tail > /sys/kernel/debug/tracing/trace_options yields:

 11)               |    hpsa_scsi_ioaccel_raid_map [hpsa]() {
 11)               |      hpsa_scsi_ioaccel_queue_command [hpsa]() {
 11)               |        hpsa_scsi_ioaccel2_queue_command [hpsa]() {
 11)   0.067 us    |          fixup_ioaccel_cdb [hpsa]();
 11)   0.053 us    |          set_encrypt_ioaccel2 [hpsa]();
 11)   0.199 us    |          enqueue_cmd_and_start_io [hpsa]();
 11)   1.952 us    |        } /* hpsa_scsi_ioaccel2_queue_command [hpsa] */
 11)   2.501 us    |      } /* hpsa_scsi_ioaccel_queue_command [hpsa] */
 11)   3.093 us    |    } /* hpsa_scsi_ioaccel_raid_map [hpsa] */
 11)   4.667 us    |  } /* hpsa_scsi_queue_command [hpsa] */

echo 0 > /sys/kernel/debug/tracing/options/funcgraph-tail or
echo nofuncgraph-tail > /sys/kernel/debug/tracing/trace_options (which is the default setting) still yields:

 11)               |    hpsa_scsi_ioaccel_raid_map [hpsa]() {
 11)               |      hpsa_scsi_ioaccel_queue_command [hpsa]() {
 11)               |        hpsa_scsi_ioaccel2_queue_command [hpsa]() {
 11)   0.067 us    |          fixup_ioaccel_cdb [hpsa]();
 11)   0.053 us    |          set_encrypt_ioaccel2 [hpsa]();
 11)   0.199 us    |          enqueue_cmd_and_start_io [hpsa]();
 11)   1.952 us    |        }
 11)   2.501 us    |      }
 11)   3.093 us    |    }
 11)   4.667 us    |  }

---

Robert Elliott (2):
ftrace: Eliminate duplicate TRACE_GRAPH_PRINT_xx defines
ftrace: Add funcgraph_tail option to print function name after closing braces

 Documentation/trace/ftrace.txt       |   26 ++++++++++++++++++++++++++
 kernel/trace/trace.h                 |    2 ++
 kernel/trace/trace_functions_graph.c |   18 ++++++------------
 3 files changed, 34 insertions(+), 12 deletions(-)
Signature · 1 line
Rob Elliott, HP Server Storage