linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Changbin Du <changbin.du@gmail.com>
To: Jiri Olsa <jolsa@redhat.com>, Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	linux-kernel@vger.kernel.org, Changbin Du <changbin.du@gmail.com>
Subject: [PATCH 00/19] perf: ftrace enhancement
Date: Sun, 10 May 2020 23:06:09 +0800	[thread overview]
Message-ID: <20200510150628.16610-1-changbin.du@gmail.com> (raw)

The perf has basic kernel ftrace support but lack support of most tracing
options. This serias is target to enhance the perf ftrace functionality so
that we can make full use of kernel ftrace with only perf.

In general, this serias be cataloged into two main changes:
  1) Improve usability of existing functions. For example, we don't need to type
     extra option to select the tracer.
  2) Add new options to support all other ftrace functions.

Here is a glance of all ftrace functions with this serias:
  * - improved existing options.
  + - new added options.

$ sudo perf ftrace -h

 Usage: perf ftrace [<options>] [<command>]
    or: perf ftrace [<options>] -- <command> [<options>]

*   -a, --all-cpus        system-wide collection from all CPUs
+   -b, --buffer-size <n>
                          size of per cpu buffer in kb
    -C, --cpu <cpu>       list of cpus to monitor
+   -d, --delay <n>       Wait <n> ms before tracing
    -D, --graph-depth <n>
                          Max depth for function graph tracer
*   -G, --graph-funcs <func>
                          Set graph filter on given functions (imply to use function_graph tracer)
    -g, --nograph-funcs <func>
                          Set nograph filter on given functions (imply to use function_graph tracer)
+   -L, --list-functions  List available functions to filter
+   -l, --long-info       Show process names, PIDs, timestamps, irq-info if available
    -N, --notrace-funcs <func>
                          do not trace given functions
+   -P, --no-pager        Do not use pager
    -p, --pid <pid>       trace on existing process id
+   -s, --func-stack-trace
                          Show kernel stack trace for function tracer
+   -t, --tid <tid>       trace on existing thread id (exclusive to --pid)
    -T, --trace-funcs <func>
                          trace given functions only
+   -u, --userstacktrace  Show stacktrace of the current user space thread
    -v, --verbose         be more verbose
+       --funcgraph-tail  Show function tails comment (function_graph only)
+       --latency-format  displays additional information about the latency (function_graph only)
+       --nofuncgraph-irqs
                          Ignore functions that happen inside interrupt (function_graph only)
+       --nosleep-time    Measure on-CPU time only (function_graph only)
+       --trace-children  Trace children processes
+       --tracing-thresh <n>
                          Only show functions of which the duration is greater than <n>µs


Changbin Du (19):
  perf ftrace: trace system wide if no target is given
  perf ftrace: detect workload failure
  perf ftrace: select function/function_graph tracer automatically
  perf ftrace: add support for tracing option 'func_stack_trace'
  perf ftrace: add option '-l/--list-functions' to list available
    functions
  perf ftrace: add support for trace option sleep-time
  perf ftrace: add support for trace option funcgraph-irqs
  perf ftrace: add option -l/--long-info to show more info
  perf ftrace: add support for trace option tracing_thresh
  perf ftrace: add support for trace option funcgraph-tail
  perf ftrace: add option '-u/--userstacktrace' to show userspace
    stacktrace
  perf ftrace: add support for tracing children processes
  perf ftrace: add option '-b/--buffer-size' to set per-cpu buffer size
  perf ftrace: add option -P/--no-pager to disable pager
  perf ftrace: show trace column header
  perf ftrace: add option -t/--tid to filter by thread id
  perf ftrace: add option -d/--delay to delay tracing
  perf ftrace: add option --latency-format to display more info about
    delay
  perf ftrace: add change log

 tools/perf/Documentation/perf-config.txt |   5 -
 tools/perf/builtin-ftrace.c              | 388 ++++++++++++++++++++---
 2 files changed, 345 insertions(+), 48 deletions(-)

-- 
2.25.1


             reply	other threads:[~2020-05-10 15:06 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-10 15:06 Changbin Du [this message]
2020-05-10 15:06 ` [PATCH 01/19] perf ftrace: trace system wide if no target is given Changbin Du
2020-05-20 20:47   ` Arnaldo Carvalho de Melo
2020-05-10 15:06 ` [PATCH 02/19] perf ftrace: detect workload failure Changbin Du
2020-05-20 20:51   ` Arnaldo Carvalho de Melo
2020-05-10 15:06 ` [PATCH 03/19] perf ftrace: select function/function_graph tracer automatically Changbin Du
2020-05-20 20:56   ` Arnaldo Carvalho de Melo
2020-05-31  5:52   ` Namhyung Kim
2020-06-06 14:28     ` Changbin Du
2020-05-10 15:06 ` [PATCH 04/19] perf ftrace: add support for tracing option 'func_stack_trace' Changbin Du
2020-05-20 20:58   ` Arnaldo Carvalho de Melo
2020-05-10 15:06 ` [PATCH 05/19] perf ftrace: add option '-l/--list-functions' to list available functions Changbin Du
2020-05-20 20:59   ` Arnaldo Carvalho de Melo
2020-06-06 14:42     ` Changbin Du
2020-05-10 15:06 ` [PATCH 06/19] perf ftrace: add support for trace option sleep-time Changbin Du
2020-05-20 21:01   ` Arnaldo Carvalho de Melo
2020-05-31  5:56     ` Namhyung Kim
2020-06-06 14:19       ` Changbin Du
2020-05-10 15:06 ` [PATCH 07/19] perf ftrace: add support for trace option funcgraph-irqs Changbin Du
2020-05-20 21:01   ` Arnaldo Carvalho de Melo
2020-05-10 15:06 ` [PATCH 08/19] perf ftrace: add option -l/--long-info to show more info Changbin Du
2020-05-20 21:02   ` Arnaldo Carvalho de Melo
2020-05-31  6:00     ` Namhyung Kim
2020-06-06 14:14     ` Changbin Du
2020-05-10 15:06 ` [PATCH 09/19] perf ftrace: add support for trace option tracing_thresh Changbin Du
2020-05-20 21:03   ` Arnaldo Carvalho de Melo
2020-05-10 15:06 ` [PATCH 10/19] perf ftrace: add support for trace option funcgraph-tail Changbin Du
2020-05-20 21:03   ` Arnaldo Carvalho de Melo
2020-05-20 21:05   ` Arnaldo Carvalho de Melo
2020-05-31  6:07     ` Namhyung Kim
2020-06-25 11:21     ` Changbin Du
2020-05-10 15:06 ` [PATCH 11/19] perf ftrace: add option '-u/--userstacktrace' to show userspace stacktrace Changbin Du
2020-05-20 21:07   ` Arnaldo Carvalho de Melo
2020-06-14 11:15     ` Changbin Du
2020-05-10 15:06 ` [PATCH 12/19] perf ftrace: add support for tracing children processes Changbin Du
2020-05-20 21:07   ` Arnaldo Carvalho de Melo
2020-05-10 15:06 ` [PATCH 13/19] perf ftrace: add option '-b/--buffer-size' to set per-cpu buffer size Changbin Du
2020-05-20 21:08   ` Arnaldo Carvalho de Melo
2020-06-06 14:43     ` Changbin Du
2020-05-10 15:06 ` [PATCH 14/19] perf ftrace: add option -P/--no-pager to disable pager Changbin Du
2020-05-20 21:09   ` Arnaldo Carvalho de Melo
2020-06-06 14:40     ` Changbin Du
2020-05-10 15:06 ` [PATCH 15/19] perf ftrace: show trace column header Changbin Du
2020-05-20 21:11   ` Arnaldo Carvalho de Melo
2020-06-06 14:37     ` Changbin Du
2020-05-10 15:06 ` [PATCH 16/19] perf ftrace: add option -t/--tid to filter by thread id Changbin Du
2020-05-20 21:12   ` Arnaldo Carvalho de Melo
2020-06-06 14:32     ` Changbin Du
2020-05-10 15:06 ` [PATCH 17/19] perf ftrace: add option -d/--delay to delay tracing Changbin Du
2020-05-20 21:13   ` Arnaldo Carvalho de Melo
2020-06-06 14:30     ` Changbin Du
2020-05-10 15:06 ` [PATCH 18/19] perf ftrace: add option --latency-format to display more info about delay Changbin Du
2020-05-20 21:14   ` Arnaldo Carvalho de Melo
2020-05-10 15:06 ` [PATCH 19/19] perf ftrace: add change log Changbin Du
2020-05-10 15:23 ` [PATCH 00/19] perf: ftrace enhancement Steven Rostedt
2020-05-10 16:18   ` Arnaldo Melo
2020-05-20 20:31 ` Arnaldo Carvalho de Melo
2020-05-26  0:17   ` Changbin Du

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200510150628.16610-1-changbin.du@gmail.com \
    --to=changbin.du@gmail.com \
    --cc=acme@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).