public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH perf/core v3 00/17] perf-probe --cache and SDT support
@ 2015-08-15 11:42 Masami Hiramatsu
  2015-08-15 11:42 ` [RFC PATCH perf/core v3 01/17] perf probe: Use strbuf for making strings in probe-event.c Masami Hiramatsu
                   ` (17 more replies)
  0 siblings, 18 replies; 25+ messages in thread
From: Masami Hiramatsu @ 2015-08-15 11:42 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, linux-kernel, Adrian Hunter, Ingo Molnar,
	Paul Mackerras, Jiri Olsa, Namhyung Kim, Borislav Petkov,
	Hemant Kumar

Hi,

Here is the 3rd version of the patchset for probe-cache and 
initial SDT support which are going to be perf-cache finally.

The previous version is here; https://lkml.org/lkml/2015/7/15/221

This version improves SDT support for perf-list and perf-record.
It is still just a basic support (no wildcard support, nor
@FILE/@BUILDID support). So this is an ongoing work report :)

As we discussed on the previous series, now all SDT events have
"sdt_" prefix on the provider name. We also should support "@FILE"
or "@BUILDID" suffixes for same-name SDTs.

perf-list shows only SDTs on existing binaries (no old/deleted
files) and if the same-name events are shown, it adds 
"@FILE@BUILDID" suffixes after the events to clarify on which
binary the SDT exists.

  ----
  # perf buildid-cache -a /usr/bin/gcc
  # perf list sdt

  List of pre-defined events (to be used in -e):

    sdt_libgcc:unwind                                  [SDT event]
    sdt_libstdcxx:catch                                [SDT event]
    sdt_libstdcxx:rethrow                              [SDT event]
    sdt_libstdcxx:throw                                [SDT event]
  # perf buildid-cache -a /usr/lib/libstdc++.so.6
  # perf list sdt

  List of pre-defined events (to be used in -e):

    sdt_libgcc:unwind                                  [SDT event]
    sdt_libstdcxx:catch@/usr/bin/gcc@0x05d261236bbb    [SDT event]
    sdt_libstdcxx:catch@/usr/lib/libstdc++.so.6.0.19@0xcd6ac0e6236c [SDT event]
    sdt_libstdcxx:rethrow@/usr/bin/gcc@0x05d261236bbb  [SDT event]
    sdt_libstdcxx:rethrow@/usr/lib/libstdc++.so.6.0.19@0xcd6ac0e6236c [SDT event]
    sdt_libstdcxx:throw@/usr/bin/gcc@0x05d261236bbb    [SDT event]
    sdt_libstdcxx:throw@/usr/lib/libstdc++.so.6.0.19@0xcd6ac0e6236c [SDT event]
  ----

In this version, I used "@" separater for both FILE and BUILDID,
but I think it is also possible to use "%" for BUILDID.
(BTW, I've cut down the BUILDID to the first 12 chars, and added "0x") 

TODOs:
 - (perf record) Allow glob matching for SDT event to specify events.
 - (perf record) Support @FILE/@BUILDID suffix to record specific SDTs.
 - (perf record) Try to unregister SDT events after record.
 - (perf probe) Allow glob matching for pre-cached events.
 - (perf probe) Support @FILE/@BUILDID suffix for pre-cached events.
               (also removes -x option when using pre-cached events)
 - (ftrace) Support multiple SDTs on single event.

Since multiple same SDTs are defined in a single binary (e.g. libc:setjump
has 3 different entries on libc-2.17.so), we need the last feature on
ftrace, so that a single uprobe event can occur several different
probe points.

Thank you,

---

Hemant Kumar (1):
      perf/sdt: ELF support for SDT

Masami Hiramatsu (16):
      perf probe: Use strbuf for making strings in probe-event.c
      perf-buildid-cache: Use path/to/bin/buildid/elf instead of path/to/bin/buildid
      perf buildid: Introduce sysfs/filename__sprintf_build_id
      perf: Add lsdir to read a directory
      perf-buildid-cache: Use lsdir for looking up buildid caches
      perf probe: Add --cache option to cache the probe definitions
      perf probe: Use cache entry if possible
      perf probe: Show all cached probes
      perf probe: Remove caches when --cache is given
      perf probe: Add group name support
      perf-probe: Set default kprobe group name if it is not given
      perf buildid-cache: Scan and import user SDT events to probe cache
      perf probe: Accept %sdt and %cached event name
      perf-list: Show SDT events
      perf-list: Skip SDTs placed in invalid binaries
      perf record: Support recording SDT events


 tools/perf/Documentation/perf-probe.txt |   14 +
 tools/perf/builtin-buildid-cache.c      |   14 -
 tools/perf/builtin-buildid-list.c       |   24 +
 tools/perf/builtin-list.c               |    3 
 tools/perf/builtin-probe.c              |    6 
 tools/perf/util/build-id.c              |  255 +++++++++++---
 tools/perf/util/build-id.h              |    8 
 tools/perf/util/dso.h                   |    5 
 tools/perf/util/parse-events.c          |  142 ++++++++
 tools/perf/util/parse-events.h          |    2 
 tools/perf/util/probe-event.c           |  574 ++++++++++++++++++++-----------
 tools/perf/util/probe-event.h           |   10 -
 tools/perf/util/probe-file.c            |  467 +++++++++++++++++++++++++
 tools/perf/util/probe-file.h            |   28 ++
 tools/perf/util/probe-finder.c          |   14 -
 tools/perf/util/symbol-elf.c            |  252 ++++++++++++++
 tools/perf/util/symbol.c                |    2 
 tools/perf/util/symbol.h                |   22 +
 tools/perf/util/util.c                  |   34 ++
 tools/perf/util/util.h                  |    4 
 20 files changed, 1580 insertions(+), 300 deletions(-)


-- 
Masami HIRAMATSU
Linux Technology Research Center, System Productivity Research Dept.
Center for Technology Innovation - Systems Engineering 
Hitachi, Ltd., Research & Development Group
E-mail: masami.hiramatsu.pt@hitachi.com

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2015-08-31  8:32 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-15 11:42 [RFC PATCH perf/core v3 00/17] perf-probe --cache and SDT support Masami Hiramatsu
2015-08-15 11:42 ` [RFC PATCH perf/core v3 01/17] perf probe: Use strbuf for making strings in probe-event.c Masami Hiramatsu
2015-08-28 15:56   ` Arnaldo Carvalho de Melo
2015-08-15 11:42 ` [RFC PATCH perf/core v3 02/17] perf-buildid-cache: Use path/to/bin/buildid/elf instead of path/to/bin/buildid Masami Hiramatsu
2015-08-28 16:07   ` Arnaldo Carvalho de Melo
2015-08-15 11:42 ` [RFC PATCH perf/core v3 03/17] perf buildid: Introduce sysfs/filename__sprintf_build_id Masami Hiramatsu
2015-08-28 16:14   ` Arnaldo Carvalho de Melo
2015-08-31  8:32   ` [tip:perf/core] perf buildid: Introduce sysfs/ filename__sprintf_build_id tip-bot for Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 04/17] perf: Add lsdir to read a directory Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 05/17] perf-buildid-cache: Use lsdir for looking up buildid caches Masami Hiramatsu
2015-08-28 16:17   ` Arnaldo Carvalho de Melo
2015-08-15 11:43 ` [RFC PATCH perf/core v3 06/17] perf probe: Add --cache option to cache the probe definitions Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 07/17] perf probe: Use cache entry if possible Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 08/17] perf probe: Show all cached probes Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 09/17] perf probe: Remove caches when --cache is given Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 10/17] perf/sdt: ELF support for SDT Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 11/17] perf probe: Add group name support Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 12/17] perf-probe: Set default kprobe group name if it is not given Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 13/17] perf buildid-cache: Scan and import user SDT events to probe cache Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 14/17] perf probe: Accept %sdt and %cached event name Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 15/17] perf-list: Show SDT events Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 16/17] perf-list: Skip SDTs placed in invalid binaries Masami Hiramatsu
2015-08-15 11:43 ` [RFC PATCH perf/core v3 17/17] perf record: Support recording SDT events Masami Hiramatsu
2015-08-19  8:30 ` [RFC PATCH perf/core v3 00/17] perf-probe --cache and SDT support Namhyung Kim
2015-08-19 15:15   ` 平松雅巳 / HIRAMATU,MASAMI

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox