All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>
Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org, Randy Dunlap <rdunlap@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v3 0/8] tracing/boot: Add new options for tracing specific period
Date: Thu, 10 Sep 2020 17:54:54 +0900	[thread overview]
Message-ID: <159972809455.428528.4737752126800169128.stgit@devnote2> (raw)

Hi,

Here is the 3rd version of the series to improve the boot-time tracing to
support kretprobe and tracing_on option. Previous version is here:

 https://lkml.kernel.org/r/159894698993.1478826.2813843560314595660.stgit@devnote2

This version adds uprobe %return suffix support ([5/8]) and the testcases
([8/8]), and update kprobe %suffix support([4/8]) and the uprobe event
document([6/8]).


The combination of tracing_on and kretprobe allows us to trace events
while a specific function call period. For example, the below bootconfig
will make a function callgraph in the pci_proc_init() function at boot
time.

ftrace {
	tracing_on = 0  # off at start
	tracer = function_graph
	event.kprobes {
		start_event {
			probes = "pci_proc_init"
			actions = "traceon"
		}
		end_event {
			probes = "pci_proc_init%return"
			actions = "traceoff"
		}
	}
}

Here is the example output;

# tracer: function_graph
#
# CPU  DURATION                  FUNCTION CALLS
# |     |   |                     |   |   |   |
 0)               |  pci_proc_init() {
 0)               |    proc_mkdir() {
 0)               |      proc_mkdir_data() {
 0)               |        __proc_create() {
 0)               |          _raw_read_lock() {
 0)   0.179 us    |            preempt_count_add();
 0)   0.203 us    |            do_raw_read_lock();
 0)   1.210 us    |          }
 0)               |          __xlate_proc_name() {
 0)   0.449 us    |            pde_subdir_find();
 0)   0.913 us    |          }
 0)               |          _raw_read_unlock() {
 0)   0.169 us    |            do_raw_read_unlock();
 0)   0.175 us    |            preempt_count_sub();
 0)   0.841 us    |          }
 0)               |          kmem_cache_alloc() {
 0)               |            fs_reclaim_acquire() {
 0)   0.154 us    |              __need_fs_reclaim();
 0)   0.240 us    |              fs_reclaim_acquire.part.0();
 0)   0.889 us    |            }
 0)               |            fs_reclaim_release() {
 0)   0.174 us    |              __need_fs_reclaim();
 0)   0.516 us    |            }
 0)   0.157 us    |            should_failslab();
 0)               |            rcu_read_lock_sched_held() {
 0)               |              rcu_read_lock_held_common() {
 0)   0.156 us    |                rcu_is_watching();
 0)   0.158 us    |                rcu_lockdep_current_cpu_online();
 0)   0.735 us    |              }
 0)   1.054 us    |            }
 0)   3.407 us    |          }
 0)   0.168 us    |          __raw_spin_lock_init();
 0)   7.575 us    |        }
 0)               |        proc_register() {
 0)               |          _raw_spin_lock_irqsave() {
 0)   0.187 us    |            preempt_count_add();
...


Thank you,

---

Masami Hiramatsu (8):
      kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot
      tracing/boot: Add per-instance tracing_on option support
      Documentation: tracing: Add tracing_on option to boot-time tracer
      tracing/kprobes: Support perf-style return probe
      tracing/uprobes: Support perf-style return probe
      Documentation: tracing: Add %return suffix description
      Documentation: tracing: boot: Add an example of tracing function-calls
      selftests/ftrace: Add %return suffix tests


 Documentation/trace/boottime-trace.rst             |   24 ++++++++++++++++++++
 Documentation/trace/kprobetrace.rst                |    2 ++
 Documentation/trace/uprobetracer.rst               |    2 ++
 include/linux/kprobes.h                            |    5 ++++
 init/main.c                                        |    2 ++
 kernel/kprobes.c                                   |   22 ++++++++++++++++++
 kernel/trace/trace.c                               |    4 ++-
 kernel/trace/trace_boot.c                          |   10 ++++++++
 kernel/trace/trace_kprobe.c                        |   18 ++++++++++++++-
 kernel/trace/trace_probe.h                         |    1 +
 kernel/trace/trace_uprobe.c                        |   15 ++++++++++++-
 .../ftrace/test.d/kprobe/kprobe_syntax_errors.tc   |    6 +++++
 .../test.d/kprobe/kretprobe_return_suffix.tc       |   21 ++++++++++++++++++
 .../ftrace/test.d/kprobe/uprobe_syntax_errors.tc   |    6 +++++
 14 files changed, 134 insertions(+), 4 deletions(-)
 create mode 100644 tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_return_suffix.tc

--
Masami Hiramatsu (Linaro) <mhiramat@kernel.org>

             reply	other threads:[~2020-09-10  8:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-10  8:54 Masami Hiramatsu [this message]
2020-09-10  8:55 ` [PATCH v3 1/8] kprobes: tracing/kprobes: Fix to kill kprobes on initmem after boot Masami Hiramatsu
2020-09-10  8:55 ` [PATCH v3 2/8] tracing/boot: Add per-instance tracing_on option support Masami Hiramatsu
2020-09-10  8:55 ` [PATCH v3 3/8] Documentation: tracing: Add tracing_on option to boot-time tracer Masami Hiramatsu
2020-09-10 13:26   ` Bird, Tim
2020-09-10 22:41     ` Masami Hiramatsu
2020-09-11  0:47       ` [PATCH v3.1 " Masami Hiramatsu
2020-09-10  8:55 ` [PATCH v3 4/8] tracing/kprobes: Support perf-style return probe Masami Hiramatsu
2020-09-10  8:55 ` [PATCH v3 5/8] tracing/uprobes: " Masami Hiramatsu
2020-09-10  8:55 ` [PATCH v3 6/8] Documentation: tracing: Add %return suffix description Masami Hiramatsu
2020-09-10  8:56 ` [PATCH v3 7/8] Documentation: tracing: boot: Add an example of tracing function-calls Masami Hiramatsu
2020-09-10  8:56 ` [PATCH v3 8/8] selftests/ftrace: Add %return suffix tests Masami Hiramatsu
2020-09-10 23:34 ` [PATCH v3 0/8] tracing/boot: Add new options for tracing specific period Steven Rostedt
2020-09-11  1:27   ` Masami Hiramatsu
2020-09-11  1:34     ` Shuah Khan

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=159972809455.428528.4737752126800169128.stgit@devnote2 \
    --to=mhiramat@kernel.org \
    --cc=corbet@lwn.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=skhan@linuxfoundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.