* [GIT PULL 00/19] perf/core improvements and fixes
@ 2012-05-22 17:39 Arnaldo Carvalho de Melo
2012-05-23 15:06 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-05-22 17:39 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Anshuman Khandual,
Corey Ashford, David Ahern, Frederic Weisbecker,
Frederic Weisbecker, Jiri Olsa, Mike Galbraith, Namhyung Kim,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, Stephane Eranian,
Steven Rostedt, Tom Zanussi, arnaldo.melo,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 73787190d04a34e6da745da893b3ae8bedde418f:
Merge branch 'perf/parse-events-4' of git://github.com/fweisbec/tracing into perf/core (2012-05-21 10:42:09 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf/core
for you to fetch changes up to 26252ea675663d1bc6747125fcaa2b7cc4ed8a03:
perf evlist: Show event attribute details (2012-05-22 14:30:11 -0300)
----------------------------------------------------------------
Fixes and improvements for perf/core:
. Fix perf perl script build fallout from libtraceevent conversion,
from Frederic Weisbecker.
. Libtraceevent Makefile fixes, from Namhyung Kim
. Pipe mode fixes, from Stephane Eranian
. Event parsing improvements, from Jiri Olsa.
. Endianness fixes, from Jiri Olsa
. Bump the default sampling freq to 4 kHz, requested by Ingo Molnar.
. Show event attribute details, such as the sampling freq, in the
'perf evlist' command.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Anshuman Khandual (1):
perf record: Fix documentation for branch stack sampling
Arnaldo Carvalho de Melo (2):
perf tools: Bump default sample freq to 4 kHz
perf evlist: Show event attribute details
Frederic Weisbecker (2):
perf script: Explicitly handle known default print arg type
perf script: Rename struct event to struct event_format in perl engine
Jiri Olsa (7):
perf test: Move parse event automated tests to separated object
perf tools: Add support for displaying event parser debug info
perf tools: Use allocated list for each parsed event
perf tools: Separate 'mem:' event scanner bits
perf tools: Add hardcoded name term for pmu events
perf tools: Carry perf_event_attr bitfield throught different endians
perf tools: Add union u64_swap type for swapping u64 data
Namhyung Kim (3):
perf tools: Rename libparsevent to libtraceevent in Makefile
perf tools: Always try to build libtraceevent
perf target: Add cpu flag to sample_type if target has cpu
Stephane Eranian (4):
perf tools: rename HEADER_TRACE_INFO to HEADER_TRACING_DATA
perf inject: Fix broken perf inject -b
perf tools: Fix piped mode read code
perf buildid-list: Work better with pipe mode
tools/perf/Documentation/perf-evlist.txt | 8 +
tools/perf/Documentation/perf-record.txt | 2 +-
tools/perf/Makefile | 37 +-
tools/perf/builtin-buildid-list.c | 6 +-
tools/perf/builtin-evlist.c | 103 +++-
tools/perf/builtin-inject.c | 5 +
tools/perf/builtin-record.c | 6 +-
tools/perf/builtin-test.c | 552 +----------------
tools/perf/builtin-top.c | 5 +-
tools/perf/util/build-id.c | 2 +
tools/perf/util/evsel.c | 12 +-
tools/perf/util/header.c | 10 +-
tools/perf/util/header.h | 2 +-
tools/perf/util/parse-events-test.c | 625 ++++++++++++++++++++
tools/perf/util/parse-events.c | 69 ++-
tools/perf/util/parse-events.h | 20 +-
tools/perf/util/parse-events.l | 26 +-
tools/perf/util/parse-events.y | 77 ++-
tools/perf/util/pmu.c | 4 +-
.../perf/util/scripting-engines/trace-event-perl.c | 16 +-
tools/perf/util/session.c | 68 ++-
tools/perf/util/types.h | 5 +
22 files changed, 1002 insertions(+), 658 deletions(-)
create mode 100644 tools/perf/util/parse-events-test.c
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2012-05-22 17:39 Arnaldo Carvalho de Melo
@ 2012-05-23 15:06 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2012-05-23 15:06 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Anshuman Khandual, Corey Ashford, David Ahern,
Frederic Weisbecker, Frederic Weisbecker, Jiri Olsa,
Mike Galbraith, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Stephane Eranian, Steven Rostedt, Tom Zanussi,
arnaldo.melo, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 73787190d04a34e6da745da893b3ae8bedde418f:
>
> Merge branch 'perf/parse-events-4' of git://github.com/fweisbec/tracing into perf/core (2012-05-21 10:42:09 +0200)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux perf/core
>
> for you to fetch changes up to 26252ea675663d1bc6747125fcaa2b7cc4ed8a03:
>
> perf evlist: Show event attribute details (2012-05-22 14:30:11 -0300)
>
> ----------------------------------------------------------------
> Fixes and improvements for perf/core:
>
> . Fix perf perl script build fallout from libtraceevent conversion,
> from Frederic Weisbecker.
>
> . Libtraceevent Makefile fixes, from Namhyung Kim
>
> . Pipe mode fixes, from Stephane Eranian
>
> . Event parsing improvements, from Jiri Olsa.
>
> . Endianness fixes, from Jiri Olsa
>
> . Bump the default sampling freq to 4 kHz, requested by Ingo Molnar.
>
> . Show event attribute details, such as the sampling freq, in the
> 'perf evlist' command.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Anshuman Khandual (1):
> perf record: Fix documentation for branch stack sampling
>
> Arnaldo Carvalho de Melo (2):
> perf tools: Bump default sample freq to 4 kHz
> perf evlist: Show event attribute details
>
> Frederic Weisbecker (2):
> perf script: Explicitly handle known default print arg type
> perf script: Rename struct event to struct event_format in perl engine
>
> Jiri Olsa (7):
> perf test: Move parse event automated tests to separated object
> perf tools: Add support for displaying event parser debug info
> perf tools: Use allocated list for each parsed event
> perf tools: Separate 'mem:' event scanner bits
> perf tools: Add hardcoded name term for pmu events
> perf tools: Carry perf_event_attr bitfield throught different endians
> perf tools: Add union u64_swap type for swapping u64 data
>
> Namhyung Kim (3):
> perf tools: Rename libparsevent to libtraceevent in Makefile
> perf tools: Always try to build libtraceevent
> perf target: Add cpu flag to sample_type if target has cpu
>
> Stephane Eranian (4):
> perf tools: rename HEADER_TRACE_INFO to HEADER_TRACING_DATA
> perf inject: Fix broken perf inject -b
> perf tools: Fix piped mode read code
> perf buildid-list: Work better with pipe mode
>
> tools/perf/Documentation/perf-evlist.txt | 8 +
> tools/perf/Documentation/perf-record.txt | 2 +-
> tools/perf/Makefile | 37 +-
> tools/perf/builtin-buildid-list.c | 6 +-
> tools/perf/builtin-evlist.c | 103 +++-
> tools/perf/builtin-inject.c | 5 +
> tools/perf/builtin-record.c | 6 +-
> tools/perf/builtin-test.c | 552 +----------------
> tools/perf/builtin-top.c | 5 +-
> tools/perf/util/build-id.c | 2 +
> tools/perf/util/evsel.c | 12 +-
> tools/perf/util/header.c | 10 +-
> tools/perf/util/header.h | 2 +-
> tools/perf/util/parse-events-test.c | 625 ++++++++++++++++++++
> tools/perf/util/parse-events.c | 69 ++-
> tools/perf/util/parse-events.h | 20 +-
> tools/perf/util/parse-events.l | 26 +-
> tools/perf/util/parse-events.y | 77 ++-
> tools/perf/util/pmu.c | 4 +-
> .../perf/util/scripting-engines/trace-event-perl.c | 16 +-
> tools/perf/util/session.c | 68 ++-
> tools/perf/util/types.h | 5 +
> 22 files changed, 1002 insertions(+), 658 deletions(-)
> create mode 100644 tools/perf/util/parse-events-test.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2014-01-17 14:57 Arnaldo Carvalho de Melo
2014-01-19 12:11 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-01-17 14:57 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, David A. Long, Frederic Weisbecker, Jiri Olsa,
Masami Hiramatsu, Namhyung Kim, Oleg Nesterov, Paul Mackerras,
Peter Zijlstra, Srikar Dronamraju, Stephane Eranian,
Steven Rostedt, yrl.pp-manager.tt, Arnaldo Carvalho de Melo
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 3e7e09dbd1080de5dcf10092830e39bc2e2932ec:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-01-16 09:34:01 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
for you to fetch changes up to 2a29190c040c0b11e39197c67abf6f87e0a61f9a:
perf tools: Remove unnecessary callchain cursor state restore on unmatch (2014-01-17 11:25:24 -0300)
----------------------------------------------------------------
Developer stuff:
. Improve callchain processing by removing unnecessary work. (Frederic Weisbecker)
. Fix comm override error handling (Frederic Weisbecker)
. Improve 'perf probe' exit path, release resources (Masami Hiramatsu)
. Improve libtraceevent plugins exit path, allowing the registering of
an unregister handler to be called at exit time (Namhyung Kim)
. Add an alias to the build test makefile (make -C tools/perf build-test)
(Namhyung Kim)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Frederic Weisbecker (3):
perf tools: Do proper comm override error handling
perf callchain: Spare double comparison of callchain first entry
perf tools: Remove unnecessary callchain cursor state restore on unmatch
Masami Hiramatsu (3):
perf probe: Release allocated probe_trace_event if failed
perf probe: Release all dynamically allocated parameters
perf symbols: Export elf_section_by_name and reuse
Namhyung Kim (13):
tools lib traceevent: Add pevent_unregister_event_handler()
tools lib traceevent: Add pevent_unregister_print_function()
tools lib traceevent: Unregister handler when function plugin is unloaded
tools lib traceevent: Unregister handler when hrtimer plugin is unloaded
tools lib traceevent: Unregister handler when kmem plugin is unloaded
tools lib traceevent: Unregister handler when kvm plugin is unloaded
tools lib traceevent: Unregister handler when sched_switch plugin is unloaded
tools lib traceevent: Unregister handler when mac80211 plugin is unloaded
tools lib traceevent: Unregister handler when cfg80211 plugin is unloaded
tools lib traceevent: Unregister handler when jbd2 plugin is is unloaded
tools lib traceevent: Unregister handler when scsi plugin is unloaded
tools lib traceevent: Unregister handler when xen plugin is unloaded
perf tools: Add 'build-test' make target
tools/lib/traceevent/event-parse.c | 136 ++++++++++++++++++++++++++---
tools/lib/traceevent/event-parse.h | 5 ++
tools/lib/traceevent/plugin_cfg80211.c | 6 ++
tools/lib/traceevent/plugin_function.c | 3 +
tools/lib/traceevent/plugin_hrtimer.c | 10 +++
tools/lib/traceevent/plugin_jbd2.c | 9 ++
tools/lib/traceevent/plugin_kmem.c | 22 +++++
tools/lib/traceevent/plugin_kvm.c | 29 ++++++
tools/lib/traceevent/plugin_mac80211.c | 7 ++
tools/lib/traceevent/plugin_sched_switch.c | 12 +++
tools/lib/traceevent/plugin_scsi.c | 6 ++
tools/lib/traceevent/plugin_xen.c | 6 ++
tools/perf/Makefile | 6 ++
tools/perf/builtin-probe.c | 48 ++++++++--
tools/perf/util/callchain.c | 23 +++--
tools/perf/util/comm.c | 19 ++--
tools/perf/util/comm.h | 2 +-
tools/perf/util/probe-event.c | 111 +++++++++++++----------
tools/perf/util/probe-event.h | 6 ++
tools/perf/util/symbol-elf.c | 5 +-
tools/perf/util/symbol.h | 5 ++
tools/perf/util/thread.c | 5 +-
tools/perf/util/unwind.c | 20 +----
23 files changed, 389 insertions(+), 112 deletions(-)
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2014-01-17 14:57 Arnaldo Carvalho de Melo
@ 2014-01-19 12:11 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2014-01-19 12:11 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, David A. Long, Frederic Weisbecker, Jiri Olsa,
Masami Hiramatsu, Namhyung Kim, Oleg Nesterov, Paul Mackerras,
Peter Zijlstra, Srikar Dronamraju, Stephane Eranian,
Steven Rostedt, yrl.pp-manager.tt, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
>
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 3e7e09dbd1080de5dcf10092830e39bc2e2932ec:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2014-01-16 09:34:01 +0100)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
>
> for you to fetch changes up to 2a29190c040c0b11e39197c67abf6f87e0a61f9a:
>
> perf tools: Remove unnecessary callchain cursor state restore on unmatch (2014-01-17 11:25:24 -0300)
>
> ----------------------------------------------------------------
> Developer stuff:
>
> . Improve callchain processing by removing unnecessary work. (Frederic Weisbecker)
>
> . Fix comm override error handling (Frederic Weisbecker)
>
> . Improve 'perf probe' exit path, release resources (Masami Hiramatsu)
>
> . Improve libtraceevent plugins exit path, allowing the registering of
> an unregister handler to be called at exit time (Namhyung Kim)
>
> . Add an alias to the build test makefile (make -C tools/perf build-test)
> (Namhyung Kim)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Frederic Weisbecker (3):
> perf tools: Do proper comm override error handling
> perf callchain: Spare double comparison of callchain first entry
> perf tools: Remove unnecessary callchain cursor state restore on unmatch
>
> Masami Hiramatsu (3):
> perf probe: Release allocated probe_trace_event if failed
> perf probe: Release all dynamically allocated parameters
> perf symbols: Export elf_section_by_name and reuse
>
> Namhyung Kim (13):
> tools lib traceevent: Add pevent_unregister_event_handler()
> tools lib traceevent: Add pevent_unregister_print_function()
> tools lib traceevent: Unregister handler when function plugin is unloaded
> tools lib traceevent: Unregister handler when hrtimer plugin is unloaded
> tools lib traceevent: Unregister handler when kmem plugin is unloaded
> tools lib traceevent: Unregister handler when kvm plugin is unloaded
> tools lib traceevent: Unregister handler when sched_switch plugin is unloaded
> tools lib traceevent: Unregister handler when mac80211 plugin is unloaded
> tools lib traceevent: Unregister handler when cfg80211 plugin is unloaded
> tools lib traceevent: Unregister handler when jbd2 plugin is is unloaded
> tools lib traceevent: Unregister handler when scsi plugin is unloaded
> tools lib traceevent: Unregister handler when xen plugin is unloaded
> perf tools: Add 'build-test' make target
>
> tools/lib/traceevent/event-parse.c | 136 ++++++++++++++++++++++++++---
> tools/lib/traceevent/event-parse.h | 5 ++
> tools/lib/traceevent/plugin_cfg80211.c | 6 ++
> tools/lib/traceevent/plugin_function.c | 3 +
> tools/lib/traceevent/plugin_hrtimer.c | 10 +++
> tools/lib/traceevent/plugin_jbd2.c | 9 ++
> tools/lib/traceevent/plugin_kmem.c | 22 +++++
> tools/lib/traceevent/plugin_kvm.c | 29 ++++++
> tools/lib/traceevent/plugin_mac80211.c | 7 ++
> tools/lib/traceevent/plugin_sched_switch.c | 12 +++
> tools/lib/traceevent/plugin_scsi.c | 6 ++
> tools/lib/traceevent/plugin_xen.c | 6 ++
> tools/perf/Makefile | 6 ++
> tools/perf/builtin-probe.c | 48 ++++++++--
> tools/perf/util/callchain.c | 23 +++--
> tools/perf/util/comm.c | 19 ++--
> tools/perf/util/comm.h | 2 +-
> tools/perf/util/probe-event.c | 111 +++++++++++++----------
> tools/perf/util/probe-event.h | 6 ++
> tools/perf/util/symbol-elf.c | 5 +-
> tools/perf/util/symbol.h | 5 ++
> tools/perf/util/thread.c | 5 +-
> tools/perf/util/unwind.c | 20 +----
> 23 files changed, 389 insertions(+), 112 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2015-02-27 19:22 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-02-27 19:22 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen,
Borislav Petkov, David Ahern, He Kuang, Hemant Kumar, Jiri Olsa,
Kan Liang, Masami Hiramatsu, Namhyung Kim, Naohiro Aota,
Paul Mackerras, Peter Zijlstra, Wang Nan, Yunlong Song,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 0afb1704010f60e7ae85aef0f93fc10f2d99761e:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-02-26 12:25:20 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to fefd2d9619de3bf0bf02a8622e9f445c3d19cc3f:
perf report: Fix branch stack mode cannot be set (2015-02-27 15:52:42 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Fix SIGBUS failures due to misaligned accesses in Sparc64 (David Ahern)
- Fix branch stack mode in 'perf report' (He Kuang)
- Fix a 'perf probe' operator precedence bug (He Kuang)
- Fix Support for different binaries with same name in 'perf diff' (Kan Liang)
- Check kprobes blacklist when adding new events via 'perf probe' (Masami Hiramatsu)
- Add --purge FILE to remove all caches of FILE in 'perf buildid-cache' (Masami Hiramatsu)
- Show usage with some incorrect params (Masami Hiramatsu)
- Add new buildid cache if update target is not cached in 'buildid-cache' (Masami Hiramatsu)
- Allow listing events with 'tracepoint' prefix in 'perf list' (Yunlong Song)
- Sort the output of 'perf list' (Yunlong Song)
- Fix bash completion of 'perf --' (Yunlong Song)
Developer Zone:
- Handle strdup() failure path in 'perf probe' (Arnaldo Carvalho de Melo)
- Fix get_real_path to free allocated memory in error path in 'perf probe' (Masami Hiramatsu)
- Use pr_debug instead of verbose && pr_info perf buildid-cache (Masami Hiramatsu)
- Fix building of 'perf data' with some gcc versions due to incorrect array struct
entry (Yunlong Song)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf probe: Handle strdup() failure
David Ahern (1):
perf trace: Fix SIGBUS failures due to misaligned accesses
He Kuang (2):
perf probe: Fix a precedence bug
perf report: Fix branch stack mode cannot be set
Kan Liang (1):
perf diff: Support for different binaries
Masami Hiramatsu (6):
perf probe: Check kprobes blacklist when adding new events
perf probe: Fix get_real_path to free allocated memory in error path
perf buildid-cache: Add new buildid cache if update target is not cached
perf buildid-cache: Add --purge FILE to remove all caches of FILE
perf buildid-cache: Use pr_debug instead of verbose && pr_info
perf buildid-cache: Show usage with incorrect params
Yunlong Song (8):
perf data: Fix sentinel setting for data_cmds array
perf list: Sort the output of 'perf list' to view more clearly
perf list: Allow listing events with 'tracepoint' prefix
perf list: Avoid confusion of perf output and the next command prompt
perf tools: Remove the '--(null)' long_name for --list-opts
perf list: Clean up the printing functions of hardware/software events
perf list: Extend raw-dump to certain kind of events
perf tools: Fix the bash completion problem of 'perf --*'
tools/perf/Documentation/perf-buildid-cache.txt | 24 ++-
tools/perf/Documentation/perf-diff.txt | 5 +
tools/perf/Documentation/perf-list.txt | 6 +
tools/perf/builtin-buildid-cache.c | 72 ++++++--
tools/perf/builtin-data.c | 2 +-
tools/perf/builtin-list.c | 27 ++-
tools/perf/builtin-report.c | 2 +-
tools/perf/builtin-trace.c | 36 +++-
tools/perf/perf-completion.sh | 6 +-
tools/perf/perf.c | 28 ++++
tools/perf/util/build-id.c | 105 ++++++++++--
tools/perf/util/build-id.h | 4 +
tools/perf/util/parse-events.c | 210 +++++++++++++++++-------
tools/perf/util/parse-events.h | 11 +-
tools/perf/util/parse-options.c | 5 +-
tools/perf/util/probe-event.c | 117 ++++++++++++-
tools/perf/util/sort.c | 9 +
17 files changed, 542 insertions(+), 127 deletions(-)
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2015-03-21 18:54 Arnaldo Carvalho de Melo
2015-03-22 9:58 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-03-21 18:54 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Borislav Petkov, Corey Ashford, David Ahern, Don Zickus,
Frederic Weisbecker, He Kuang, Jiri Olsa, Masami Hiramatsu,
Mike Galbraith, Milos Vyletel, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, pi3orama, Stephane Eranian, Steven Rostedt,
Wang Nan, Yunlong Song, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, this is on top of my previous pull request,
Thanks,
- Arnaldo
The following changes since commit 0c8c20779c5d56b93b8cb4cd30ba129a927ab437:
perf report: Don't allow empty argument for '-t'. (2015-03-19 13:53:28 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
for you to fetch changes up to ca33380adf74afb985bf7aab09ec46707a5d2d57:
perf tools: Use kmod_path__parse for machine__new_dso (2015-03-21 14:58:07 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Handle legacy syscalls tracepoints (David Ahern, Arnaldo Carvalho de Melo)
- Indicate which callchain entries are annotated in the
TUI hists browser (report/top) (Arnaldo Carvalho de Melo)
- Fix failure to add multiple probes without debuginfo (He Kuang)
- Fix 'trace' summary_only option (David Ahern)
- Fix race in build_id_cache__add_s() in 'buildid-cache' (Milos Vyletel)
- Don't allow empty argument for field-separator, fixing segfault (Wang Nan)
Infrastructure:
- Add destructor for format_field in libtraceevent (David Ahern)
- Prep work for support lzma compressed kernel modules (Jiri Olsa)
- Update .gitignore with recently added/renamed feature detection files (Yunlong Song)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf trace: Handle legacy syscalls tracepoints
perf hists browser: Indicate which callchain entries are annotated
David Ahern (2):
perf trace: Fix summary_only option
tools lib traceevent: Add destructor for format_field
He Kuang (1):
perf probe: Fix failure to add multiple probes without debuginfo
Jiri Olsa (10):
perf build: Fix feature_check name clash
perf build: Separate feature make support into config/Makefile.feature
perf build: Make features checks directory configurable
perf build: Move feature checks code under tools/build
tools build: Add feature check for lzma library
perf tools: Add lzma decompression support for kernel module
perf tools: Add kmod_path__parse function
perf tools: Add dsos__addnew function
perf tools: Add machine__module_dso function
perf tools: Use kmod_path__parse for machine__new_dso
Milos Vyletel (1):
perf tools: Fix race in build_id_cache__add_s()
Wang Nan (1):
perf tools: Don't allow empty argument for field-separator
Yunlong Song (2):
perf build: Use FEATURE-DUMP instead of PERF-FEATURES in the .gitignore file
perf build: Add config/feature-checks/*.output to the .gitignore file
tools/build/Makefile.feature | 171 ++++++++++++++++++++
.../feature-checks => build/feature}/.gitignore | 1 +
.../feature-checks => build/feature}/Makefile | 8 +-
.../feature-checks => build/feature}/test-all.c | 5 +
.../feature}/test-backtrace.c | 0
.../feature-checks => build/feature}/test-bionic.c | 0
.../feature}/test-compile.c | 0
.../feature}/test-cplus-demangle.c | 0
.../feature-checks => build/feature}/test-dwarf.c | 0
.../feature}/test-fortify-source.c | 0
.../feature-checks => build/feature}/test-glibc.c | 0
.../feature}/test-gtk2-infobar.c | 0
.../feature-checks => build/feature}/test-gtk2.c | 0
.../feature-checks => build/feature}/test-hello.c | 0
.../feature}/test-libaudit.c | 0
.../feature}/test-libbabeltrace.c | 0
.../feature-checks => build/feature}/test-libbfd.c | 0
.../feature}/test-libdw-dwarf-unwind.c | 0
.../feature}/test-libelf-getphdrnum.c | 0
.../feature}/test-libelf-mmap.c | 0
.../feature-checks => build/feature}/test-libelf.c | 0
.../feature}/test-libnuma.c | 0
.../feature}/test-libperl.c | 0
.../feature}/test-libpython-version.c | 0
.../feature}/test-libpython.c | 0
.../feature}/test-libslang.c | 0
.../feature}/test-libunwind-debug-frame.c | 0
.../feature}/test-libunwind.c | 0
tools/build/feature/test-lzma.c | 10 ++
.../feature}/test-pthread-attr-setaffinity-np.c | 0
.../feature}/test-stackprotector-all.c | 0
.../feature}/test-sync-compare-and-swap.c | 0
.../feature}/test-timerfd.c | 0
.../feature-checks => build/feature}/test-zlib.c | 0
tools/lib/traceevent/event-parse.c | 11 +-
tools/lib/traceevent/event-parse.h | 1 +
tools/perf/.gitignore | 2 +-
tools/perf/Makefile.perf | 4 +-
tools/perf/builtin-diff.c | 2 +-
tools/perf/builtin-mem.c | 2 +-
tools/perf/builtin-trace.c | 21 ++-
tools/perf/config/Makefile | 176 ++-------------------
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/kmod-path.c | 73 +++++++++
tools/perf/tests/tests.h | 1 +
tools/perf/ui/browsers/hists.c | 4 +-
tools/perf/util/Build | 1 +
tools/perf/util/build-id.c | 3 +-
tools/perf/util/dso.c | 90 +++++++++--
tools/perf/util/dso.h | 15 ++
tools/perf/util/lzma.c | 95 +++++++++++
tools/perf/util/machine.c | 83 +++++-----
tools/perf/util/probe-event.c | 4 +-
tools/perf/util/util.h | 4 +
55 files changed, 557 insertions(+), 235 deletions(-)
create mode 100644 tools/build/Makefile.feature
rename tools/{perf/config/feature-checks => build/feature}/.gitignore (52%)
rename tools/{perf/config/feature-checks => build/feature}/Makefile (96%)
rename tools/{perf/config/feature-checks => build/feature}/test-all.c (97%)
rename tools/{perf/config/feature-checks => build/feature}/test-backtrace.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-bionic.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-compile.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-cplus-demangle.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-dwarf.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-fortify-source.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-glibc.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-gtk2-infobar.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-gtk2.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-hello.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libaudit.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libbabeltrace.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libbfd.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libdw-dwarf-unwind.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libelf-getphdrnum.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libelf-mmap.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libelf.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libnuma.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libperl.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libpython-version.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libpython.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libslang.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libunwind-debug-frame.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-libunwind.c (100%)
create mode 100644 tools/build/feature/test-lzma.c
rename tools/{perf/config/feature-checks => build/feature}/test-pthread-attr-setaffinity-np.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-stackprotector-all.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-sync-compare-and-swap.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-timerfd.c (100%)
rename tools/{perf/config/feature-checks => build/feature}/test-zlib.c (100%)
create mode 100644 tools/perf/tests/kmod-path.c
create mode 100644 tools/perf/util/lzma.c
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2015-03-21 18:54 Arnaldo Carvalho de Melo
@ 2015-03-22 9:58 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2015-03-22 9:58 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Borislav Petkov, Corey Ashford,
David Ahern, Don Zickus, Frederic Weisbecker, He Kuang, Jiri Olsa,
Masami Hiramatsu, Mike Galbraith, Milos Vyletel, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, pi3orama, Stephane Eranian,
Steven Rostedt, Wang Nan, Yunlong Song, Zefan Li,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling, this is on top of my previous pull request,
>
> Thanks,
>
> - Arnaldo
>
> The following changes since commit 0c8c20779c5d56b93b8cb4cd30ba129a927ab437:
>
> perf report: Don't allow empty argument for '-t'. (2015-03-19 13:53:28 -0300)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-2
>
> for you to fetch changes up to ca33380adf74afb985bf7aab09ec46707a5d2d57:
>
> perf tools: Use kmod_path__parse for machine__new_dso (2015-03-21 14:58:07 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> - Handle legacy syscalls tracepoints (David Ahern, Arnaldo Carvalho de Melo)
>
> - Indicate which callchain entries are annotated in the
> TUI hists browser (report/top) (Arnaldo Carvalho de Melo)
>
> - Fix failure to add multiple probes without debuginfo (He Kuang)
>
> - Fix 'trace' summary_only option (David Ahern)
>
> - Fix race in build_id_cache__add_s() in 'buildid-cache' (Milos Vyletel)
>
> - Don't allow empty argument for field-separator, fixing segfault (Wang Nan)
>
> Infrastructure:
>
> - Add destructor for format_field in libtraceevent (David Ahern)
>
> - Prep work for support lzma compressed kernel modules (Jiri Olsa)
>
> - Update .gitignore with recently added/renamed feature detection files (Yunlong Song)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf trace: Handle legacy syscalls tracepoints
> perf hists browser: Indicate which callchain entries are annotated
>
> David Ahern (2):
> perf trace: Fix summary_only option
> tools lib traceevent: Add destructor for format_field
>
> He Kuang (1):
> perf probe: Fix failure to add multiple probes without debuginfo
>
> Jiri Olsa (10):
> perf build: Fix feature_check name clash
> perf build: Separate feature make support into config/Makefile.feature
> perf build: Make features checks directory configurable
> perf build: Move feature checks code under tools/build
> tools build: Add feature check for lzma library
> perf tools: Add lzma decompression support for kernel module
> perf tools: Add kmod_path__parse function
> perf tools: Add dsos__addnew function
> perf tools: Add machine__module_dso function
> perf tools: Use kmod_path__parse for machine__new_dso
>
> Milos Vyletel (1):
> perf tools: Fix race in build_id_cache__add_s()
>
> Wang Nan (1):
> perf tools: Don't allow empty argument for field-separator
>
> Yunlong Song (2):
> perf build: Use FEATURE-DUMP instead of PERF-FEATURES in the .gitignore file
> perf build: Add config/feature-checks/*.output to the .gitignore file
>
> tools/build/Makefile.feature | 171 ++++++++++++++++++++
> .../feature-checks => build/feature}/.gitignore | 1 +
> .../feature-checks => build/feature}/Makefile | 8 +-
> .../feature-checks => build/feature}/test-all.c | 5 +
> .../feature}/test-backtrace.c | 0
> .../feature-checks => build/feature}/test-bionic.c | 0
> .../feature}/test-compile.c | 0
> .../feature}/test-cplus-demangle.c | 0
> .../feature-checks => build/feature}/test-dwarf.c | 0
> .../feature}/test-fortify-source.c | 0
> .../feature-checks => build/feature}/test-glibc.c | 0
> .../feature}/test-gtk2-infobar.c | 0
> .../feature-checks => build/feature}/test-gtk2.c | 0
> .../feature-checks => build/feature}/test-hello.c | 0
> .../feature}/test-libaudit.c | 0
> .../feature}/test-libbabeltrace.c | 0
> .../feature-checks => build/feature}/test-libbfd.c | 0
> .../feature}/test-libdw-dwarf-unwind.c | 0
> .../feature}/test-libelf-getphdrnum.c | 0
> .../feature}/test-libelf-mmap.c | 0
> .../feature-checks => build/feature}/test-libelf.c | 0
> .../feature}/test-libnuma.c | 0
> .../feature}/test-libperl.c | 0
> .../feature}/test-libpython-version.c | 0
> .../feature}/test-libpython.c | 0
> .../feature}/test-libslang.c | 0
> .../feature}/test-libunwind-debug-frame.c | 0
> .../feature}/test-libunwind.c | 0
> tools/build/feature/test-lzma.c | 10 ++
> .../feature}/test-pthread-attr-setaffinity-np.c | 0
> .../feature}/test-stackprotector-all.c | 0
> .../feature}/test-sync-compare-and-swap.c | 0
> .../feature}/test-timerfd.c | 0
> .../feature-checks => build/feature}/test-zlib.c | 0
> tools/lib/traceevent/event-parse.c | 11 +-
> tools/lib/traceevent/event-parse.h | 1 +
> tools/perf/.gitignore | 2 +-
> tools/perf/Makefile.perf | 4 +-
> tools/perf/builtin-diff.c | 2 +-
> tools/perf/builtin-mem.c | 2 +-
> tools/perf/builtin-trace.c | 21 ++-
> tools/perf/config/Makefile | 176 ++-------------------
> tools/perf/tests/Build | 1 +
> tools/perf/tests/builtin-test.c | 4 +
> tools/perf/tests/kmod-path.c | 73 +++++++++
> tools/perf/tests/tests.h | 1 +
> tools/perf/ui/browsers/hists.c | 4 +-
> tools/perf/util/Build | 1 +
> tools/perf/util/build-id.c | 3 +-
> tools/perf/util/dso.c | 90 +++++++++--
> tools/perf/util/dso.h | 15 ++
> tools/perf/util/lzma.c | 95 +++++++++++
> tools/perf/util/machine.c | 83 +++++-----
> tools/perf/util/probe-event.c | 4 +-
> tools/perf/util/util.h | 4 +
> 55 files changed, 557 insertions(+), 235 deletions(-)
> create mode 100644 tools/build/Makefile.feature
> rename tools/{perf/config/feature-checks => build/feature}/.gitignore (52%)
> rename tools/{perf/config/feature-checks => build/feature}/Makefile (96%)
> rename tools/{perf/config/feature-checks => build/feature}/test-all.c (97%)
> rename tools/{perf/config/feature-checks => build/feature}/test-backtrace.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-bionic.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-compile.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-cplus-demangle.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-dwarf.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-fortify-source.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-glibc.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-gtk2-infobar.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-gtk2.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-hello.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libaudit.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libbabeltrace.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libbfd.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libdw-dwarf-unwind.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libelf-getphdrnum.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libelf-mmap.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libelf.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libnuma.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libperl.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libpython-version.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libpython.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libslang.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libunwind-debug-frame.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-libunwind.c (100%)
> create mode 100644 tools/build/feature/test-lzma.c
> rename tools/{perf/config/feature-checks => build/feature}/test-pthread-attr-setaffinity-np.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-stackprotector-all.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-sync-compare-and-swap.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-timerfd.c (100%)
> rename tools/{perf/config/feature-checks => build/feature}/test-zlib.c (100%)
> create mode 100644 tools/perf/tests/kmod-path.c
> create mode 100644 tools/perf/util/lzma.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2015-04-08 14:23 Arnaldo Carvalho de Melo
2015-04-08 15:05 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-04-08 14:23 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Andi Kleen, Andrew Morton, Borislav Petkov,
David Ahern, Frederic Weisbecker, He Kuang, H. Peter Anvin,
Jiri Olsa, John Stultz, Joonsoo Kim, Kaixu Xia, Kan Liang,
Linus Torvalds, linux-mm, Markus T Metzger, Masami Hiramatsu,
Mathieu Poirier, Mike Galbraith, Minchan Kim, Namhyung Kim,
Paul Mackerras, Peter Zijlstra, pi3orama, Robert Richter,
Stephane Eranian, Steven Rostedt, Thomas Gleixner, Wang Nan,
William Cohen, Yunlong Song, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, it is the pull req from yesterday, minus a patch
that introduced a problem, plus a fex fixes.
I am investigating a problem I noticed for another patch that is upstream
and after that will get back to the removed patch from yesterday's batch,
- Arnaldo
The following changes since commit 6645f3187f5beb64f7a40515cfa18f3889264ece:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-04-03 07:00:02 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to a1e12da4796a4ddd0e911687a290eb396d1c64bf:
perf tools: Add 'I' event modifier for exclude_idle bit (2015-04-08 11:00:16 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Teach about perf_event_attr.clockid to 'perf record' (Peter Zijlstra)
- perf sched replay improvements for high CPU core count machines (Yunlong Song)
- Consider PERF_RECORD_ events with cpumode == 0 in 'perf top', removing one
cause of long term memory usage buildup, i.e. not processing PERF_RECORD_EXIT
events (Arnaldo Carvalho de Melo)
- Add 'I' event modifier for perf_event_attr.exclude_idle bit (Jiri Olsa)
- Respect -i option 'in perf kmem' (Jiri Olsa)
Infrastructure:
- Honor operator priority in libtraceevent (Namhyung Kim)
- Merge all perf_event_attr print functions (Peter Zijlstra)
- Check kmaps access to make code more robust (Wang Nan)
- Fix inverted logic in perf_mmap__empty() (He Kuang)
- Fix ARM 32 'perf probe' building error (Wang Nan)
- Fix perf_event_attr tests (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
He Kuang (1):
perf evlist: Fix inverted logic in perf_mmap__empty
Jiri Olsa (3):
perf kmem: Respect -i option
perf tests: Fix attr tests
perf tools: Add 'I' event modifier for exclude_idle bit
Namhyung Kim (1):
tools lib traceevent: Honor operator priority
Peter Zijlstra (2):
perf record: Add clockid parameter
perf tools: Merge all perf_event_attr print functions
Wang Nan (3):
perf kmaps: Check kmaps to make code more robust
perf probe: Fix ARM 32 building error
perf report: Don't call map__kmap if map is NULL.
Yunlong Song (9):
perf sched replay: Use struct task_desc instead of struct task_task for correct meaning
perf sched replay: Increase the MAX_PID value to fix assertion failure problem
perf sched replay: Alloc the memory of pid_to_task dynamically to adapt to the unexpected change of pid_max
perf sched replay: Realloc the memory of pid_to_task stepwise to adapt to the different pid_max configurations
perf sched replay: Fix the segmentation fault problem caused by pr_err in threads
perf sched replay: Handle the dead halt of sem_wait when create_tasks() fails for any task
perf sched replay: Fix the EMFILE error caused by the limitation of the maximum open files
perf sched replay: Support using -f to override perf.data file ownership
perf sched replay: Use replay_repeat to calculate the runavg of cpu usage instead of the default value 10
tools/lib/traceevent/event-parse.c | 17 +-
tools/perf/Documentation/perf-list.txt | 1 +
tools/perf/Documentation/perf-record.txt | 7 +
tools/perf/builtin-kmem.c | 3 +-
tools/perf/builtin-record.c | 87 +++++++++
tools/perf/builtin-report.c | 2 +-
tools/perf/builtin-sched.c | 67 +++++--
tools/perf/perf.h | 2 +
tools/perf/tests/attr/base-record | 2 +-
tools/perf/tests/attr/base-stat | 2 +-
tools/perf/tests/parse-events.c | 40 ++++
tools/perf/util/evlist.c | 2 +-
tools/perf/util/evsel.c | 325 ++++++++++++++++---------------
tools/perf/util/evsel.h | 6 +
tools/perf/util/header.c | 28 +--
tools/perf/util/machine.c | 5 +-
tools/perf/util/map.c | 20 ++
tools/perf/util/map.h | 6 +-
tools/perf/util/parse-events.c | 8 +-
tools/perf/util/parse-events.l | 2 +-
tools/perf/util/probe-event.c | 5 +-
tools/perf/util/session.c | 3 +
tools/perf/util/symbol-elf.c | 16 +-
tools/perf/util/symbol.c | 34 +++-
24 files changed, 477 insertions(+), 213 deletions(-)
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2015-04-08 14:23 Arnaldo Carvalho de Melo
@ 2015-04-08 15:05 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2015-04-08 15:05 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin, Andi Kleen,
Andrew Morton, Borislav Petkov, David Ahern, Frederic Weisbecker,
He Kuang, H. Peter Anvin, Jiri Olsa, John Stultz, Joonsoo Kim,
Kaixu Xia, Kan Liang, Linus Torvalds, linux-mm, Markus T Metzger,
Masami Hiramatsu, Mathieu Poirier, Mike Galbraith, Minchan Kim,
Namhyung Kim, Paul Mackerras, Peter Zijlstra, pi3orama,
Robert Richter, Stephane Eranian, Steven Rostedt, Thomas Gleixner,
Wang Nan, William Cohen, Yunlong Song, Zefan Li,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling, it is the pull req from yesterday, minus a patch
> that introduced a problem, plus a fex fixes.
>
> I am investigating a problem I noticed for another patch that is upstream
> and after that will get back to the removed patch from yesterday's batch,
>
> - Arnaldo
>
> The following changes since commit 6645f3187f5beb64f7a40515cfa18f3889264ece:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-04-03 07:00:02 +0200)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to a1e12da4796a4ddd0e911687a290eb396d1c64bf:
>
> perf tools: Add 'I' event modifier for exclude_idle bit (2015-04-08 11:00:16 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> - Teach about perf_event_attr.clockid to 'perf record' (Peter Zijlstra)
>
> - perf sched replay improvements for high CPU core count machines (Yunlong Song)
>
> - Consider PERF_RECORD_ events with cpumode == 0 in 'perf top', removing one
> cause of long term memory usage buildup, i.e. not processing PERF_RECORD_EXIT
> events (Arnaldo Carvalho de Melo)
>
> - Add 'I' event modifier for perf_event_attr.exclude_idle bit (Jiri Olsa)
>
> - Respect -i option 'in perf kmem' (Jiri Olsa)
>
> Infrastructure:
>
> - Honor operator priority in libtraceevent (Namhyung Kim)
>
> - Merge all perf_event_attr print functions (Peter Zijlstra)
>
> - Check kmaps access to make code more robust (Wang Nan)
>
> - Fix inverted logic in perf_mmap__empty() (He Kuang)
>
> - Fix ARM 32 'perf probe' building error (Wang Nan)
>
> - Fix perf_event_attr tests (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> He Kuang (1):
> perf evlist: Fix inverted logic in perf_mmap__empty
>
> Jiri Olsa (3):
> perf kmem: Respect -i option
> perf tests: Fix attr tests
> perf tools: Add 'I' event modifier for exclude_idle bit
>
> Namhyung Kim (1):
> tools lib traceevent: Honor operator priority
>
> Peter Zijlstra (2):
> perf record: Add clockid parameter
> perf tools: Merge all perf_event_attr print functions
>
> Wang Nan (3):
> perf kmaps: Check kmaps to make code more robust
> perf probe: Fix ARM 32 building error
> perf report: Don't call map__kmap if map is NULL.
>
> Yunlong Song (9):
> perf sched replay: Use struct task_desc instead of struct task_task for correct meaning
> perf sched replay: Increase the MAX_PID value to fix assertion failure problem
> perf sched replay: Alloc the memory of pid_to_task dynamically to adapt to the unexpected change of pid_max
> perf sched replay: Realloc the memory of pid_to_task stepwise to adapt to the different pid_max configurations
> perf sched replay: Fix the segmentation fault problem caused by pr_err in threads
> perf sched replay: Handle the dead halt of sem_wait when create_tasks() fails for any task
> perf sched replay: Fix the EMFILE error caused by the limitation of the maximum open files
> perf sched replay: Support using -f to override perf.data file ownership
> perf sched replay: Use replay_repeat to calculate the runavg of cpu usage instead of the default value 10
>
> tools/lib/traceevent/event-parse.c | 17 +-
> tools/perf/Documentation/perf-list.txt | 1 +
> tools/perf/Documentation/perf-record.txt | 7 +
> tools/perf/builtin-kmem.c | 3 +-
> tools/perf/builtin-record.c | 87 +++++++++
> tools/perf/builtin-report.c | 2 +-
> tools/perf/builtin-sched.c | 67 +++++--
> tools/perf/perf.h | 2 +
> tools/perf/tests/attr/base-record | 2 +-
> tools/perf/tests/attr/base-stat | 2 +-
> tools/perf/tests/parse-events.c | 40 ++++
> tools/perf/util/evlist.c | 2 +-
> tools/perf/util/evsel.c | 325 ++++++++++++++++---------------
> tools/perf/util/evsel.h | 6 +
> tools/perf/util/header.c | 28 +--
> tools/perf/util/machine.c | 5 +-
> tools/perf/util/map.c | 20 ++
> tools/perf/util/map.h | 6 +-
> tools/perf/util/parse-events.c | 8 +-
> tools/perf/util/parse-events.l | 2 +-
> tools/perf/util/probe-event.c | 5 +-
> tools/perf/util/session.c | 3 +
> tools/perf/util/symbol-elf.c | 16 +-
> tools/perf/util/symbol.c | 34 +++-
> 24 files changed, 477 insertions(+), 213 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-02-05 16:25 Arnaldo Carvalho de Melo
2016-02-09 9:40 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-02-05 16:25 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Andi Kleen,
Carl Love, David Ahern, Jiri Olsa, John McCutchan,
Marcin Ślusarz, Namhyung Kim, Pawel Moll, Peter Zijlstra,
Sonny Rao, Stephane Eranian, Sukadev Bhattiprolu, Taeung Song,
Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit d3aaf09f889b31f3b424bf9603b163ec1204c361:
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-04 08:58:01 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
for you to fetch changes up to 598b7c6919c7bbcc1243009721a01bc12275ff3e:
perf jit: add source line info support (2016-02-05 12:33:09 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible fixes:
- Handle spaces in file names obtained from /proc/pid/maps (Marcin Ślusarz)
New features:
- Improved support for java, using the JVMTI agent library to do jitdumps
that then will be inserted in synthesized PERF_RECORD_MMAP2 events via
'perf inject' pointed to synthesized ELF files stored in ~/.debug and
keyed with build-ids, to allow symbol resolution and even annotation with
source line info, see the changeset comments to see how to use it (Stephane Eranian)
Documentation:
- Document mmore variables in the 'perf config' man page (Taeung Song)
Infrastructure:
- Improve a bit the 'make -C tools/perf build-test' output (Arnaldo Carvalho de Melo)
- Do 'build-test' in parallell, using 'make -j' (Arnaldo Carvalho de Melo)
- Fix handling of 'clean' in multi-target make invokations for parallell builds (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (4):
perf build tests: Elide "-f Makefile" from make invokation
perf build tests: Move the feature related vars to the front of the make cmdline
perf build tests: Do parallell builds with 'build-test'
perf inject: Make sure mmap records are ordered when injecting build_ids
Jiri Olsa (1):
perf tools: Fix parallel build including 'clean' target
Marcin Ślusarz (1):
perf tools: handle spaces in file names obtained from /proc/pid/maps
Stephane Eranian (5):
perf symbols: add Java demangling support
perf build: Add libcrypto feature detection
perf inject: Add jitdump mmap injection support
perf tools: add JVMTI agent library
perf jit: add source line info support
Taeung Song (8):
perf config: Document 'ui.show-headers' variable in man page
perf config: Document variables for 'call-graph' section in man page
perf config: Document variables for 'report' section in man page
perf config: Document 'top.children' variable in man page
perf config: Document 'man.viewer' variable in man page
perf config: Document 'pager.<subcommand>' variables in man page
perf config: Document 'kmem.default' variable in man page
perf config: Document 'record.build-id' variable in man page
tools/build/Makefile.feature | 2 +
tools/build/feature/Makefile | 4 +
tools/build/feature/test-all.c | 5 +
tools/build/feature/test-libcrypto.c | 17 +
tools/perf/Documentation/perf-config.txt | 143 +++++++
tools/perf/Documentation/perf-inject.txt | 7 +
tools/perf/Makefile | 16 +-
tools/perf/Makefile.perf | 3 +
tools/perf/builtin-inject.c | 107 ++++-
tools/perf/config/Makefile | 11 +
tools/perf/jvmti/Makefile | 76 ++++
tools/perf/jvmti/jvmti_agent.c | 465 +++++++++++++++++++++
tools/perf/jvmti/jvmti_agent.h | 36 ++
tools/perf/jvmti/libjvmti.c | 304 ++++++++++++++
tools/perf/tests/make | 11 +-
tools/perf/util/Build | 6 +
tools/perf/util/demangle-java.c | 199 +++++++++
tools/perf/util/demangle-java.h | 10 +
tools/perf/util/event.c | 2 +-
tools/perf/util/genelf.c | 449 +++++++++++++++++++++
tools/perf/util/genelf.h | 67 +++
tools/perf/util/genelf_debug.c | 610 ++++++++++++++++++++++++++++
tools/perf/util/jit.h | 15 +
tools/perf/util/jitdump.c | 672 +++++++++++++++++++++++++++++++
tools/perf/util/jitdump.h | 124 ++++++
tools/perf/util/symbol-elf.c | 3 +
26 files changed, 3357 insertions(+), 7 deletions(-)
create mode 100644 tools/build/feature/test-libcrypto.c
create mode 100644 tools/perf/jvmti/Makefile
create mode 100644 tools/perf/jvmti/jvmti_agent.c
create mode 100644 tools/perf/jvmti/jvmti_agent.h
create mode 100644 tools/perf/jvmti/libjvmti.c
create mode 100644 tools/perf/util/demangle-java.c
create mode 100644 tools/perf/util/demangle-java.h
create mode 100644 tools/perf/util/genelf.c
create mode 100644 tools/perf/util/genelf.h
create mode 100644 tools/perf/util/genelf_debug.c
create mode 100644 tools/perf/util/jit.h
create mode 100644 tools/perf/util/jitdump.c
create mode 100644 tools/perf/util/jitdump.h
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-02-05 16:25 Arnaldo Carvalho de Melo
@ 2016-02-09 9:40 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-02-09 9:40 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Andi Kleen, Carl Love, David Ahern,
Jiri Olsa, John McCutchan, Marcin Ślusarz, Namhyung Kim,
Pawel Moll, Peter Zijlstra, Sonny Rao, Stephane Eranian,
Sukadev Bhattiprolu, Taeung Song, Wang Nan,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit d3aaf09f889b31f3b424bf9603b163ec1204c361:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-04 08:58:01 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo
>
> for you to fetch changes up to 598b7c6919c7bbcc1243009721a01bc12275ff3e:
>
> perf jit: add source line info support (2016-02-05 12:33:09 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible fixes:
>
> - Handle spaces in file names obtained from /proc/pid/maps (Marcin Ślusarz)
>
> New features:
>
> - Improved support for java, using the JVMTI agent library to do jitdumps
> that then will be inserted in synthesized PERF_RECORD_MMAP2 events via
> 'perf inject' pointed to synthesized ELF files stored in ~/.debug and
> keyed with build-ids, to allow symbol resolution and even annotation with
> source line info, see the changeset comments to see how to use it (Stephane Eranian)
>
> Documentation:
>
> - Document mmore variables in the 'perf config' man page (Taeung Song)
>
> Infrastructure:
>
> - Improve a bit the 'make -C tools/perf build-test' output (Arnaldo Carvalho de Melo)
>
> - Do 'build-test' in parallell, using 'make -j' (Arnaldo Carvalho de Melo)
>
> - Fix handling of 'clean' in multi-target make invokations for parallell builds (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (4):
> perf build tests: Elide "-f Makefile" from make invokation
> perf build tests: Move the feature related vars to the front of the make cmdline
> perf build tests: Do parallell builds with 'build-test'
> perf inject: Make sure mmap records are ordered when injecting build_ids
>
> Jiri Olsa (1):
> perf tools: Fix parallel build including 'clean' target
>
> Marcin Ślusarz (1):
> perf tools: handle spaces in file names obtained from /proc/pid/maps
>
> Stephane Eranian (5):
> perf symbols: add Java demangling support
> perf build: Add libcrypto feature detection
> perf inject: Add jitdump mmap injection support
> perf tools: add JVMTI agent library
> perf jit: add source line info support
>
> Taeung Song (8):
> perf config: Document 'ui.show-headers' variable in man page
> perf config: Document variables for 'call-graph' section in man page
> perf config: Document variables for 'report' section in man page
> perf config: Document 'top.children' variable in man page
> perf config: Document 'man.viewer' variable in man page
> perf config: Document 'pager.<subcommand>' variables in man page
> perf config: Document 'kmem.default' variable in man page
> perf config: Document 'record.build-id' variable in man page
>
> tools/build/Makefile.feature | 2 +
> tools/build/feature/Makefile | 4 +
> tools/build/feature/test-all.c | 5 +
> tools/build/feature/test-libcrypto.c | 17 +
> tools/perf/Documentation/perf-config.txt | 143 +++++++
> tools/perf/Documentation/perf-inject.txt | 7 +
> tools/perf/Makefile | 16 +-
> tools/perf/Makefile.perf | 3 +
> tools/perf/builtin-inject.c | 107 ++++-
> tools/perf/config/Makefile | 11 +
> tools/perf/jvmti/Makefile | 76 ++++
> tools/perf/jvmti/jvmti_agent.c | 465 +++++++++++++++++++++
> tools/perf/jvmti/jvmti_agent.h | 36 ++
> tools/perf/jvmti/libjvmti.c | 304 ++++++++++++++
> tools/perf/tests/make | 11 +-
> tools/perf/util/Build | 6 +
> tools/perf/util/demangle-java.c | 199 +++++++++
> tools/perf/util/demangle-java.h | 10 +
> tools/perf/util/event.c | 2 +-
> tools/perf/util/genelf.c | 449 +++++++++++++++++++++
> tools/perf/util/genelf.h | 67 +++
> tools/perf/util/genelf_debug.c | 610 ++++++++++++++++++++++++++++
> tools/perf/util/jit.h | 15 +
> tools/perf/util/jitdump.c | 672 +++++++++++++++++++++++++++++++
> tools/perf/util/jitdump.h | 124 ++++++
> tools/perf/util/symbol-elf.c | 3 +
> 26 files changed, 3357 insertions(+), 7 deletions(-)
> create mode 100644 tools/build/feature/test-libcrypto.c
> create mode 100644 tools/perf/jvmti/Makefile
> create mode 100644 tools/perf/jvmti/jvmti_agent.c
> create mode 100644 tools/perf/jvmti/jvmti_agent.h
> create mode 100644 tools/perf/jvmti/libjvmti.c
> create mode 100644 tools/perf/util/demangle-java.c
> create mode 100644 tools/perf/util/demangle-java.h
> create mode 100644 tools/perf/util/genelf.c
> create mode 100644 tools/perf/util/genelf.h
> create mode 100644 tools/perf/util/genelf_debug.c
> create mode 100644 tools/perf/util/jit.h
> create mode 100644 tools/perf/util/jitdump.c
> create mode 100644 tools/perf/util/jitdump.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-02-26 23:18 Arnaldo Carvalho de Melo
2016-02-27 9:36 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-02-26 23:18 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Andi Kleen, David Ahern, Jiri Olsa, Kan Liang,
Li Zefan, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
pi3orama, Stephane Eranian, Taeung Song, Wang Nan,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 06466212a69c0511c5dcff7363c207ffc8913731:
Merge tag 'perf-core-for-mingo-20160224' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-25 08:20:56 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160226
for you to fetch changes up to 1d6c9407d45dd622b277ca9f725da3cc9e95b5de:
perf trace: Print content of bpf-output event (2016-02-26 19:57:07 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Show extra line telling no entries below --percent-limit are
at that --hierarchy level (Namhyung Kim)
- 'perf report/top --hierarchy' assorted alignment fixes (Namhyung Kim)
- Handle empty print fmts in 'perf script -s' i.e. when running
python or perl scripts (Taeung Song)
- Improve support for bpf-output events in 'perf trace' (Wang Nan)
- Fix parsing of pmu events with empty list of modifiers, this
cures a perf/core-only regression where '-e intel_pt//' got
broken (Arnaldo Carvalho de Melo)
Infrastructure:
- Improve missing OpenJDK devel files error message in jvmti
Makefile (Stephane Eranian)
- Remove duplicated code and needless script_spec__findnew() (Taeung Song)
- Bring perf_default_config to the very beginning at main(), removing
the need for each subcommand to do this (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (2):
perf tools: Use asprintf() for simple string formatting/allocation
perf tools: Fix parsing of pmu events with empty list of modifiers
Namhyung Kim (10):
perf hists: Add more helper functions for the hierarchy mode
perf report: Show message for percent limit on stdio
perf hists browser: Cleanup hist_browser__update_percent_limit()
perf hists browser: Show message for percent limit
perf report: Show message for percent limit on gtk
perf hists: Fix comparing of dynamic entries
perf report: Fix indentation of dynamic entries in hierarchy
perf report: Left align dynamic entries in hierarchy
perf hists: Fix dynamic entry display in hierarchy
perf report: Update column width of dynamic entries
Stephane Eranian (1):
perf jvmti: improve error message in Makefile
Taeung Song (2):
perf script: Exception handling when the print fmt is empty
perf script: Remove duplicated code and needless script_spec__findnew()
Wang Nan (4):
perf config: Bring perf_default_config to the very beginning at main()
perf tools: Only set filter for tracepoints events
perf trace: Call bpf__apply_obj_config in 'perf trace'
perf trace: Print content of bpf-output event
tools/perf/builtin-diff.c | 2 -
tools/perf/builtin-help.c | 2 +-
tools/perf/builtin-kmem.c | 4 +-
tools/perf/builtin-report.c | 2 +-
tools/perf/builtin-script.c | 21 +---
tools/perf/builtin-top.c | 4 +-
tools/perf/builtin-trace.c | 46 +++++++-
tools/perf/jvmti/Makefile | 17 ++-
tools/perf/perf.c | 16 ++-
tools/perf/tests/llvm.c | 8 --
tools/perf/ui/browsers/hists.c | 128 +++++++++++++++++++--
tools/perf/ui/gtk/hists.c | 11 ++
tools/perf/ui/hist.c | 22 ++++
tools/perf/ui/stdio/hist.c | 49 ++++++--
tools/perf/util/color.c | 5 +-
tools/perf/util/data-convert-bt.c | 2 +-
tools/perf/util/evlist.c | 3 +
tools/perf/util/help-unknown-cmd.c | 5 +-
tools/perf/util/hist.c | 48 +++++++-
tools/perf/util/hist.h | 4 +
tools/perf/util/parse-events.y | 6 +-
.../perf/util/scripting-engines/trace-event-perl.c | 3 +
.../util/scripting-engines/trace-event-python.c | 3 +
tools/perf/util/sort.c | 30 ++++-
tools/perf/util/sort.h | 1 +
25 files changed, 363 insertions(+), 79 deletions(-)
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-02-26 23:18 Arnaldo Carvalho de Melo
@ 2016-02-27 9:36 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-02-27 9:36 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov, Andi Kleen,
David Ahern, Jiri Olsa, Kan Liang, Li Zefan, Masami Hiramatsu,
Namhyung Kim, Peter Zijlstra, pi3orama, Stephane Eranian,
Taeung Song, Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 06466212a69c0511c5dcff7363c207ffc8913731:
>
> Merge tag 'perf-core-for-mingo-20160224' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-02-25 08:20:56 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160226
>
> for you to fetch changes up to 1d6c9407d45dd622b277ca9f725da3cc9e95b5de:
>
> perf trace: Print content of bpf-output event (2016-02-26 19:57:07 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Show extra line telling no entries below --percent-limit are
> at that --hierarchy level (Namhyung Kim)
>
> - 'perf report/top --hierarchy' assorted alignment fixes (Namhyung Kim)
>
> - Handle empty print fmts in 'perf script -s' i.e. when running
> python or perl scripts (Taeung Song)
>
> - Improve support for bpf-output events in 'perf trace' (Wang Nan)
>
> - Fix parsing of pmu events with empty list of modifiers, this
> cures a perf/core-only regression where '-e intel_pt//' got
> broken (Arnaldo Carvalho de Melo)
>
> Infrastructure:
>
> - Improve missing OpenJDK devel files error message in jvmti
> Makefile (Stephane Eranian)
>
> - Remove duplicated code and needless script_spec__findnew() (Taeung Song)
>
> - Bring perf_default_config to the very beginning at main(), removing
> the need for each subcommand to do this (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (2):
> perf tools: Use asprintf() for simple string formatting/allocation
> perf tools: Fix parsing of pmu events with empty list of modifiers
>
> Namhyung Kim (10):
> perf hists: Add more helper functions for the hierarchy mode
> perf report: Show message for percent limit on stdio
> perf hists browser: Cleanup hist_browser__update_percent_limit()
> perf hists browser: Show message for percent limit
> perf report: Show message for percent limit on gtk
> perf hists: Fix comparing of dynamic entries
> perf report: Fix indentation of dynamic entries in hierarchy
> perf report: Left align dynamic entries in hierarchy
> perf hists: Fix dynamic entry display in hierarchy
> perf report: Update column width of dynamic entries
>
> Stephane Eranian (1):
> perf jvmti: improve error message in Makefile
>
> Taeung Song (2):
> perf script: Exception handling when the print fmt is empty
> perf script: Remove duplicated code and needless script_spec__findnew()
>
> Wang Nan (4):
> perf config: Bring perf_default_config to the very beginning at main()
> perf tools: Only set filter for tracepoints events
> perf trace: Call bpf__apply_obj_config in 'perf trace'
> perf trace: Print content of bpf-output event
>
> tools/perf/builtin-diff.c | 2 -
> tools/perf/builtin-help.c | 2 +-
> tools/perf/builtin-kmem.c | 4 +-
> tools/perf/builtin-report.c | 2 +-
> tools/perf/builtin-script.c | 21 +---
> tools/perf/builtin-top.c | 4 +-
> tools/perf/builtin-trace.c | 46 +++++++-
> tools/perf/jvmti/Makefile | 17 ++-
> tools/perf/perf.c | 16 ++-
> tools/perf/tests/llvm.c | 8 --
> tools/perf/ui/browsers/hists.c | 128 +++++++++++++++++++--
> tools/perf/ui/gtk/hists.c | 11 ++
> tools/perf/ui/hist.c | 22 ++++
> tools/perf/ui/stdio/hist.c | 49 ++++++--
> tools/perf/util/color.c | 5 +-
> tools/perf/util/data-convert-bt.c | 2 +-
> tools/perf/util/evlist.c | 3 +
> tools/perf/util/help-unknown-cmd.c | 5 +-
> tools/perf/util/hist.c | 48 +++++++-
> tools/perf/util/hist.h | 4 +
> tools/perf/util/parse-events.y | 6 +-
> .../perf/util/scripting-engines/trace-event-perl.c | 3 +
> .../util/scripting-engines/trace-event-python.c | 3 +
> tools/perf/util/sort.c | 30 ++++-
> tools/perf/util/sort.h | 1 +
> 25 files changed, 363 insertions(+), 79 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-03-10 21:04 Arnaldo Carvalho de Melo
2016-03-11 8:43 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-03-10 21:04 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Andi Kleen, Borislav Petkov, Chris Phlipot,
Colin Ian King, David Ahern, Davidlohr Bueso, He Kuang,
H . Peter Anvin, Jiri Olsa, Mel Gorman, Namhyung Kim,
Peter Zijlstra, Stephane Eranian, Steven Rostedt, Thomas Gleixner,
Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 3a99e6db539e53cc9c79282e80f8362b0cb96ac8:
perf bench mem: Prepare the x86-64 build for upstream memcpy_mcsafe() changes (2016-03-09 10:40:01 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160310
for you to fetch changes up to 206cab651d07563d766c7f4cb73f858c5df3dec5:
perf stat: Add --metric-only support for -A (2016-03-10 16:50:47 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Implement 'perf stat --metric-only' (Andi Kleen)
- Fix perf script python database export crash (Chris Phlipot)
Infrastructure:
- perf top/report --hierarchy assorted fixes for problems introduced in this
perf/core cycle (Namhyung Kim)
- Support '~' operation in libtraceevent (Steven Rosted)
Build fixes:
- Fix bulding of jitdump on opensuse on ubuntu systems when the DWARF
devel files are not installed (Arnaldo Carvalho de Melo)
- Do not try building jitdump on unsupported arches (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (3):
perf stat: Document CSV format in manpage
perf stat: Implement --metric-only mode
perf stat: Add --metric-only support for -A
Arnaldo Carvalho de Melo (1):
perf jitdump: DWARF is also needed
Chris Phlipot (1):
perf tools: Fix perf script python database export crash
Jiri Olsa (3):
perf tools: Pass perf_hpp_list all the way through setup_sort_list
perf tools: Omit unnecessary cast in perf_pmu__parse_scale
perf jitdump: Build only on supported archs
Namhyung Kim (10):
perf tools: Fix hist_entry__filter() for hierarchy
perf tools: Add more sort entry check functions
perf tools: Fix command line filters in hierarchy mode
perf tools: Remove hist_entry->fmt field
perf hists browser: Cleanup hist_browser__fprintf_hierarchy_entry()
perf tools: Remove nr_sort_keys field
perf tools: Recalc total periods using top-level entries in hierarchy
perf tools: Add sort__has_comm variable
perf hists browser: Allow thread filtering for comm sort key
perf hists browser: Check sort keys before hot key actions
Steven Rostedt (1):
tools lib traceevent: Add '~' operation within arg_num_eval()
tools/lib/traceevent/event-parse.c | 6 +
tools/perf/Documentation/perf-stat.txt | 27 ++++
tools/perf/arch/arm/Makefile | 1 +
tools/perf/arch/arm64/Makefile | 1 +
tools/perf/arch/powerpc/Makefile | 1 +
tools/perf/arch/x86/Makefile | 1 +
tools/perf/builtin-inject.c | 12 +-
tools/perf/builtin-stat.c | 244 +++++++++++++++++++++++++++++++--
tools/perf/config/Makefile | 7 +
tools/perf/ui/browsers/hists.c | 73 ++++++----
tools/perf/ui/hist.c | 3 -
tools/perf/util/Build | 3 +
tools/perf/util/evsel.h | 6 +-
tools/perf/util/hist.c | 144 +++++++++++++++++--
tools/perf/util/hist.h | 6 +-
tools/perf/util/pmu.c | 4 +-
tools/perf/util/sort.c | 147 +++++++++-----------
tools/perf/util/sort.h | 2 +-
18 files changed, 542 insertions(+), 146 deletions(-)
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-03-10 21:04 Arnaldo Carvalho de Melo
@ 2016-03-11 8:43 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-03-11 8:43 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin, Andi Kleen,
Borislav Petkov, Chris Phlipot, Colin Ian King, David Ahern,
Davidlohr Bueso, He Kuang, H . Peter Anvin, Jiri Olsa, Mel Gorman,
Namhyung Kim, Peter Zijlstra, Stephane Eranian, Steven Rostedt,
Thomas Gleixner, Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 3a99e6db539e53cc9c79282e80f8362b0cb96ac8:
>
> perf bench mem: Prepare the x86-64 build for upstream memcpy_mcsafe() changes (2016-03-09 10:40:01 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160310
>
> for you to fetch changes up to 206cab651d07563d766c7f4cb73f858c5df3dec5:
>
> perf stat: Add --metric-only support for -A (2016-03-10 16:50:47 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Implement 'perf stat --metric-only' (Andi Kleen)
>
> - Fix perf script python database export crash (Chris Phlipot)
>
> Infrastructure:
>
> - perf top/report --hierarchy assorted fixes for problems introduced in this
> perf/core cycle (Namhyung Kim)
>
> - Support '~' operation in libtraceevent (Steven Rosted)
>
> Build fixes:
>
> - Fix bulding of jitdump on opensuse on ubuntu systems when the DWARF
> devel files are not installed (Arnaldo Carvalho de Melo)
>
> - Do not try building jitdump on unsupported arches (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andi Kleen (3):
> perf stat: Document CSV format in manpage
> perf stat: Implement --metric-only mode
> perf stat: Add --metric-only support for -A
>
> Arnaldo Carvalho de Melo (1):
> perf jitdump: DWARF is also needed
>
> Chris Phlipot (1):
> perf tools: Fix perf script python database export crash
>
> Jiri Olsa (3):
> perf tools: Pass perf_hpp_list all the way through setup_sort_list
> perf tools: Omit unnecessary cast in perf_pmu__parse_scale
> perf jitdump: Build only on supported archs
>
> Namhyung Kim (10):
> perf tools: Fix hist_entry__filter() for hierarchy
> perf tools: Add more sort entry check functions
> perf tools: Fix command line filters in hierarchy mode
> perf tools: Remove hist_entry->fmt field
> perf hists browser: Cleanup hist_browser__fprintf_hierarchy_entry()
> perf tools: Remove nr_sort_keys field
> perf tools: Recalc total periods using top-level entries in hierarchy
> perf tools: Add sort__has_comm variable
> perf hists browser: Allow thread filtering for comm sort key
> perf hists browser: Check sort keys before hot key actions
>
> Steven Rostedt (1):
> tools lib traceevent: Add '~' operation within arg_num_eval()
>
> tools/lib/traceevent/event-parse.c | 6 +
> tools/perf/Documentation/perf-stat.txt | 27 ++++
> tools/perf/arch/arm/Makefile | 1 +
> tools/perf/arch/arm64/Makefile | 1 +
> tools/perf/arch/powerpc/Makefile | 1 +
> tools/perf/arch/x86/Makefile | 1 +
> tools/perf/builtin-inject.c | 12 +-
> tools/perf/builtin-stat.c | 244 +++++++++++++++++++++++++++++++--
> tools/perf/config/Makefile | 7 +
> tools/perf/ui/browsers/hists.c | 73 ++++++----
> tools/perf/ui/hist.c | 3 -
> tools/perf/util/Build | 3 +
> tools/perf/util/evsel.h | 6 +-
> tools/perf/util/hist.c | 144 +++++++++++++++++--
> tools/perf/util/hist.h | 6 +-
> tools/perf/util/pmu.c | 4 +-
> tools/perf/util/sort.c | 147 +++++++++-----------
> tools/perf/util/sort.h | 2 +-
> 18 files changed, 542 insertions(+), 146 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-04-07 20:58 Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 01/19] perf config: Fix build with older toolchain Arnaldo Carvalho de Melo
` (19 more replies)
0 siblings, 20 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Alexei Starovoitov, Andi Kleen,
Andreas Hollmann, Cody P Schafer, David Ahern, Dima Kogan,
Frederic Weisbecker, He Kuang, Jiri Olsa, Josh Poimboeuf,
Kirill Smelkov, Li Zefan, Masami Hiramatsu, Milian Wolff,
Namhyung Kim, Peter Zijlstra, pi3orama, Steven Rostedt,
Taeung Song, Vinson Lee, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling, build tested on:
# perf stat -e cycles dm
alldeps-ubuntu-12.04: Ok
minimal-debian-experimental-x-mips64: Ok
minimal-debian-experimental-x-mips64el: Ok
minimal-debian-experimental-x-mipsel: Ok
minimal-ubuntu-x-arm: Ok
minimal-ubuntu-x-arm64: Ok
minimal-ubuntu-x-ppc64: Ok
minimal-ubuntu-x-ppc64el: Ok
alldeps-debian: Ok
alldeps-mageia: Ok
alldeps-rhel7: Ok
alldeps-centos: Ok
alldeps-opensuse: Ok
alldeps-ubuntu: Ok
Performance counter stats for 'dm':
3,095,685,547 cycles
454.805537820 seconds time elapsed
#
'perf test' passes on fedora23 x86_64,
Thanks,
- Arnaldo
The following changes since commit dad38ca64a252144b4ccdfe9730a3fe2b7c61957:
Merge tag 'perf-core-for-mingo-20160401' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-04-06 08:46:23 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160407
for you to fetch changes up to 98c3d844cd0bc56d33800114e6b6adcd0a5ec381:
perf symbols: Adjust symbol for shared objects (2016-04-07 17:17:01 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Beautify more syscall arguments in 'perf trace', using the type column in
tracepoint /format fields to attach, for instance, a pid_t resolver to the
thread COMM, also attach a mode_t beautifier in the same fashion
(Arnaldo Carvalho de Melo)
- Build the syscall table id <-> name resolver using the same .tbl file
used in the kernel to generate headers, to avoid the delay in getting
new syscalls supported in the audit-libs external dependency, done so
far only for x86_64 (Arnaldo Carvalho de Melo)
- Improve the documentation of event specifications (Andi Kleen)
- Process update events in 'perf script', fixing up this use case:
# perf stat -a -I 1000 -e cycles record | perf script -s script.py
- Shared object symbol adjustment fixes, fixing symbol resolution in
Android (Wang Nan)
Infrastructure:
- Add dedicated unwind addr_space member into thread struct, to allow
tools to use thread->priv, noticed while working on having callchains
in 'perf trace' (Jiri Olsa)
Build fixes:
- Fix the build in Ubuntu 12.04 (Arnaldo Carvalho de Melo, Vinson Lee)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (1):
perf list: Document event specifications better
Arnaldo Carvalho de Melo (11):
perf probe: Check if dwarf_getlocations() is available
perf script perl: Do error checking on new backtrace routine
perf trace: Beautify sched_setscheduler 'policy' argument
perf trace: Beautify wait4/waitid 'options' argument
perf trace: Infrastructure to show COMM strings for syscalls returning PIDs
perf trace: Beautify set_tid_address, getpid, getppid return values
perf trace: Beautify pid_t arguments
perf trace: Beautify mode_t arguments
perf trace: Move syscall table id <-> name routines to separate class
perf tools: Allow generating per-arch syscall table arrays
perf tools: Build syscall table .c header from kernel's syscall_64.tbl
Jiri Olsa (4):
perf tools: Remove superfluous ARCH Makefile includes
perf tools: Introduce trim function
perf tools: Add dedicated unwind addr_space member into thread struct
perf script: Process event update events
Vinson Lee (1):
perf config: Fix build with older toolchain.
Wang Nan (2):
perf symbols: Record text offset in dso to calculate objdump address
perf symbols: Adjust symbol for shared objects
tools/build/Makefile.feature | 2 +
tools/build/feature/Makefile | 4 +
tools/build/feature/test-all.c | 5 +
tools/build/feature/test-dwarf_getlocations.c | 12 +
tools/perf/Documentation/perf-list.txt | 107 +++++-
tools/perf/Makefile.perf | 13 +-
tools/perf/arch/x86/Makefile | 23 ++
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 374 +++++++++++++++++++++
tools/perf/arch/x86/entry/syscalls/syscalltbl.sh | 39 +++
tools/perf/builtin-script.c | 1 +
tools/perf/builtin-trace.c | 156 +++++----
tools/perf/config/Makefile | 11 +-
tools/perf/trace/beauty/mode_t.c | 68 ++++
tools/perf/trace/beauty/pid.c | 18 +
tools/perf/trace/beauty/sched_policy.c | 44 +++
tools/perf/trace/beauty/waitid_options.c | 26 ++
tools/perf/ui/browsers/hists.c | 3 +-
tools/perf/ui/stdio/hist.c | 3 +-
tools/perf/util/Build | 5 +
tools/perf/util/config.c | 6 +-
tools/perf/util/dwarf-aux.c | 9 +
tools/perf/util/map.c | 14 +
.../perf/util/scripting-engines/trace-event-perl.c | 30 +-
tools/perf/util/symbol-elf.c | 13 +-
tools/perf/util/syscalltbl.c | 134 ++++++++
tools/perf/util/syscalltbl.h | 20 ++
tools/perf/util/thread.h | 6 +
tools/perf/util/unwind-libunwind.c | 25 +-
tools/perf/util/util.h | 5 +
29 files changed, 1060 insertions(+), 116 deletions(-)
create mode 100644 tools/build/feature/test-dwarf_getlocations.c
create mode 100644 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
create mode 100755 tools/perf/arch/x86/entry/syscalls/syscalltbl.sh
create mode 100644 tools/perf/trace/beauty/mode_t.c
create mode 100644 tools/perf/trace/beauty/pid.c
create mode 100644 tools/perf/trace/beauty/sched_policy.c
create mode 100644 tools/perf/trace/beauty/waitid_options.c
create mode 100644 tools/perf/util/syscalltbl.c
create mode 100644 tools/perf/util/syscalltbl.h
^ permalink raw reply [flat|nested] 58+ messages in thread
* [PATCH 01/19] perf config: Fix build with older toolchain.
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 02/19] perf probe: Check if dwarf_getlocations() is available Arnaldo Carvalho de Melo
` (18 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Vinson Lee, Alexander Shishkin, Alexei Starovoitov,
Jiri Olsa, Josh Poimboeuf, Peter Zijlstra, Taeung Song, Wang Nan,
Arnaldo Carvalho de Melo
From: Vinson Lee <vlee@freedesktop.org>
Fix build error on Ubuntu 12.04.5 with GCC 4.6.3.
CC util/config.o
util/config.c: In function ‘perf_buildid_config’:
util/config.c:384:15: error: declaration of ‘dirname’ shadows a global declaration [-Werror=shadow]
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Taeung Song <treeze.taeung@gmail.com>
Cc: Wang Nan <wangnan0@huawei.com>
Fixes: 9cb5987c8227 ("perf config: Rework buildid_dir_command_config to perf_buildid_config")
Link: http://lkml.kernel.org/r/1459807659-9020-1-git-send-email-vlee@freedesktop.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/config.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c
index 5c20d783423b..664490b8b327 100644
--- a/tools/perf/util/config.c
+++ b/tools/perf/util/config.c
@@ -381,11 +381,11 @@ static int perf_buildid_config(const char *var, const char *value)
{
/* same dir for all commands */
if (!strcmp(var, "buildid.dir")) {
- const char *dirname = perf_config_dirname(var, value);
+ const char *dir = perf_config_dirname(var, value);
- if (!dirname)
+ if (!dir)
return -1;
- strncpy(buildid_dir, dirname, MAXPATHLEN-1);
+ strncpy(buildid_dir, dir, MAXPATHLEN-1);
buildid_dir[MAXPATHLEN-1] = '\0';
}
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 02/19] perf probe: Check if dwarf_getlocations() is available
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 01/19] perf config: Fix build with older toolchain Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 03/19] perf script perl: Do error checking on new backtrace routine Arnaldo Carvalho de Melo
` (17 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Vinson Lee, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
If not, tell the user that:
config/Makefile:273: Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157
And return -ENOTSUPP in die_get_var_range(), failing features that
need it, like the one pointed out above.
This fixes the build on older systems, such as Ubuntu 12.04.5.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Vinson Lee <vlee@freedesktop.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-9l7luqkq4gfnx7vrklkq4obs@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/build/Makefile.feature | 2 ++
tools/build/feature/Makefile | 4 ++++
tools/build/feature/test-all.c | 5 +++++
tools/build/feature/test-dwarf_getlocations.c | 12 ++++++++++++
tools/perf/config/Makefile | 6 ++++++
tools/perf/util/dwarf-aux.c | 9 +++++++++
6 files changed, 38 insertions(+)
create mode 100644 tools/build/feature/test-dwarf_getlocations.c
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
index 6b7707270aa3..9f878619077a 100644
--- a/tools/build/Makefile.feature
+++ b/tools/build/Makefile.feature
@@ -30,6 +30,7 @@ endef
FEATURE_TESTS_BASIC := \
backtrace \
dwarf \
+ dwarf_getlocations \
fortify-source \
sync-compare-and-swap \
glibc \
@@ -78,6 +79,7 @@ endif
FEATURE_DISPLAY ?= \
dwarf \
+ dwarf_getlocations \
glibc \
gtk2 \
libaudit \
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index c5f4c417428d..4ae94dbfdab9 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -3,6 +3,7 @@ FILES= \
test-backtrace.bin \
test-bionic.bin \
test-dwarf.bin \
+ test-dwarf_getlocations.bin \
test-fortify-source.bin \
test-sync-compare-and-swap.bin \
test-glibc.bin \
@@ -82,6 +83,9 @@ endif
$(OUTPUT)test-dwarf.bin:
$(BUILD) $(DWARFLIBS)
+$(OUTPUT)test-dwarf_getlocations.bin:
+ $(BUILD) $(DWARFLIBS)
+
$(OUTPUT)test-libelf-mmap.bin:
$(BUILD) -lelf
diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c
index e499a36c1e4a..a282e8cb84f3 100644
--- a/tools/build/feature/test-all.c
+++ b/tools/build/feature/test-all.c
@@ -41,6 +41,10 @@
# include "test-dwarf.c"
#undef main
+#define main main_test_dwarf_getlocations
+# include "test-dwarf_getlocations.c"
+#undef main
+
#define main main_test_libelf_getphdrnum
# include "test-libelf-getphdrnum.c"
#undef main
@@ -143,6 +147,7 @@ int main(int argc, char *argv[])
main_test_libelf_mmap();
main_test_glibc();
main_test_dwarf();
+ main_test_dwarf_getlocations();
main_test_libelf_getphdrnum();
main_test_libunwind();
main_test_libaudit();
diff --git a/tools/build/feature/test-dwarf_getlocations.c b/tools/build/feature/test-dwarf_getlocations.c
new file mode 100644
index 000000000000..70162699dd43
--- /dev/null
+++ b/tools/build/feature/test-dwarf_getlocations.c
@@ -0,0 +1,12 @@
+#include <stdlib.h>
+#include <elfutils/libdw.h>
+
+int main(void)
+{
+ Dwarf_Addr base, start, end;
+ Dwarf_Attribute attr;
+ Dwarf_Op *op;
+ size_t nops;
+ ptrdiff_t offset = 0;
+ return (int)dwarf_getlocations(&attr, offset, &base, &start, &end, &op, &nops);
+}
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index f7d7f5a1cad5..6f8f6430f2bf 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -268,6 +268,12 @@ else
ifneq ($(feature-dwarf), 1)
msg := $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev);
NO_DWARF := 1
+ else
+ ifneq ($(feature-dwarf_getlocations), 1)
+ msg := $(warning Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157);
+ else
+ CFLAGS += -DHAVE_DWARF_GETLOCATIONS
+ endif # dwarf_getlocations
endif # Dwarf support
endif # libelf support
endif # NO_LIBELF
diff --git a/tools/perf/util/dwarf-aux.c b/tools/perf/util/dwarf-aux.c
index 577e600c8eb1..aea189b41cc8 100644
--- a/tools/perf/util/dwarf-aux.c
+++ b/tools/perf/util/dwarf-aux.c
@@ -959,6 +959,7 @@ int die_get_varname(Dwarf_Die *vr_die, struct strbuf *buf)
return 0;
}
+#ifdef HAVE_DWARF_GETLOCATIONS
/**
* die_get_var_innermost_scope - Get innermost scope range of given variable DIE
* @sp_die: a subprogram DIE
@@ -1080,3 +1081,11 @@ int die_get_var_range(Dwarf_Die *sp_die, Dwarf_Die *vr_die, struct strbuf *buf)
return ret;
}
+#else
+int die_get_var_range(Dwarf_Die *sp_die __maybe_unused,
+ Dwarf_Die *vr_die __maybe_unused,
+ struct strbuf *buf __maybe_unused)
+{
+ return -ENOTSUP;
+}
+#endif
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 03/19] perf script perl: Do error checking on new backtrace routine
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 01/19] perf config: Fix build with older toolchain Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 02/19] perf probe: Check if dwarf_getlocations() is available Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 04/19] perf tools: Remove superfluous ARCH Makefile includes Arnaldo Carvalho de Melo
` (16 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Dima Kogan, Frederic Weisbecker, Jiri Olsa,
Namhyung Kim
From: Arnaldo Carvalho de Melo <acme@redhat.com>
This ended up triggering these warnings when building on Ubuntu 12.04.5:
util/scripting-engines/trace-event-perl.c: In function 'perl_process_callchain':
util/scripting-engines/trace-event-perl.c:293:4: error: value computed is not used [-Werror=unused-value]
util/scripting-engines/trace-event-perl.c:294:4: error: value computed is not used [-Werror=unused-value]
util/scripting-engines/trace-event-perl.c:295:4: error: value computed is not used [-Werror=unused-value]
util/scripting-engines/trace-event-perl.c:297:4: error: value computed is not used [-Werror=unused-value]
util/scripting-engines/trace-event-perl.c:309:4: error: value computed is not used [-Werror=unused-value]
cc1: all warnings being treated as errors
mv: cannot stat `/tmp/build/perf/util/scripting-engines/.trace-event-perl.o.tmp': No such file or directory
make[4]: *** [/tmp/build/perf/util/scripting-engines/trace-event-perl.o] Error 1
Fix it by doing error checking when building the perl data structures
related to callchains.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Dima Kogan <dima@secretsauce.net>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@gmail.com>
Fixes: f7380c12ec6c ("perf script perl: Perl scripts now get a backtrace, like the python ones")
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
.../perf/util/scripting-engines/trace-event-perl.c | 30 +++++++++++++++-------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
index 1d160855cda9..35ed00a600fb 100644
--- a/tools/perf/util/scripting-engines/trace-event-perl.c
+++ b/tools/perf/util/scripting-engines/trace-event-perl.c
@@ -283,18 +283,27 @@ static SV *perl_process_callchain(struct perf_sample *sample,
if (!elem)
goto exit;
- hv_stores(elem, "ip", newSVuv(node->ip));
+ if (!hv_stores(elem, "ip", newSVuv(node->ip))) {
+ hv_undef(elem);
+ goto exit;
+ }
if (node->sym) {
HV *sym = newHV();
- if (!sym)
+ if (!sym) {
+ hv_undef(elem);
+ goto exit;
+ }
+ if (!hv_stores(sym, "start", newSVuv(node->sym->start)) ||
+ !hv_stores(sym, "end", newSVuv(node->sym->end)) ||
+ !hv_stores(sym, "binding", newSVuv(node->sym->binding)) ||
+ !hv_stores(sym, "name", newSVpvn(node->sym->name,
+ node->sym->namelen)) ||
+ !hv_stores(elem, "sym", newRV_noinc((SV*)sym))) {
+ hv_undef(sym);
+ hv_undef(elem);
goto exit;
- hv_stores(sym, "start", newSVuv(node->sym->start));
- hv_stores(sym, "end", newSVuv(node->sym->end));
- hv_stores(sym, "binding", newSVuv(node->sym->binding));
- hv_stores(sym, "name", newSVpvn(node->sym->name,
- node->sym->namelen));
- hv_stores(elem, "sym", newRV_noinc((SV*)sym));
+ }
}
if (node->map) {
@@ -306,7 +315,10 @@ static SV *perl_process_callchain(struct perf_sample *sample,
else if (map->dso->name)
dsoname = map->dso->name;
}
- hv_stores(elem, "dso", newSVpv(dsoname,0));
+ if (!hv_stores(elem, "dso", newSVpv(dsoname,0))) {
+ hv_undef(elem);
+ goto exit;
+ }
}
callchain_cursor_advance(&callchain_cursor);
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 04/19] perf tools: Remove superfluous ARCH Makefile includes
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 03/19] perf script perl: Do error checking on new backtrace routine Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 05/19] perf list: Document event specifications better Arnaldo Carvalho de Melo
` (15 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Jiri Olsa
From: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/n/tip-yk6brsq3opuotr9by18xlkr8@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/perf/Makefile.perf | 2 --
tools/perf/config/Makefile | 3 ---
2 files changed, 5 deletions(-)
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 000ea210389d..58aed81a21ea 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -297,8 +297,6 @@ endif
# because maintaining the nesting to match is a pain. If
# we had "elif" things would have been much nicer...
--include arch/$(ARCH)/Makefile
-
ifneq ($(OUTPUT),)
CFLAGS += -I$(OUTPUT)
endif
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index 6f8f6430f2bf..d1e2b856ef0f 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -295,9 +295,6 @@ ifndef NO_LIBELF
CFLAGS += -DHAVE_ELF_GETPHDRNUM_SUPPORT
endif
- # include ARCH specific config
- -include $(src-perf)/arch/$(ARCH)/Makefile
-
ifndef NO_DWARF
ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
msg := $(warning DWARF register mappings have not been defined for architecture $(ARCH), DWARF support disabled);
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 05/19] perf list: Document event specifications better
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 04/19] perf tools: Remove superfluous ARCH Makefile includes Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 06/19] perf trace: Beautify sched_setscheduler 'policy' argument Arnaldo Carvalho de Melo
` (14 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar; +Cc: linux-kernel, Andi Kleen, Arnaldo Carvalho de Melo
From: Andi Kleen <ak@linux.intel.com>
Document some features for specifying events in the perf list manpage:
- Event groups
- Leader sampling
- How to specify raw PMU events in the new syntax
- Global versus per process PMUs.
- Access restrictions
- Fix Intel SDM URL
v2: Lots of new content. address review feedback.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1459810686-15913-1-git-send-email-andi@firstfloor.org
[ Add quotes to some keywords, such as "any" ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-list.txt | 107 ++++++++++++++++++++++++++++++++-
1 file changed, 106 insertions(+), 1 deletion(-)
diff --git a/tools/perf/Documentation/perf-list.txt b/tools/perf/Documentation/perf-list.txt
index ec723d0a5bb3..a126e97a8114 100644
--- a/tools/perf/Documentation/perf-list.txt
+++ b/tools/perf/Documentation/perf-list.txt
@@ -93,6 +93,67 @@ raw encoding of 0x1A8 can be used:
You should refer to the processor specific documentation for getting these
details. Some of them are referenced in the SEE ALSO section below.
+ARBITRARY PMUS
+--------------
+
+perf also supports an extended syntax for specifying raw parameters
+to PMUs. Using this typically requires looking up the specific event
+in the CPU vendor specific documentation.
+
+The available PMUs and their raw parameters can be listed with
+
+ ls /sys/devices/*/format
+
+For example the raw event "LSD.UOPS" core pmu event above could
+be specified as
+
+ perf stat -e cpu/event=0xa8,umask=0x1,name=LSD.UOPS_CYCLES,cmask=1/ ...
+
+PER SOCKET PMUS
+---------------
+
+Some PMUs are not associated with a core, but with a whole CPU socket.
+Events on these PMUs generally cannot be sampled, but only counted globally
+with perf stat -a. They can be bound to one logical CPU, but will measure
+all the CPUs in the same socket.
+
+This example measures memory bandwidth every second
+on the first memory controller on socket 0 of a Intel Xeon system
+
+ perf stat -C 0 -a uncore_imc_0/cas_count_read/,uncore_imc_0/cas_count_write/ -I 1000 ...
+
+Each memory controller has its own PMU. Measuring the complete system
+bandwidth would require specifying all imc PMUs (see perf list output),
+and adding the values together.
+
+This example measures the combined core power every second
+
+ perf stat -I 1000 -e power/energy-cores/ -a
+
+ACCESS RESTRICTIONS
+-------------------
+
+For non root users generally only context switched PMU events are available.
+This is normally only the events in the cpu PMU, the predefined events
+like cycles and instructions and some software events.
+
+Other PMUs and global measurements are normally root only.
+Some event qualifiers, such as "any", are also root only.
+
+This can be overriden by setting the kernel.perf_event_paranoid
+sysctl to -1, which allows non root to use these events.
+
+For accessing trace point events perf needs to have read access to
+/sys/kernel/debug/tracing, even when perf_event_paranoid is in a relaxed
+setting.
+
+TRACING
+-------
+
+Some PMUs control advanced hardware tracing capabilities, such as Intel PT,
+that allows low overhead execution tracing. These are described in a separate
+intel-pt.txt document.
+
PARAMETERIZED EVENTS
--------------------
@@ -106,6 +167,50 @@ also be supplied. For example:
perf stat -C 0 -e 'hv_gpci/dtbp_ptitc,phys_processor_idx=0x2/' ...
+EVENT GROUPS
+------------
+
+Perf supports time based multiplexing of events, when the number of events
+active exceeds the number of hardware performance counters. Multiplexing
+can cause measurement errors when the workload changes its execution
+profile.
+
+When metrics are computed using formulas from event counts, it is useful to
+ensure some events are always measured together as a group to minimize multiplexing
+errors. Event groups can be specified using { }.
+
+ perf stat -e '{instructions,cycles}' ...
+
+The number of available performance counters depend on the CPU. A group
+cannot contain more events than available counters.
+For example Intel Core CPUs typically have four generic performance counters
+for the core, plus three fixed counters for instructions, cycles and
+ref-cycles. Some special events have restrictions on which counter they
+can schedule, and may not support multiple instances in a single group.
+When too many events are specified in the group none of them will not
+be measured.
+
+Globally pinned events can limit the number of counters available for
+other groups. On x86 systems, the NMI watchdog pins a counter by default.
+The nmi watchdog can be disabled as root with
+
+ echo 0 > /proc/sys/kernel/nmi_watchdog
+
+Events from multiple different PMUs cannot be mixed in a group, with
+some exceptions for software events.
+
+LEADER SAMPLING
+---------------
+
+perf also supports group leader sampling using the :S specifier.
+
+ perf record -e '{cycles,instructions}:S' ...
+ perf report --group
+
+Normally all events in a event group sample, but with :S only
+the first event (the leader) samples, and it only reads the values of the
+other events in the group.
+
OPTIONS
-------
@@ -143,5 +248,5 @@ SEE ALSO
--------
linkperf:perf-stat[1], linkperf:perf-top[1],
linkperf:perf-record[1],
-http://www.intel.com/Assets/PDF/manual/253669.pdf[Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide],
+http://www.intel.com/sdm/[Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide],
http://support.amd.com/us/Processor_TechDocs/24593_APM_v2.pdf[AMD64 Architecture Programmer’s Manual Volume 2: System Programming]
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 06/19] perf trace: Beautify sched_setscheduler 'policy' argument
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 05/19] perf list: Document event specifications better Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 07/19] perf trace: Beautify wait4/waitid 'options' argument Arnaldo Carvalho de Melo
` (13 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
$ trace -e sched_setscheduler chrt -f 1 usleep 1
chrt: failed to set pid 0's policy: Operation not permitted
0.005 ( 0.005 ms): chrt/19189 sched_setscheduler(policy: FIFO, param: 0x7ffec5273d70) = -1 EPERM Operation not permitted
$
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-i5vlo5n5jv0amt8bkyicmdxh@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 4 ++++
tools/perf/trace/beauty/sched_policy.c | 44 ++++++++++++++++++++++++++++++++++
2 files changed, 48 insertions(+)
create mode 100644 tools/perf/trace/beauty/sched_policy.c
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index d309f4535a45..c283153d8c7f 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1073,6 +1073,8 @@ static size_t syscall_arg__scnprintf_getrandom_flags(char *bf, size_t size,
.arg_scnprintf = { [arg] = SCA_STRARRAY, }, \
.arg_parm = { [arg] = &strarray__##array, }
+#include "trace/beauty/sched_policy.c"
+
static struct syscall_fmt {
const char *name;
const char *alias;
@@ -1304,6 +1306,8 @@ static struct syscall_fmt {
.arg_scnprintf = { [1] = SCA_SIGNUM, /* sig */ }, },
{ .name = "rt_tgsigqueueinfo", .errmsg = true,
.arg_scnprintf = { [2] = SCA_SIGNUM, /* sig */ }, },
+ { .name = "sched_setscheduler", .errmsg = true,
+ .arg_scnprintf = { [1] = SCA_SCHED_POLICY, /* policy */ }, },
{ .name = "seccomp", .errmsg = true,
.arg_scnprintf = { [0] = SCA_SECCOMP_OP, /* op */
[1] = SCA_SECCOMP_FLAGS, /* flags */ }, },
diff --git a/tools/perf/trace/beauty/sched_policy.c b/tools/perf/trace/beauty/sched_policy.c
new file mode 100644
index 000000000000..c205bc608b3c
--- /dev/null
+++ b/tools/perf/trace/beauty/sched_policy.c
@@ -0,0 +1,44 @@
+#include <sched.h>
+
+/*
+ * Not defined anywhere else, probably, just to make sure we
+ * catch future flags
+ */
+#define SCHED_POLICY_MASK 0xff
+
+#ifndef SCHED_DEADLINE
+#define SCHED_DEADLINE 6
+#endif
+
+static size_t syscall_arg__scnprintf_sched_policy(char *bf, size_t size,
+ struct syscall_arg *arg)
+{
+ const char *policies[] = {
+ "NORMAL", "FIFO", "RR", "BATCH", "ISO", "IDLE", "DEADLINE",
+ };
+ size_t printed;
+ int policy = arg->val,
+ flags = policy & ~SCHED_POLICY_MASK;
+
+ policy &= SCHED_POLICY_MASK;
+ if (policy <= SCHED_DEADLINE)
+ printed = scnprintf(bf, size, "%s", policies[policy]);
+ else
+ printed = scnprintf(bf, size, "%#x", policy);
+
+#define P_POLICY_FLAG(n) \
+ if (flags & SCHED_##n) { \
+ printed += scnprintf(bf + printed, size - printed, "|%s", #n); \
+ flags &= ~SCHED_##n; \
+ }
+
+ P_POLICY_FLAG(RESET_ON_FORK);
+#undef P_POLICY_FLAG
+
+ if (flags)
+ printed += scnprintf(bf + printed, size - printed, "|%#x", flags);
+
+ return printed;
+}
+
+#define SCA_SCHED_POLICY syscall_arg__scnprintf_sched_policy
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 07/19] perf trace: Beautify wait4/waitid 'options' argument
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 06/19] perf trace: Beautify sched_setscheduler 'policy' argument Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 08/19] perf trace: Infrastructure to show COMM strings for syscalls returning PIDs Arnaldo Carvalho de Melo
` (12 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
# trace -e waitid,wait4
0.557 ( 0.557 ms): bash/27335 wait4(upid: -1, stat_addr: 0x7ffd02f449f0) = 27336
1.250 ( 0.685 ms): bash/27335 wait4(upid: -1, stat_addr: 0x7ffd02f449f0) = 27337
1.312 ( 0.002 ms): bash/27335 wait4(upid: -1, stat_addr: 0x7ffd02f44690, options: NOHANG) = -1 ECHILD No child processes
1.550 ( 0.015 ms): bash/3856 wait4(upid: -1, stat_addr: 0x7ffd02f44990, options: NOHANG|UNTRACED|CONTINUED) = 27335
1.552 ( 0.001 ms): bash/3856 wait4(upid: -1, stat_addr: 0x7ffd02f44990, options: NOHANG|UNTRACED|CONTINUED) = 0
#
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-i5vlo5n5jv0amt8bkyicmdxh@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 5 +++++
tools/perf/trace/beauty/waitid_options.c | 26 ++++++++++++++++++++++++++
2 files changed, 31 insertions(+)
create mode 100644 tools/perf/trace/beauty/waitid_options.c
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index c283153d8c7f..9a6c7b1fd5a1 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1074,6 +1074,7 @@ static size_t syscall_arg__scnprintf_getrandom_flags(char *bf, size_t size,
.arg_parm = { [arg] = &strarray__##array, }
#include "trace/beauty/sched_policy.c"
+#include "trace/beauty/waitid_options.c"
static struct syscall_fmt {
const char *name;
@@ -1364,6 +1365,10 @@ static struct syscall_fmt {
.arg_scnprintf = { [0] = SCA_FILENAME, /* filename */ }, },
{ .name = "vmsplice", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FD, /* fd */ }, },
+ { .name = "wait4", .errmsg = true,
+ .arg_scnprintf = { [2] = SCA_WAITID_OPTIONS, /* options */ }, },
+ { .name = "waitid", .errmsg = true,
+ .arg_scnprintf = { [3] = SCA_WAITID_OPTIONS, /* options */ }, },
{ .name = "write", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FD, /* fd */ }, },
{ .name = "writev", .errmsg = true,
diff --git a/tools/perf/trace/beauty/waitid_options.c b/tools/perf/trace/beauty/waitid_options.c
new file mode 100644
index 000000000000..7942724adec8
--- /dev/null
+++ b/tools/perf/trace/beauty/waitid_options.c
@@ -0,0 +1,26 @@
+#include <sys/types.h>
+#include <sys/wait.h>
+
+static size_t syscall_arg__scnprintf_waitid_options(char *bf, size_t size,
+ struct syscall_arg *arg)
+{
+ int printed = 0, options = arg->val;
+
+#define P_OPTION(n) \
+ if (options & W##n) { \
+ printed += scnprintf(bf + printed, size - printed, "%s%s", printed ? "|" : "", #n); \
+ options &= ~W##n; \
+ }
+
+ P_OPTION(NOHANG);
+ P_OPTION(UNTRACED);
+ P_OPTION(CONTINUED);
+#undef P_OPTION
+
+ if (options)
+ printed += scnprintf(bf + printed, size - printed, "%s%#x", printed ? "|" : "", options);
+
+ return printed;
+}
+
+#define SCA_WAITID_OPTIONS syscall_arg__scnprintf_waitid_options
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 08/19] perf trace: Infrastructure to show COMM strings for syscalls returning PIDs
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 07/19] perf trace: Beautify wait4/waitid 'options' argument Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 09/19] perf trace: Beautify set_tid_address, getpid, getppid return values Arnaldo Carvalho de Melo
` (11 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Starting with clone, waitid and wait4:
# trace -e waitid,wait4
1.385 ( 1.385 ms): bash/12122 wait4(upid: -1, stat_addr: 0x7ffe0cee1720, options: UNTRACED|CONTINUED) = 1210 (ls)
1.426 ( 0.002 ms): bash/12122 wait4(upid: -1, stat_addr: 0x7ffe0cee1150, options: NOHANG|UNTRACED|CONTINUED) = 0
3.293 ( 0.604 ms): bash/1211 wait4(upid: -1, stat_addr: 0x7ffe0cee0560 ) = 1214 (sed)
3.342 ( 0.002 ms): bash/1211 wait4(upid: -1, stat_addr: 0x7ffe0cee01d0, options: NOHANG ) = -1 ECHILD No child processes
3.576 ( 0.016 ms): bash/12122 wait4(upid: -1, stat_addr: 0x7ffe0cee0550, options: NOHANG|UNTRACED|CONTINUED) = 1211 (bash)
^C# trace -e clone
0.027 ( 0.000 ms): systemd/1 ... [continued]: clone()) = 1227 (systemd)
0.050 ( 0.000 ms): systemd/1227 ... [continued]: clone()) = 0
^C[root@jouet ~]#
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-lyf5d3y5j15wikjb6pe6ukoi@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 9a6c7b1fd5a1..22a4901d057b 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1082,6 +1082,7 @@ static struct syscall_fmt {
size_t (*arg_scnprintf[6])(char *bf, size_t size, struct syscall_arg *arg);
void *arg_parm[6];
bool errmsg;
+ bool errpid;
bool timeout;
bool hexret;
} syscall_fmts[] = {
@@ -1099,6 +1100,7 @@ static struct syscall_fmt {
{ .name = "chroot", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FILENAME, /* filename */ }, },
{ .name = "clock_gettime", .errmsg = true, STRARRAY(0, clk_id, clockid), },
+ { .name = "clone", .errpid = true, },
{ .name = "close", .errmsg = true,
.arg_scnprintf = { [0] = SCA_CLOSE_FD, /* fd */ }, },
{ .name = "connect", .errmsg = true, },
@@ -1365,9 +1367,9 @@ static struct syscall_fmt {
.arg_scnprintf = { [0] = SCA_FILENAME, /* filename */ }, },
{ .name = "vmsplice", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FD, /* fd */ }, },
- { .name = "wait4", .errmsg = true,
+ { .name = "wait4", .errpid = true,
.arg_scnprintf = { [2] = SCA_WAITID_OPTIONS, /* options */ }, },
- { .name = "waitid", .errmsg = true,
+ { .name = "waitid", .errpid = true,
.arg_scnprintf = { [3] = SCA_WAITID_OPTIONS, /* options */ }, },
{ .name = "write", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FD, /* fd */ }, },
@@ -2156,7 +2158,7 @@ static int trace__sys_exit(struct trace *trace, struct perf_evsel *evsel,
if (sc->fmt == NULL) {
signed_print:
fprintf(trace->output, ") = %ld", ret);
- } else if (ret < 0 && sc->fmt->errmsg) {
+ } else if (ret < 0 && (sc->fmt->errmsg || sc->fmt->errpid)) {
char bf[STRERR_BUFSIZE];
const char *emsg = strerror_r(-ret, bf, sizeof(bf)),
*e = audit_errno_to_name(-ret);
@@ -2166,7 +2168,16 @@ signed_print:
fprintf(trace->output, ") = 0 Timeout");
else if (sc->fmt->hexret)
fprintf(trace->output, ") = %#lx", ret);
- else
+ else if (sc->fmt->errpid) {
+ struct thread *child = machine__find_thread(trace->host, ret, ret);
+
+ if (child != NULL) {
+ fprintf(trace->output, ") = %ld", ret);
+ if (child->comm_set)
+ fprintf(trace->output, " (%s)", thread__comm_str(child));
+ thread__put(child);
+ }
+ } else
goto signed_print;
fputc('\n', trace->output);
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 09/19] perf trace: Beautify set_tid_address, getpid, getppid return values
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (7 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 08/19] perf trace: Infrastructure to show COMM strings for syscalls returning PIDs Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 10/19] perf trace: Beautify pid_t arguments Arnaldo Carvalho de Melo
` (10 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Showing the COMM for that return, if available.
# trace -e getpid,getppid,set_tid_address
490.007 ( 0.005 ms): sh/8250 getpid(...) = 8250 (sh)
490.014 ( 0.001 ms): sh/8250 getppid(...) = 7886 (make)
491.156 ( 0.004 ms): install/8251 set_tid_address(tidptr: 0x7f204a9d4ad0) = 8251 (install)
^C
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-psbpplqupatom9x4uohbxid5@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 22a4901d057b..191f4d61eb16 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1166,6 +1166,8 @@ static struct syscall_fmt {
{ .name = "getdents64", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FD, /* fd */ }, },
{ .name = "getitimer", .errmsg = true, STRARRAY(0, which, itimers), },
+ { .name = "getpid", .errpid = true, },
+ { .name = "getppid", .errpid = true, },
{ .name = "getrandom", .errmsg = true,
.arg_scnprintf = { [2] = SCA_GETRANDOM_FLAGS, /* flags */ }, },
{ .name = "getrlimit", .errmsg = true, STRARRAY(0, resource, rlimit_resources), },
@@ -1324,6 +1326,7 @@ static struct syscall_fmt {
{ .name = "sendto", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FD, /* fd */
[3] = SCA_MSG_FLAGS, /* flags */ }, },
+ { .name = "set_tid_address", .errpid = true, },
{ .name = "setitimer", .errmsg = true, STRARRAY(0, which, itimers), },
{ .name = "setrlimit", .errmsg = true, STRARRAY(0, resource, rlimit_resources), },
{ .name = "setxattr", .errmsg = true,
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 10/19] perf trace: Beautify pid_t arguments
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (8 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 09/19] perf trace: Beautify set_tid_address, getpid, getppid return values Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 11/19] perf tools: Introduce trim function Arnaldo Carvalho de Melo
` (9 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Steven Rostedt, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
When reading the syscall tracepoint /format file, look for arguments
of type "pid_t" and attach the PID beautifier, that will do a lookup
on the threads it knows, i.e. the ones that came from PERF_RECORD_COMM
events and add the COMM after the pid in such args:
Excerpt of a system wide trace for syscalls with pid_t args:
55602.977 ( 0.006 ms): bash/12122 setpgid(pid: 24347 (bash), pgid: 24347 (bash)) = 0
55603.024 ( 0.004 ms): bash/24347 setpgid(pid: 24347 (bash), pgid: 24347 (bash)) = 0
55691.527 (88.397 ms): bash/12122 wait4(upid: -1, stat_addr: 0x7ffe0cee1720, options: UNTRACED|CONTINUED) ...
55692.479 ( 0.952 ms): git/24347 wait4(upid: 24368, stat_addr: 0x7ffe030d5724) ...
55694.549 ( 2.070 ms): pre-commit/24368 wait4(upid: -1, stat_addr: 0x7ffc94f4fc10) = 24369 (pre-commit)
55694.575 ( 0.002 ms): pre-commit/24368 wait4(upid: -1, stat_addr: 0x7ffc94f4f650, options: NOHANG) = -1 ECHILD No child processes
55695.934 ( 0.010 ms): pre-commit/24368 wait4(upid: -1, stat_addr: 0x7ffc94f4f2d0, options: NOHANG) = 24370 (git)
55695.937 ( 0.001 ms): pre-commit/24368 wait4(upid: -1, stat_addr: 0x7ffc94f4f2d0, options: NOHANG) = -1 ECHILD No child processes
55717.963 ( 0.000 ms): pre-commit/24371 ... [continued]: wait4()) = 24372
55717.978 (21.468 ms): :24371/24371 wait4(upid: -1, stat_addr: 0x7ffc94f4f230) ...
55718.087 ( 0.109 ms): pre-commit/24371 wait4(upid: -1, stat_addr: 0x7ffc94f4f230) = 24373 (tr)
55718.187 ( 0.096 ms): pre-commit/24371 wait4(upid: -1, stat_addr: 0x7ffc94f4f230) = 24374 (wc)
55718.218 ( 0.002 ms): pre-commit/24371 wait4(upid: -1, stat_addr: 0x7ffc94f4eed0, options: NOHANG) = -1 ECHILD No child processes
55718.367 ( 0.005 ms): pre-commit/24368 wait4(upid: -1, stat_addr: 0x7ffc94f4f1d0, options: NOHANG) = 24371 (pre-commit)
55718.369 ( 0.001 ms): pre-commit/24368 wait4(upid: -1, stat_addr: 0x7ffc94f4f1d0, options: NOHANG) = -1 ECHILD No child processes
55741.021 (49.494 ms): git/24347 ... [continued]: wait4()) = 24368 (pre-commit)
74146.427 (18319.601 ms): git/24347 wait4(upid: 24375 (git), stat_addr: 0x7ffe030d6824) ...
74149.036 ( 0.891 ms): bash/24391 wait4(upid: -1, stat_addr: 0x7ffe0cee0560) = 24393 (sed)
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-75yl9hzjhb020iadc81gdj8t@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 110 ++++++++++++++++++++++--------------------
tools/perf/trace/beauty/pid.c | 18 +++++++
2 files changed, 75 insertions(+), 53 deletions(-)
create mode 100644 tools/perf/trace/beauty/pid.c
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 191f4d61eb16..57d4bb473add 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -112,6 +112,58 @@
# define PERF_FLAG_FD_CLOEXEC (1UL << 3) /* O_CLOEXEC */
#endif
+struct trace {
+ struct perf_tool tool;
+ struct {
+ int machine;
+ int open_id;
+ } audit;
+ struct {
+ int max;
+ struct syscall *table;
+ struct {
+ struct perf_evsel *sys_enter,
+ *sys_exit;
+ } events;
+ } syscalls;
+ struct record_opts opts;
+ struct perf_evlist *evlist;
+ struct machine *host;
+ struct thread *current;
+ u64 base_time;
+ FILE *output;
+ unsigned long nr_events;
+ struct strlist *ev_qualifier;
+ struct {
+ size_t nr;
+ int *entries;
+ } ev_qualifier_ids;
+ struct intlist *tid_list;
+ struct intlist *pid_list;
+ struct {
+ size_t nr;
+ pid_t *entries;
+ } filter_pids;
+ double duration_filter;
+ double runtime_ms;
+ struct {
+ u64 vfs_getname,
+ proc_getname;
+ } stats;
+ bool not_ev_qualifier;
+ bool live;
+ bool full_time;
+ bool sched;
+ bool multiple_threads;
+ bool summary;
+ bool summary_only;
+ bool show_comm;
+ bool show_tool_stats;
+ bool trace_syscalls;
+ bool force;
+ bool vfs_getname;
+ int trace_pgfaults;
+};
struct tp_field {
int offset;
@@ -1073,6 +1125,7 @@ static size_t syscall_arg__scnprintf_getrandom_flags(char *bf, size_t size,
.arg_scnprintf = { [arg] = SCA_STRARRAY, }, \
.arg_parm = { [arg] = &strarray__##array, }
+#include "trace/beauty/pid.c"
#include "trace/beauty/sched_policy.c"
#include "trace/beauty/waitid_options.c"
@@ -1167,6 +1220,7 @@ static struct syscall_fmt {
.arg_scnprintf = { [0] = SCA_FD, /* fd */ }, },
{ .name = "getitimer", .errmsg = true, STRARRAY(0, which, itimers), },
{ .name = "getpid", .errpid = true, },
+ { .name = "getpgid", .errpid = true, },
{ .name = "getppid", .errpid = true, },
{ .name = "getrandom", .errmsg = true,
.arg_scnprintf = { [2] = SCA_GETRANDOM_FLAGS, /* flags */ }, },
@@ -1328,6 +1382,7 @@ static struct syscall_fmt {
[3] = SCA_MSG_FLAGS, /* flags */ }, },
{ .name = "set_tid_address", .errpid = true, },
{ .name = "setitimer", .errmsg = true, STRARRAY(0, which, itimers), },
+ { .name = "setpgid", .errmsg = true, },
{ .name = "setrlimit", .errmsg = true, STRARRAY(0, resource, rlimit_resources), },
{ .name = "setxattr", .errmsg = true,
.arg_scnprintf = { [0] = SCA_FILENAME, /* pathname */ }, },
@@ -1485,59 +1540,6 @@ fail:
static const size_t trace__entry_str_size = 2048;
-struct trace {
- struct perf_tool tool;
- struct {
- int machine;
- int open_id;
- } audit;
- struct {
- int max;
- struct syscall *table;
- struct {
- struct perf_evsel *sys_enter,
- *sys_exit;
- } events;
- } syscalls;
- struct record_opts opts;
- struct perf_evlist *evlist;
- struct machine *host;
- struct thread *current;
- u64 base_time;
- FILE *output;
- unsigned long nr_events;
- struct strlist *ev_qualifier;
- struct {
- size_t nr;
- int *entries;
- } ev_qualifier_ids;
- struct intlist *tid_list;
- struct intlist *pid_list;
- struct {
- size_t nr;
- pid_t *entries;
- } filter_pids;
- double duration_filter;
- double runtime_ms;
- struct {
- u64 vfs_getname,
- proc_getname;
- } stats;
- bool not_ev_qualifier;
- bool live;
- bool full_time;
- bool sched;
- bool multiple_threads;
- bool summary;
- bool summary_only;
- bool show_comm;
- bool show_tool_stats;
- bool trace_syscalls;
- bool force;
- bool vfs_getname;
- int trace_pgfaults;
-};
-
static int trace__set_fd_pathname(struct thread *thread, int fd, const char *pathname)
{
struct thread_trace *ttrace = thread__priv(thread);
@@ -1763,6 +1765,8 @@ static int syscall__set_arg_fmts(struct syscall *sc)
sc->arg_scnprintf[idx] = sc->fmt->arg_scnprintf[idx];
else if (field->flags & FIELD_IS_POINTER)
sc->arg_scnprintf[idx] = syscall_arg__scnprintf_hex;
+ else if (strcmp(field->type, "pid_t") == 0)
+ sc->arg_scnprintf[idx] = SCA_PID;
++idx;
}
diff --git a/tools/perf/trace/beauty/pid.c b/tools/perf/trace/beauty/pid.c
new file mode 100644
index 000000000000..111ae08d38f1
--- /dev/null
+++ b/tools/perf/trace/beauty/pid.c
@@ -0,0 +1,18 @@
+static size_t syscall_arg__scnprintf_pid(char *bf, size_t size, struct syscall_arg *arg)
+{
+ int pid = arg->val;
+ struct trace *trace = arg->trace;
+ size_t printed = scnprintf(bf, size, "%d", pid);
+ struct thread *thread = machine__find_thread(trace->host, pid, pid);
+
+ if (thread != NULL) {
+ if (thread->comm_set)
+ printed += scnprintf(bf + printed, size - printed,
+ " (%s)", thread__comm_str(thread));
+ thread__put(thread);
+ }
+
+ return printed;
+}
+
+#define SCA_PID syscall_arg__scnprintf_pid
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 11/19] perf tools: Introduce trim function
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (9 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 10/19] perf trace: Beautify pid_t arguments Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 12/19] perf tools: Add dedicated unwind addr_space member into thread struct Arnaldo Carvalho de Melo
` (8 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, Andreas Hollmann, David Ahern,
Milian Wolff, Namhyung Kim, Peter Zijlstra,
Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
To be used in cases for both sides trim.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andreas Hollmann <hollmann@in.tum.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1460013073-18444-1-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/browsers/hists.c | 3 +--
tools/perf/ui/stdio/hist.c | 3 +--
tools/perf/util/util.h | 5 +++++
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 2a83414159a6..e70df2e54d66 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -1607,9 +1607,8 @@ static int hists_browser__scnprintf_hierarchy_headers(struct hist_browser *brows
ret = fmt->header(fmt, &dummy_hpp, hists_to_evsel(hists));
dummy_hpp.buf[ret] = '\0';
- rtrim(dummy_hpp.buf);
- start = ltrim(dummy_hpp.buf);
+ start = trim(dummy_hpp.buf);
ret = strlen(start);
if (start != dummy_hpp.buf)
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c
index 7aff5acf3265..560eb47d56f9 100644
--- a/tools/perf/ui/stdio/hist.c
+++ b/tools/perf/ui/stdio/hist.c
@@ -569,9 +569,8 @@ static int print_hierarchy_header(struct hists *hists, struct perf_hpp *hpp,
first_col = false;
fmt->header(fmt, hpp, hists_to_evsel(hists));
- rtrim(hpp->buf);
- header_width += fprintf(fp, "%s", ltrim(hpp->buf));
+ header_width += fprintf(fp, "%s", trim(hpp->buf));
}
}
diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h
index 8298d607c738..3bf3de86d429 100644
--- a/tools/perf/util/util.h
+++ b/tools/perf/util/util.h
@@ -254,6 +254,11 @@ int hex2u64(const char *ptr, u64 *val);
char *ltrim(char *s);
char *rtrim(char *s);
+static inline char *trim(char *s)
+{
+ return ltrim(rtrim(s));
+}
+
void dump_stack(void);
void sighandler_dump_stack(int sig);
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 12/19] perf tools: Add dedicated unwind addr_space member into thread struct
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (10 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 11/19] perf tools: Introduce trim function Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 13/19] perf script: Process event update events Arnaldo Carvalho de Melo
` (7 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, Andreas Hollmann, David Ahern,
Namhyung Kim, Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Milian reported issue with thread::priv, which was double booked by perf
trace and DWARF unwind code. So using those together is impossible at
the moment.
Moving DWARF unwind private data into separate variable so perf trace
can keep using thread::priv.
Reported-by: Milian Wolff <milian.wolff@kdab.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andreas Hollmann <hollmann@in.tum.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1460013073-18444-2-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/thread.h | 6 ++++++
tools/perf/util/unwind-libunwind.c | 25 +++++++++----------------
2 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/tools/perf/util/thread.h b/tools/perf/util/thread.h
index a0ac0317affb..e214207bb13a 100644
--- a/tools/perf/util/thread.h
+++ b/tools/perf/util/thread.h
@@ -9,6 +9,9 @@
#include "symbol.h"
#include <strlist.h>
#include <intlist.h>
+#ifdef HAVE_LIBUNWIND_SUPPORT
+#include <libunwind.h>
+#endif
struct thread_stack;
@@ -32,6 +35,9 @@ struct thread {
void *priv;
struct thread_stack *ts;
+#ifdef HAVE_LIBUNWIND_SUPPORT
+ unw_addr_space_t addr_space;
+#endif
};
struct machine;
diff --git a/tools/perf/util/unwind-libunwind.c b/tools/perf/util/unwind-libunwind.c
index ee7e372297e5..63687d3a344e 100644
--- a/tools/perf/util/unwind-libunwind.c
+++ b/tools/perf/util/unwind-libunwind.c
@@ -32,6 +32,7 @@
#include "symbol.h"
#include "util.h"
#include "debug.h"
+#include "asm/bug.h"
extern int
UNW_OBJ(dwarf_search_unwind_table) (unw_addr_space_t as,
@@ -580,43 +581,33 @@ static unw_accessors_t accessors = {
int unwind__prepare_access(struct thread *thread)
{
- unw_addr_space_t addr_space;
-
if (callchain_param.record_mode != CALLCHAIN_DWARF)
return 0;
- addr_space = unw_create_addr_space(&accessors, 0);
- if (!addr_space) {
+ thread->addr_space = unw_create_addr_space(&accessors, 0);
+ if (!thread->addr_space) {
pr_err("unwind: Can't create unwind address space.\n");
return -ENOMEM;
}
- unw_set_caching_policy(addr_space, UNW_CACHE_GLOBAL);
- thread__set_priv(thread, addr_space);
-
+ unw_set_caching_policy(thread->addr_space, UNW_CACHE_GLOBAL);
return 0;
}
void unwind__flush_access(struct thread *thread)
{
- unw_addr_space_t addr_space;
-
if (callchain_param.record_mode != CALLCHAIN_DWARF)
return;
- addr_space = thread__priv(thread);
- unw_flush_cache(addr_space, 0, 0);
+ unw_flush_cache(thread->addr_space, 0, 0);
}
void unwind__finish_access(struct thread *thread)
{
- unw_addr_space_t addr_space;
-
if (callchain_param.record_mode != CALLCHAIN_DWARF)
return;
- addr_space = thread__priv(thread);
- unw_destroy_addr_space(addr_space);
+ unw_destroy_addr_space(thread->addr_space);
}
static int get_entries(struct unwind_info *ui, unwind_entry_cb_t cb,
@@ -639,7 +630,9 @@ static int get_entries(struct unwind_info *ui, unwind_entry_cb_t cb,
* unwind itself.
*/
if (max_stack - 1 > 0) {
- addr_space = thread__priv(ui->thread);
+ WARN_ONCE(!ui->thread, "WARNING: ui->thread is NULL");
+ addr_space = ui->thread->addr_space;
+
if (addr_space == NULL)
return -1;
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 13/19] perf script: Process event update events
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (11 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 12/19] perf tools: Add dedicated unwind addr_space member into thread struct Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 14/19] perf trace: Beautify mode_t arguments Arnaldo Carvalho de Melo
` (6 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Jiri Olsa, David Ahern, Milian Wolff, Namhyung Kim,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Jiri Olsa <jolsa@kernel.org>
Andreas reported following command produces no output:
# cat test.py
#!/usr/bin/env python
def stat__krava(cpu, thread, time, val, ena, run):
print "event %s cpu %d, thread %d, time %d, val %d, ena %d, run %d" % \
("krava", cpu, thread, time, val, ena, run)
# perf stat -a -I 1000 -e cycles,"cpu/config=0x6530160,name=krava/" record | perf script -s test.py
^C
#
The reason is that 'perf script' does not process event update events and
will never get the event name update thus the python callback is never
called.
The fix is just to add already existing callback we use in 'perf stat
report'.
Committer note:
After the patch:
# perf stat -a -I 1000 -e cycles,"cpu/config=0x6530160,name=krava/" record | perf script -s test.py
event krava cpu -1, thread -1, time 1000239179, val 1789051, ena 4000690920, run 4000690920
event krava cpu -1, thread -1, time 2000479061, val 2391338, ena 4000879596, run 4000879596
event krava cpu -1, thread -1, time 3000740802, val 1939121, ena 4000977209, run 4000977209
event krava cpu -1, thread -1, time 4001006730, val 2356115, ena 4001000489, run 4001000489
^C
#
Reported-by: Andreas Hollmann <hollmann@in.tum.de>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1460013073-18444-3-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-script.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 3770c3dffe5e..59009aa7e2ca 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -1961,6 +1961,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
.exit = perf_event__process_exit,
.fork = perf_event__process_fork,
.attr = process_attr,
+ .event_update = perf_event__process_event_update,
.tracing_data = perf_event__process_tracing_data,
.build_id = perf_event__process_build_id,
.id_index = perf_event__process_id_index,
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 14/19] perf trace: Beautify mode_t arguments
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (12 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 13/19] perf script: Process event update events Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 15/19] perf trace: Move syscall table id <-> name routines to separate class Arnaldo Carvalho de Melo
` (5 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Steven Rostedt, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
When reading the syscall tracepoint /format file, look for arguments of type
"mode_t" and attach a beautifier:
[root@jouet ~]# cat ~/bin/tp_with_fields_of_type
#!/bin/bash
grep -w $1 /sys/kernel/tracing/events/syscalls/*/format | sed -r 's%.*sys_enter_(.*)/format.*%\1%g' | paste -d, -s
# tp_with_fields_of_type umode_t
chmod,creat,fchmodat,fchmod,mkdirat,mkdir,mknodat,mknod,mq_open,openat,open
#
Testing it:
#define S_ISUID 0004000
#define S_ISGID 0002000
#define S_ISVTX 0001000
#define S_IRWXU 0000700
#define S_IRUSR 0000400
#define S_IWUSR 0000200
#define S_IXUSR 0000100
#define S_IRWXG 0000070
#define S_IRGRP 0000040
#define S_IWGRP 0000020
#define S_IXGRP 0000010
#define S_IRWXO 0000007
#define S_IROTH 0000004
#define S_IWOTH 0000002
#define S_IXOTH 0000001
# for mode in 4000 2000 1000 700 400 200 100 70 40 20 10 7 4 2 1 ; do \
echo -n $mode '->' ; trace --no-inherit -e chmod,fchmodat,fchmod chmod $mode x; \
done
4000 -> 0.338 ( 0.012 ms): fchmodat(dfd: CWD, filename: x, mode: ISUID) = 0
2000 -> 0.438 ( 0.015 ms): fchmodat(dfd: CWD, filename: x, mode: ISGID) = 0
1000 -> 0.677 ( 0.040 ms): fchmodat(dfd: CWD, filename: x, mode: ISVTX) = 0
700 -> 0.394 ( 0.013 ms): fchmodat(dfd: CWD, filename: x, mode: IRWXU) = 0
400 -> 0.337 ( 0.010 ms): fchmodat(dfd: CWD, filename: x, mode: IRUSR) = 0
200 -> 0.259 ( 0.008 ms): fchmodat(dfd: CWD, filename: x, mode: IWUSR) = 0
100 -> 0.249 ( 0.008 ms): fchmodat(dfd: CWD, filename: x, mode: IXUSR) = 0
70 -> 0.266 ( 0.008 ms): fchmodat(dfd: CWD, filename: x, mode: IRWXG) = 0
40 -> 0.329 ( 0.009 ms): fchmodat(dfd: CWD, filename: x, mode: IRGRP) = 0
20 -> 0.250 ( 0.009 ms): fchmodat(dfd: CWD, filename: x, mode: IWGRP) = 0
10 -> 0.259 ( 0.008 ms): fchmodat(dfd: CWD, filename: x, mode: IXGRP) = 0
7 -> 0.249 ( 0.009 ms): fchmodat(dfd: CWD, filename: x, mode: IRWXO) = 0
4 -> 0.278 ( 0.011 ms): fchmodat(dfd: CWD, filename: x, mode: IROTH) = 0
2 -> 0.276 ( 0.009 ms): fchmodat(dfd: CWD, filename: x, mode: IWOTH) = 0
1 -> 0.250 ( 0.008 ms): fchmodat(dfd: CWD, filename: x, mode: IXOTH) = 0
#
# trace --no-inherit -e chmod,fchmodat,fchmod chmod 7777 x
0.258 ( 0.011 ms): fchmodat(dfd: CWD, filename: x, mode: IALLUGO) = 0
# trace --no-inherit -e chmod,fchmodat,fchmod chmod 7770 x
0.258 ( 0.008 ms): fchmodat(dfd: CWD, filename: x, mode: ISUID|ISGID|ISVTX|IRWXU|IRWXG) = 0
# trace --no-inherit -e chmod,fchmodat,fchmod chmod 777 x
0.293 ( 0.012 ms): fchmodat(dfd: CWD, filename: x, mode: IRWXUGO
#
Now lets see if check by using the tracepoint for that specific syscall,
instead of raw_syscalls:sys_enter as 'trace' does for its strace fu:
# trace --no-inherit --ev syscalls:sys_enter_fchmodat -e fchmodat chmod 666 x
0.255 ( ): syscalls:sys_enter_fchmodat:dfd: 0xffffffffffffff9c, filename: 0x55db32a3f0f0, mode: 0x000001b6)
0.268 ( 0.012 ms): fchmodat(dfd: CWD, filename: x, mode: IRUGO|IWUGO ) = 0
#
Perfect, 0x1bc == 0666.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-18e8zfgbkj83xo87yoom43kd@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 3 ++
tools/perf/trace/beauty/mode_t.c | 68 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+)
create mode 100644 tools/perf/trace/beauty/mode_t.c
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 57d4bb473add..8440e2b92c6c 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1126,6 +1126,7 @@ static size_t syscall_arg__scnprintf_getrandom_flags(char *bf, size_t size,
.arg_parm = { [arg] = &strarray__##array, }
#include "trace/beauty/pid.c"
+#include "trace/beauty/mode_t.c"
#include "trace/beauty/sched_policy.c"
#include "trace/beauty/waitid_options.c"
@@ -1767,6 +1768,8 @@ static int syscall__set_arg_fmts(struct syscall *sc)
sc->arg_scnprintf[idx] = syscall_arg__scnprintf_hex;
else if (strcmp(field->type, "pid_t") == 0)
sc->arg_scnprintf[idx] = SCA_PID;
+ else if (strcmp(field->type, "umode_t") == 0)
+ sc->arg_scnprintf[idx] = SCA_MODE_T;
++idx;
}
diff --git a/tools/perf/trace/beauty/mode_t.c b/tools/perf/trace/beauty/mode_t.c
new file mode 100644
index 000000000000..930d8fef2400
--- /dev/null
+++ b/tools/perf/trace/beauty/mode_t.c
@@ -0,0 +1,68 @@
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+/* From include/linux/stat.h */
+#ifndef S_IRWXUGO
+#define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO)
+#endif
+#ifndef S_IALLUGO
+#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
+#endif
+#ifndef S_IRUGO
+#define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH)
+#endif
+#ifndef S_IWUGO
+#define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH)
+#endif
+#ifndef S_IXUGO
+#define S_IXUGO (S_IXUSR|S_IXGRP|S_IXOTH)
+#endif
+
+static size_t syscall_arg__scnprintf_mode_t(char *bf, size_t size, struct syscall_arg *arg)
+{
+ int printed = 0, mode = arg->val;
+
+#define P_MODE(n) \
+ if ((mode & S_##n) == S_##n) { \
+ printed += scnprintf(bf + printed, size - printed, "%s%s", printed ? "|" : "", #n); \
+ mode &= ~S_##n; \
+ }
+
+ P_MODE(IALLUGO);
+ P_MODE(IRWXUGO);
+ P_MODE(IRUGO);
+ P_MODE(IWUGO);
+ P_MODE(IXUGO);
+ P_MODE(IFMT);
+ P_MODE(IFSOCK);
+ P_MODE(IFLNK);
+ P_MODE(IFREG);
+ P_MODE(IFBLK);
+ P_MODE(IFDIR);
+ P_MODE(IFCHR);
+ P_MODE(IFIFO);
+ P_MODE(ISUID);
+ P_MODE(ISGID);
+ P_MODE(ISVTX);
+ P_MODE(IRWXU);
+ P_MODE(IRUSR);
+ P_MODE(IWUSR);
+ P_MODE(IXUSR);
+ P_MODE(IRWXG);
+ P_MODE(IRGRP);
+ P_MODE(IWGRP);
+ P_MODE(IXGRP);
+ P_MODE(IRWXO);
+ P_MODE(IROTH);
+ P_MODE(IWOTH);
+ P_MODE(IXOTH);
+#undef P_MODE
+
+ if (mode)
+ printed += scnprintf(bf + printed, size - printed, "%s%#x", printed ? "|" : "", mode);
+
+ return printed;
+}
+
+#define SCA_MODE_T syscall_arg__scnprintf_mode_t
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 15/19] perf trace: Move syscall table id <-> name routines to separate class
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (13 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 14/19] perf trace: Beautify mode_t arguments Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 16/19] perf tools: Allow generating per-arch syscall table arrays Arnaldo Carvalho de Melo
` (4 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
We're using libaudit for doing name to id and id to syscall name
translations, but that makes 'perf trace' to have to wait for newer
libaudit versions supporting recently added syscalls, such as
"userfaultfd" at the time of this changeset.
We have all the information right there, in the kernel sources, so move
this code to a separate place, wrapped behind functions that will
progressively use the kernel source files to extract the syscall table
for use in 'perf trace'.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-i38opd09ow25mmyrvfwnbvkj@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 24 +++++++++++-------------
tools/perf/util/Build | 1 +
tools/perf/util/syscalltbl.c | 43 +++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/syscalltbl.h | 16 ++++++++++++++++
4 files changed, 71 insertions(+), 13 deletions(-)
create mode 100644 tools/perf/util/syscalltbl.c
create mode 100644 tools/perf/util/syscalltbl.h
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 8440e2b92c6c..11290b57ce04 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -34,8 +34,9 @@
#include "trace-event.h"
#include "util/parse-events.h"
#include "util/bpf-loader.h"
+#include "syscalltbl.h"
-#include <libaudit.h>
+#include <libaudit.h> /* FIXME: Still needed for audit_errno_to_name */
#include <stdlib.h>
#include <sys/mman.h>
#include <linux/futex.h>
@@ -114,10 +115,7 @@
struct trace {
struct perf_tool tool;
- struct {
- int machine;
- int open_id;
- } audit;
+ struct syscalltbl *sctbl;
struct {
int max;
struct syscall *table;
@@ -163,6 +161,7 @@ struct trace {
bool force;
bool vfs_getname;
int trace_pgfaults;
+ int open_id;
};
struct tp_field {
@@ -1780,7 +1779,7 @@ static int trace__read_syscall_info(struct trace *trace, int id)
{
char tp_name[128];
struct syscall *sc;
- const char *name = audit_syscall_to_name(id, trace->audit.machine);
+ const char *name = syscalltbl__name(trace->sctbl, id);
if (name == NULL)
return -1;
@@ -1855,7 +1854,7 @@ static int trace__validate_ev_qualifier(struct trace *trace)
strlist__for_each(pos, trace->ev_qualifier) {
const char *sc = pos->s;
- int id = audit_name_to_syscall(sc, trace->audit.machine);
+ int id = syscalltbl__id(trace->sctbl, sc);
if (id < 0) {
if (err == 0) {
@@ -2137,7 +2136,7 @@ static int trace__sys_exit(struct trace *trace, struct perf_evsel *evsel,
ret = perf_evsel__sc_tp_uint(evsel, ret, sample);
- if (id == trace->audit.open_id && ret >= 0 && ttrace->filename.pending_open) {
+ if (id == trace->open_id && ret >= 0 && ttrace->filename.pending_open) {
trace__set_fd_pathname(thread, ret, ttrace->filename.name);
ttrace->filename.pending_open = false;
++trace->stats.vfs_getname;
@@ -3189,10 +3188,6 @@ int cmd_trace(int argc, const char **argv, const char *prefix __maybe_unused)
NULL
};
struct trace trace = {
- .audit = {
- .machine = audit_detect_machine(),
- .open_id = audit_name_to_syscall("open", trace.audit.machine),
- },
.syscalls = {
. max = -1,
},
@@ -3267,8 +3262,9 @@ int cmd_trace(int argc, const char **argv, const char *prefix __maybe_unused)
signal(SIGFPE, sighandler_dump_stack);
trace.evlist = perf_evlist__new();
+ trace.sctbl = syscalltbl__new();
- if (trace.evlist == NULL) {
+ if (trace.evlist == NULL || trace.sctbl == NULL) {
pr_err("Not enough memory to run!\n");
err = -ENOMEM;
goto out;
@@ -3306,6 +3302,8 @@ int cmd_trace(int argc, const char **argv, const char *prefix __maybe_unused)
}
}
+ trace.open_id = syscalltbl__id(trace.sctbl, "open");
+
if (ev_qualifier_str != NULL) {
const char *s = ev_qualifier_str;
struct strlist_config slist_config = {
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index 85ceff357769..3443646d8da3 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -38,6 +38,7 @@ libperf-y += machine.o
libperf-y += map.o
libperf-y += pstack.o
libperf-y += session.o
+libperf-$(CONFIG_AUDIT) += syscalltbl.o
libperf-y += ordered-events.o
libperf-y += comm.o
libperf-y += thread.o
diff --git a/tools/perf/util/syscalltbl.c b/tools/perf/util/syscalltbl.c
new file mode 100644
index 000000000000..1f13e57412eb
--- /dev/null
+++ b/tools/perf/util/syscalltbl.c
@@ -0,0 +1,43 @@
+/*
+ * System call table mapper
+ *
+ * (C) 2016 Arnaldo Carvalho de Melo <acme@redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ */
+
+#include "syscalltbl.h"
+#include <string.h>
+#include <libaudit.h>
+
+
+struct syscalltbl *syscalltbl__new(void)
+{
+ struct syscalltbl *tbl = malloc(sizeof(*tbl));
+ if (tbl) {
+ tbl->audit_machine = audit_detect_machine();
+ }
+ return tbl;
+}
+
+void syscalltbl__delete(struct syscalltbl *tbl)
+{
+ free(tbl);
+}
+
+const char *syscalltbl__name(const struct syscalltbl *tbl, int id)
+{
+ return audit_syscall_to_name(id, tbl->audit_machine);
+}
+
+int syscalltbl__id(struct syscalltbl *tbl, const char *name)
+{
+ return audit_name_to_syscall(name, tbl->audit_machine);
+}
diff --git a/tools/perf/util/syscalltbl.h b/tools/perf/util/syscalltbl.h
new file mode 100644
index 000000000000..9dee73c2e082
--- /dev/null
+++ b/tools/perf/util/syscalltbl.h
@@ -0,0 +1,16 @@
+#ifndef __PERF_SYSCALLTBL_H
+#define __PERF_SYSCALLTBL_H
+
+struct syscalltbl {
+ union {
+ int audit_machine;
+ };
+};
+
+struct syscalltbl *syscalltbl__new(void);
+void syscalltbl__delete(struct syscalltbl *tbl);
+
+const char *syscalltbl__name(const struct syscalltbl *tbl, int id);
+int syscalltbl__id(struct syscalltbl *tbl, const char *name);
+
+#endif /* __PERF_SYSCALLTBL_H */
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 16/19] perf tools: Allow generating per-arch syscall table arrays
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (14 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 15/19] perf trace: Move syscall table id <-> name routines to separate class Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl Arnaldo Carvalho de Melo
` (3 subsequent siblings)
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Tools should use a mechanism similar to arch/x86/entry/syscalls/ to
generate a header file with the definitions for two variables:
static const char *syscalltbl_x86_64[] = {
[0] = "read",
[1] = "write",
<SNIP>
[324] = "membarrier",
[325] = "mlock2",
[326] = "copy_file_range",
};
static const int syscalltbl_x86_64_max_id = 326;
In a per arch file that should then be included in
tools/perf/util/syscalltbl.c.
First one will be for x86_64.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-02uuamkxgccczdth8komspgp@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/syscalltbl.c | 89 +++++++++++++++++++++++++++++++++++++++++++-
tools/perf/util/syscalltbl.h | 4 ++
2 files changed, 91 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/syscalltbl.c b/tools/perf/util/syscalltbl.c
index 1f13e57412eb..eb74a97b1f11 100644
--- a/tools/perf/util/syscalltbl.c
+++ b/tools/perf/util/syscalltbl.c
@@ -14,21 +14,105 @@
*/
#include "syscalltbl.h"
+#include <stdlib.h>
+
+#ifdef HAVE_SYSCALL_TABLE
+#include <linux/compiler.h>
#include <string.h>
-#include <libaudit.h>
+#include "util.h"
+
+struct syscall {
+ int id;
+ const char *name;
+};
+static int syscallcmpname(const void *vkey, const void *ventry)
+{
+ const char *key = vkey;
+ const struct syscall *entry = ventry;
+
+ return strcmp(key, entry->name);
+}
+
+static int syscallcmp(const void *va, const void *vb)
+{
+ const struct syscall *a = va, *b = vb;
+
+ return strcmp(a->name, b->name);
+}
+
+static int syscalltbl__init_native(struct syscalltbl *tbl)
+{
+ int nr_entries = 0, i, j;
+ struct syscall *entries;
+
+ for (i = 0; i <= syscalltbl_native_max_id; ++i)
+ if (syscalltbl_native[i])
+ ++nr_entries;
+
+ entries = tbl->syscalls.entries = malloc(sizeof(struct syscall) * nr_entries);
+ if (tbl->syscalls.entries == NULL)
+ return -1;
+
+ for (i = 0, j = 0; i <= syscalltbl_native_max_id; ++i) {
+ if (syscalltbl_native[i]) {
+ entries[j].name = syscalltbl_native[i];
+ entries[j].id = i;
+ ++j;
+ }
+ }
+
+ qsort(tbl->syscalls.entries, nr_entries, sizeof(struct syscall), syscallcmp);
+ tbl->syscalls.nr_entries = nr_entries;
+ return 0;
+}
struct syscalltbl *syscalltbl__new(void)
{
struct syscalltbl *tbl = malloc(sizeof(*tbl));
if (tbl) {
- tbl->audit_machine = audit_detect_machine();
+ if (syscalltbl__init_native(tbl)) {
+ free(tbl);
+ return NULL;
+ }
}
return tbl;
}
void syscalltbl__delete(struct syscalltbl *tbl)
{
+ zfree(&tbl->syscalls.entries);
+ free(tbl);
+}
+
+const char *syscalltbl__name(const struct syscalltbl *tbl __maybe_unused, int id)
+{
+ return id <= syscalltbl_native_max_id ? syscalltbl_native[id]: NULL;
+}
+
+int syscalltbl__id(struct syscalltbl *tbl, const char *name)
+{
+ struct syscall *sc = bsearch(name, tbl->syscalls.entries,
+ tbl->syscalls.nr_entries, sizeof(*sc),
+ syscallcmpname);
+
+ return sc ? sc->id : -1;
+}
+
+#else /* HAVE_SYSCALL_TABLE */
+
+#include <libaudit.h>
+
+struct syscalltbl *syscalltbl__new(void)
+{
+ struct syscalltbl *tbl = malloc(sizeof(*tbl));
+ if (tbl)
+ tbl->audit_machine = audit_detect_machine();
+ return tbl;
+}
+
+void syscalltbl__delete(struct syscalltbl *tbl)
+{
free(tbl);
}
@@ -41,3 +125,4 @@ int syscalltbl__id(struct syscalltbl *tbl, const char *name)
{
return audit_name_to_syscall(name, tbl->audit_machine);
}
+#endif /* HAVE_SYSCALL_TABLE */
diff --git a/tools/perf/util/syscalltbl.h b/tools/perf/util/syscalltbl.h
index 9dee73c2e082..e2951510484f 100644
--- a/tools/perf/util/syscalltbl.h
+++ b/tools/perf/util/syscalltbl.h
@@ -4,6 +4,10 @@
struct syscalltbl {
union {
int audit_machine;
+ struct {
+ int nr_entries;
+ void *entries;
+ } syscalls;
};
};
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (15 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 16/19] perf tools: Allow generating per-arch syscall table arrays Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 21:39 ` David Ahern
` (2 more replies)
2016-04-07 20:58 ` [PATCH 18/19] perf symbols: Record text offset in dso to calculate objdump address Arnaldo Carvalho de Melo
` (2 subsequent siblings)
19 siblings, 3 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim, Wang Nan
From: Arnaldo Carvalho de Melo <acme@redhat.com>
We used libaudit to map ids to syscall names and vice-versa, but that
imposes a delay in supporting new syscalls, having to wait for libaudit
to get those new syscalls on its tables.
To remove that delay, for x86_64 initially, grab a copy of
arch/x86/entry/syscalls/syscall_64.tbl and use it to generate those
tables.
Syscalls currently not available in audit-libs:
# trace -e copy_file_range,membarrier,mlock2,pread64,pwrite64,timerfd_create,userfaultfd
Error: Invalid syscall copy_file_range, membarrier, mlock2, pread64, pwrite64, timerfd_create, userfaultfd
Hint: try 'perf list syscalls:sys_enter_*'
Hint: and: 'man syscalls'
#
With this patch:
# trace -e copy_file_range,membarrier,mlock2,pread64,pwrite64,timerfd_create,userfaultfd
8505.733 ( 0.010 ms): gnome-shell/2519 timerfd_create(flags: 524288) = 36
8506.688 ( 0.005 ms): gnome-shell/2519 timerfd_create(flags: 524288) = 40
30023.097 ( 0.025 ms): qemu-system-x8/24629 pwrite64(fd: 18, buf: 0x7f63ae382000, count: 4096, pos: 529592320) = 4096
31268.712 ( 0.028 ms): qemu-system-x8/24629 pwrite64(fd: 18, buf: 0x7f63afd8b000, count: 4096, pos: 2314133504) = 4096
31268.854 ( 0.016 ms): qemu-system-x8/24629 pwrite64(fd: 18, buf: 0x7f63afda2000, count: 4096, pos: 2314137600) = 4096
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-5n4sx1wp0ig75dwcghf9m6zs@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Makefile.perf | 11 +-
tools/perf/arch/x86/Makefile | 23 ++
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 374 ++++++++++++++++++++++
tools/perf/arch/x86/entry/syscalls/syscalltbl.sh | 39 +++
tools/perf/config/Makefile | 2 +-
tools/perf/util/Build | 4 +
tools/perf/util/syscalltbl.c | 6 +
7 files changed, 455 insertions(+), 4 deletions(-)
create mode 100644 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
create mode 100755 tools/perf/arch/x86/entry/syscalls/syscalltbl.sh
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 58aed81a21ea..1469aeaf5169 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -183,6 +183,11 @@ endif
include config/Makefile
endif
+ifeq ($(config),0)
+include $(srctree)/tools/scripts/Makefile.arch
+-include arch/$(ARCH)/Makefile
+endif
+
# The FEATURE_DUMP_EXPORT holds location of the actual
# FEATURE_DUMP file to be used to bypass feature detection
# (for bpf or any other subproject)
@@ -388,7 +393,7 @@ endif
__build-dir = $(subst $(OUTPUT),,$(dir $@))
build-dir = $(if $(__build-dir),$(__build-dir),.)
-prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h fixdep
+prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h fixdep archheaders
$(OUTPUT)%.o: %.c prepare FORCE
$(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=$(build-dir) $@
@@ -623,7 +628,7 @@ config-clean:
$(call QUIET_CLEAN, config)
$(Q)$(MAKE) -C $(srctree)/tools/build/feature/ $(if $(OUTPUT),OUTPUT=$(OUTPUT)feature/,) clean >/dev/null
-clean: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean config-clean
+clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean config-clean
$(call QUIET_CLEAN, core-objs) $(RM) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf-with-kcore $(LANG_BINDINGS)
$(Q)find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
$(Q)$(RM) $(OUTPUT).config-detected
@@ -660,5 +665,5 @@ FORCE:
.PHONY: all install clean config-clean strip install-gtk
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
.PHONY: $(GIT-HEAD-PHONY) TAGS tags cscope FORCE prepare
-.PHONY: libtraceevent_plugins
+.PHONY: libtraceevent_plugins archheaders
diff --git a/tools/perf/arch/x86/Makefile b/tools/perf/arch/x86/Makefile
index 269af2143735..a33729173b13 100644
--- a/tools/perf/arch/x86/Makefile
+++ b/tools/perf/arch/x86/Makefile
@@ -4,3 +4,26 @@ endif
HAVE_KVM_STAT_SUPPORT := 1
PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
PERF_HAVE_JITDUMP := 1
+
+###
+# Syscall table generation
+#
+
+out := $(OUTPUT)arch/x86/include/generated/asm
+header := $(out)/syscalls_64.c
+sys := $(srctree)/tools/perf/arch/x86/entry/syscalls
+systbl := $(sys)/syscalltbl.sh
+
+# Create output directory if not already present
+_dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)')
+
+$(header): $(sys)/syscall_64.tbl $(systbl)
+ @(test -d ../../kernel -a -d ../../tools -a -d ../perf && ( \
+ (diff -B arch/x86/entry/syscalls/syscall_64.tbl ../../arch/x86/entry/syscalls/syscall_64.tbl >/dev/null) \
+ || echo "Warning: x86_64's syscall_64.tbl differs from kernel" >&2 )) || true
+ $(Q)$(SHELL) '$(systbl)' $(sys)/syscall_64.tbl 'x86_64' > $@
+
+clean::
+ rm -f $(header)
+
+archheaders: $(header)
diff --git a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
new file mode 100644
index 000000000000..2e5b565adacc
--- /dev/null
+++ b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
@@ -0,0 +1,374 @@
+#
+# 64-bit system call numbers and entry vectors
+#
+# The format is:
+# <number> <abi> <name> <entry point>
+#
+# The abi is "common", "64" or "x32" for this file.
+#
+0 common read sys_read
+1 common write sys_write
+2 common open sys_open
+3 common close sys_close
+4 common stat sys_newstat
+5 common fstat sys_newfstat
+6 common lstat sys_newlstat
+7 common poll sys_poll
+8 common lseek sys_lseek
+9 common mmap sys_mmap
+10 common mprotect sys_mprotect
+11 common munmap sys_munmap
+12 common brk sys_brk
+13 64 rt_sigaction sys_rt_sigaction
+14 common rt_sigprocmask sys_rt_sigprocmask
+15 64 rt_sigreturn sys_rt_sigreturn/ptregs
+16 64 ioctl sys_ioctl
+17 common pread64 sys_pread64
+18 common pwrite64 sys_pwrite64
+19 64 readv sys_readv
+20 64 writev sys_writev
+21 common access sys_access
+22 common pipe sys_pipe
+23 common select sys_select
+24 common sched_yield sys_sched_yield
+25 common mremap sys_mremap
+26 common msync sys_msync
+27 common mincore sys_mincore
+28 common madvise sys_madvise
+29 common shmget sys_shmget
+30 common shmat sys_shmat
+31 common shmctl sys_shmctl
+32 common dup sys_dup
+33 common dup2 sys_dup2
+34 common pause sys_pause
+35 common nanosleep sys_nanosleep
+36 common getitimer sys_getitimer
+37 common alarm sys_alarm
+38 common setitimer sys_setitimer
+39 common getpid sys_getpid
+40 common sendfile sys_sendfile64
+41 common socket sys_socket
+42 common connect sys_connect
+43 common accept sys_accept
+44 common sendto sys_sendto
+45 64 recvfrom sys_recvfrom
+46 64 sendmsg sys_sendmsg
+47 64 recvmsg sys_recvmsg
+48 common shutdown sys_shutdown
+49 common bind sys_bind
+50 common listen sys_listen
+51 common getsockname sys_getsockname
+52 common getpeername sys_getpeername
+53 common socketpair sys_socketpair
+54 64 setsockopt sys_setsockopt
+55 64 getsockopt sys_getsockopt
+56 common clone sys_clone/ptregs
+57 common fork sys_fork/ptregs
+58 common vfork sys_vfork/ptregs
+59 64 execve sys_execve/ptregs
+60 common exit sys_exit
+61 common wait4 sys_wait4
+62 common kill sys_kill
+63 common uname sys_newuname
+64 common semget sys_semget
+65 common semop sys_semop
+66 common semctl sys_semctl
+67 common shmdt sys_shmdt
+68 common msgget sys_msgget
+69 common msgsnd sys_msgsnd
+70 common msgrcv sys_msgrcv
+71 common msgctl sys_msgctl
+72 common fcntl sys_fcntl
+73 common flock sys_flock
+74 common fsync sys_fsync
+75 common fdatasync sys_fdatasync
+76 common truncate sys_truncate
+77 common ftruncate sys_ftruncate
+78 common getdents sys_getdents
+79 common getcwd sys_getcwd
+80 common chdir sys_chdir
+81 common fchdir sys_fchdir
+82 common rename sys_rename
+83 common mkdir sys_mkdir
+84 common rmdir sys_rmdir
+85 common creat sys_creat
+86 common link sys_link
+87 common unlink sys_unlink
+88 common symlink sys_symlink
+89 common readlink sys_readlink
+90 common chmod sys_chmod
+91 common fchmod sys_fchmod
+92 common chown sys_chown
+93 common fchown sys_fchown
+94 common lchown sys_lchown
+95 common umask sys_umask
+96 common gettimeofday sys_gettimeofday
+97 common getrlimit sys_getrlimit
+98 common getrusage sys_getrusage
+99 common sysinfo sys_sysinfo
+100 common times sys_times
+101 64 ptrace sys_ptrace
+102 common getuid sys_getuid
+103 common syslog sys_syslog
+104 common getgid sys_getgid
+105 common setuid sys_setuid
+106 common setgid sys_setgid
+107 common geteuid sys_geteuid
+108 common getegid sys_getegid
+109 common setpgid sys_setpgid
+110 common getppid sys_getppid
+111 common getpgrp sys_getpgrp
+112 common setsid sys_setsid
+113 common setreuid sys_setreuid
+114 common setregid sys_setregid
+115 common getgroups sys_getgroups
+116 common setgroups sys_setgroups
+117 common setresuid sys_setresuid
+118 common getresuid sys_getresuid
+119 common setresgid sys_setresgid
+120 common getresgid sys_getresgid
+121 common getpgid sys_getpgid
+122 common setfsuid sys_setfsuid
+123 common setfsgid sys_setfsgid
+124 common getsid sys_getsid
+125 common capget sys_capget
+126 common capset sys_capset
+127 64 rt_sigpending sys_rt_sigpending
+128 64 rt_sigtimedwait sys_rt_sigtimedwait
+129 64 rt_sigqueueinfo sys_rt_sigqueueinfo
+130 common rt_sigsuspend sys_rt_sigsuspend
+131 64 sigaltstack sys_sigaltstack
+132 common utime sys_utime
+133 common mknod sys_mknod
+134 64 uselib
+135 common personality sys_personality
+136 common ustat sys_ustat
+137 common statfs sys_statfs
+138 common fstatfs sys_fstatfs
+139 common sysfs sys_sysfs
+140 common getpriority sys_getpriority
+141 common setpriority sys_setpriority
+142 common sched_setparam sys_sched_setparam
+143 common sched_getparam sys_sched_getparam
+144 common sched_setscheduler sys_sched_setscheduler
+145 common sched_getscheduler sys_sched_getscheduler
+146 common sched_get_priority_max sys_sched_get_priority_max
+147 common sched_get_priority_min sys_sched_get_priority_min
+148 common sched_rr_get_interval sys_sched_rr_get_interval
+149 common mlock sys_mlock
+150 common munlock sys_munlock
+151 common mlockall sys_mlockall
+152 common munlockall sys_munlockall
+153 common vhangup sys_vhangup
+154 common modify_ldt sys_modify_ldt
+155 common pivot_root sys_pivot_root
+156 64 _sysctl sys_sysctl
+157 common prctl sys_prctl
+158 common arch_prctl sys_arch_prctl
+159 common adjtimex sys_adjtimex
+160 common setrlimit sys_setrlimit
+161 common chroot sys_chroot
+162 common sync sys_sync
+163 common acct sys_acct
+164 common settimeofday sys_settimeofday
+165 common mount sys_mount
+166 common umount2 sys_umount
+167 common swapon sys_swapon
+168 common swapoff sys_swapoff
+169 common reboot sys_reboot
+170 common sethostname sys_sethostname
+171 common setdomainname sys_setdomainname
+172 common iopl sys_iopl/ptregs
+173 common ioperm sys_ioperm
+174 64 create_module
+175 common init_module sys_init_module
+176 common delete_module sys_delete_module
+177 64 get_kernel_syms
+178 64 query_module
+179 common quotactl sys_quotactl
+180 64 nfsservctl
+181 common getpmsg
+182 common putpmsg
+183 common afs_syscall
+184 common tuxcall
+185 common security
+186 common gettid sys_gettid
+187 common readahead sys_readahead
+188 common setxattr sys_setxattr
+189 common lsetxattr sys_lsetxattr
+190 common fsetxattr sys_fsetxattr
+191 common getxattr sys_getxattr
+192 common lgetxattr sys_lgetxattr
+193 common fgetxattr sys_fgetxattr
+194 common listxattr sys_listxattr
+195 common llistxattr sys_llistxattr
+196 common flistxattr sys_flistxattr
+197 common removexattr sys_removexattr
+198 common lremovexattr sys_lremovexattr
+199 common fremovexattr sys_fremovexattr
+200 common tkill sys_tkill
+201 common time sys_time
+202 common futex sys_futex
+203 common sched_setaffinity sys_sched_setaffinity
+204 common sched_getaffinity sys_sched_getaffinity
+205 64 set_thread_area
+206 64 io_setup sys_io_setup
+207 common io_destroy sys_io_destroy
+208 common io_getevents sys_io_getevents
+209 64 io_submit sys_io_submit
+210 common io_cancel sys_io_cancel
+211 64 get_thread_area
+212 common lookup_dcookie sys_lookup_dcookie
+213 common epoll_create sys_epoll_create
+214 64 epoll_ctl_old
+215 64 epoll_wait_old
+216 common remap_file_pages sys_remap_file_pages
+217 common getdents64 sys_getdents64
+218 common set_tid_address sys_set_tid_address
+219 common restart_syscall sys_restart_syscall
+220 common semtimedop sys_semtimedop
+221 common fadvise64 sys_fadvise64
+222 64 timer_create sys_timer_create
+223 common timer_settime sys_timer_settime
+224 common timer_gettime sys_timer_gettime
+225 common timer_getoverrun sys_timer_getoverrun
+226 common timer_delete sys_timer_delete
+227 common clock_settime sys_clock_settime
+228 common clock_gettime sys_clock_gettime
+229 common clock_getres sys_clock_getres
+230 common clock_nanosleep sys_clock_nanosleep
+231 common exit_group sys_exit_group
+232 common epoll_wait sys_epoll_wait
+233 common epoll_ctl sys_epoll_ctl
+234 common tgkill sys_tgkill
+235 common utimes sys_utimes
+236 64 vserver
+237 common mbind sys_mbind
+238 common set_mempolicy sys_set_mempolicy
+239 common get_mempolicy sys_get_mempolicy
+240 common mq_open sys_mq_open
+241 common mq_unlink sys_mq_unlink
+242 common mq_timedsend sys_mq_timedsend
+243 common mq_timedreceive sys_mq_timedreceive
+244 64 mq_notify sys_mq_notify
+245 common mq_getsetattr sys_mq_getsetattr
+246 64 kexec_load sys_kexec_load
+247 64 waitid sys_waitid
+248 common add_key sys_add_key
+249 common request_key sys_request_key
+250 common keyctl sys_keyctl
+251 common ioprio_set sys_ioprio_set
+252 common ioprio_get sys_ioprio_get
+253 common inotify_init sys_inotify_init
+254 common inotify_add_watch sys_inotify_add_watch
+255 common inotify_rm_watch sys_inotify_rm_watch
+256 common migrate_pages sys_migrate_pages
+257 common openat sys_openat
+258 common mkdirat sys_mkdirat
+259 common mknodat sys_mknodat
+260 common fchownat sys_fchownat
+261 common futimesat sys_futimesat
+262 common newfstatat sys_newfstatat
+263 common unlinkat sys_unlinkat
+264 common renameat sys_renameat
+265 common linkat sys_linkat
+266 common symlinkat sys_symlinkat
+267 common readlinkat sys_readlinkat
+268 common fchmodat sys_fchmodat
+269 common faccessat sys_faccessat
+270 common pselect6 sys_pselect6
+271 common ppoll sys_ppoll
+272 common unshare sys_unshare
+273 64 set_robust_list sys_set_robust_list
+274 64 get_robust_list sys_get_robust_list
+275 common splice sys_splice
+276 common tee sys_tee
+277 common sync_file_range sys_sync_file_range
+278 64 vmsplice sys_vmsplice
+279 64 move_pages sys_move_pages
+280 common utimensat sys_utimensat
+281 common epoll_pwait sys_epoll_pwait
+282 common signalfd sys_signalfd
+283 common timerfd_create sys_timerfd_create
+284 common eventfd sys_eventfd
+285 common fallocate sys_fallocate
+286 common timerfd_settime sys_timerfd_settime
+287 common timerfd_gettime sys_timerfd_gettime
+288 common accept4 sys_accept4
+289 common signalfd4 sys_signalfd4
+290 common eventfd2 sys_eventfd2
+291 common epoll_create1 sys_epoll_create1
+292 common dup3 sys_dup3
+293 common pipe2 sys_pipe2
+294 common inotify_init1 sys_inotify_init1
+295 64 preadv sys_preadv
+296 64 pwritev sys_pwritev
+297 64 rt_tgsigqueueinfo sys_rt_tgsigqueueinfo
+298 common perf_event_open sys_perf_event_open
+299 64 recvmmsg sys_recvmmsg
+300 common fanotify_init sys_fanotify_init
+301 common fanotify_mark sys_fanotify_mark
+302 common prlimit64 sys_prlimit64
+303 common name_to_handle_at sys_name_to_handle_at
+304 common open_by_handle_at sys_open_by_handle_at
+305 common clock_adjtime sys_clock_adjtime
+306 common syncfs sys_syncfs
+307 64 sendmmsg sys_sendmmsg
+308 common setns sys_setns
+309 common getcpu sys_getcpu
+310 64 process_vm_readv sys_process_vm_readv
+311 64 process_vm_writev sys_process_vm_writev
+312 common kcmp sys_kcmp
+313 common finit_module sys_finit_module
+314 common sched_setattr sys_sched_setattr
+315 common sched_getattr sys_sched_getattr
+316 common renameat2 sys_renameat2
+317 common seccomp sys_seccomp
+318 common getrandom sys_getrandom
+319 common memfd_create sys_memfd_create
+320 common kexec_file_load sys_kexec_file_load
+321 common bpf sys_bpf
+322 64 execveat sys_execveat/ptregs
+323 common userfaultfd sys_userfaultfd
+324 common membarrier sys_membarrier
+325 common mlock2 sys_mlock2
+326 common copy_file_range sys_copy_file_range
+
+#
+# x32-specific system call numbers start at 512 to avoid cache impact
+# for native 64-bit operation.
+#
+512 x32 rt_sigaction compat_sys_rt_sigaction
+513 x32 rt_sigreturn sys32_x32_rt_sigreturn
+514 x32 ioctl compat_sys_ioctl
+515 x32 readv compat_sys_readv
+516 x32 writev compat_sys_writev
+517 x32 recvfrom compat_sys_recvfrom
+518 x32 sendmsg compat_sys_sendmsg
+519 x32 recvmsg compat_sys_recvmsg
+520 x32 execve compat_sys_execve/ptregs
+521 x32 ptrace compat_sys_ptrace
+522 x32 rt_sigpending compat_sys_rt_sigpending
+523 x32 rt_sigtimedwait compat_sys_rt_sigtimedwait
+524 x32 rt_sigqueueinfo compat_sys_rt_sigqueueinfo
+525 x32 sigaltstack compat_sys_sigaltstack
+526 x32 timer_create compat_sys_timer_create
+527 x32 mq_notify compat_sys_mq_notify
+528 x32 kexec_load compat_sys_kexec_load
+529 x32 waitid compat_sys_waitid
+530 x32 set_robust_list compat_sys_set_robust_list
+531 x32 get_robust_list compat_sys_get_robust_list
+532 x32 vmsplice compat_sys_vmsplice
+533 x32 move_pages compat_sys_move_pages
+534 x32 preadv compat_sys_preadv64
+535 x32 pwritev compat_sys_pwritev64
+536 x32 rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo
+537 x32 recvmmsg compat_sys_recvmmsg
+538 x32 sendmmsg compat_sys_sendmmsg
+539 x32 process_vm_readv compat_sys_process_vm_readv
+540 x32 process_vm_writev compat_sys_process_vm_writev
+541 x32 setsockopt compat_sys_setsockopt
+542 x32 getsockopt compat_sys_getsockopt
+543 x32 io_setup compat_sys_io_setup
+544 x32 io_submit compat_sys_io_submit
+545 x32 execveat compat_sys_execveat/ptregs
diff --git a/tools/perf/arch/x86/entry/syscalls/syscalltbl.sh b/tools/perf/arch/x86/entry/syscalls/syscalltbl.sh
new file mode 100755
index 000000000000..49a18b9ad9cf
--- /dev/null
+++ b/tools/perf/arch/x86/entry/syscalls/syscalltbl.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+in="$1"
+arch="$2"
+
+syscall_macro() {
+ nr="$1"
+ name="$2"
+
+ echo " [$nr] = \"$name\","
+}
+
+emit() {
+ nr="$1"
+ entry="$2"
+
+ syscall_macro "$nr" "$entry"
+}
+
+echo "static const char *syscalltbl_${arch}[] = {"
+
+sorted_table=$(mktemp /tmp/syscalltbl.XXXXXX)
+grep '^[0-9]' "$in" | sort -n > $sorted_table
+
+max_nr=0
+while read nr abi name entry compat; do
+ if [ $nr -ge 512 ] ; then # discard compat sycalls
+ break
+ fi
+
+ emit "$nr" "$name"
+ max_nr=$nr
+done < $sorted_table
+
+rm -f $sorted_table
+
+echo "};"
+
+echo "#define SYSCALLTBL_${arch}_MAX_ID ${max_nr}"
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index d1e2b856ef0f..1e46277286c2 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -27,7 +27,7 @@ NO_PERF_REGS := 1
ifeq ($(ARCH),x86)
$(call detected,CONFIG_X86)
ifeq (${IS_64_BIT}, 1)
- CFLAGS += -DHAVE_ARCH_X86_64_SUPPORT
+ CFLAGS += -DHAVE_ARCH_X86_64_SUPPORT -DHAVE_SYSCALL_TABLE -I$(OUTPUT)arch/x86/include/generated
ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S ../../arch/x86/lib/memset_64.S
LIBUNWIND_LIBS = -lunwind -lunwind-x86_64
$(call detected,CONFIG_X86_64)
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index 3443646d8da3..ea4ac03c1ec8 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -148,6 +148,10 @@ CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ET
CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
CFLAGS_parse-events.o += -Wno-redundant-decls
+$(OUTPUT)util/syscalltbl.o: util/syscalltbl.c arch/x86/entry/syscalls/syscall_64.tbl $(OUTPUT)arch/x86/include/generated/asm/syscalls_64.c FORCE
+ $(call rule_mkdir)
+ $(call if_changed_dep,cc_o_c)
+
$(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
$(call rule_mkdir)
$(call if_changed_dep,cc_o_c)
diff --git a/tools/perf/util/syscalltbl.c b/tools/perf/util/syscalltbl.c
index eb74a97b1f11..bbb4c1957578 100644
--- a/tools/perf/util/syscalltbl.c
+++ b/tools/perf/util/syscalltbl.c
@@ -21,6 +21,12 @@
#include <string.h>
#include "util.h"
+#if defined(__x86_64__)
+#include <asm/syscalls_64.c>
+const int syscalltbl_native_max_id = SYSCALLTBL_x86_64_MAX_ID;
+static const char **syscalltbl_native = syscalltbl_x86_64;
+#endif
+
struct syscall {
int id;
const char *name;
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 18/19] perf symbols: Record text offset in dso to calculate objdump address
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (16 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 19/19] perf symbols: Adjust symbol for shared objects Arnaldo Carvalho de Melo
2016-04-08 13:15 ` [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Wang Nan, Adrian Hunter, Cody P Schafer, He Kuang,
Jiri Olsa, Kirill Smelkov, Li Zefan, Masami Hiramatsu,
Namhyung Kim, pi3orama, Arnaldo Carvalho de Melo
From: Wang Nan <wangnan0@huawei.com>
In this patch, the offset of '.text' section is stored into dso
and used here to re-calculate address to objdump.
In most of the cases, executable code is in '.text' section, so the
adjustment made to a symbol in dso__load_sym (using
sym.st_value -= shdr.sh_addr - shdr.sh_offset) should equal to
'sym.st_value -= dso->text_offset'. Therefore, adding text_offset back
get objdump address from symbol address (rip). However, it is not true
for kernel and kernel module since there could be multiple executable
sections with different offset. Exclude kernel for this reason.
After this patch, even dso->adjust_symbols is set to true for shared
objects, map__rip_2objdump() and map__objdump_2mem() would return
correct result, so perf behavior of annotate won't be changed.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Cody P Schafer <dev@codyps.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kirill Smelkov <kirr@nexedi.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1460024671-64774-2-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/map.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 171b6d10a04b..02c31865648b 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -431,6 +431,13 @@ u64 map__rip_2objdump(struct map *map, u64 rip)
if (map->dso->rel)
return rip - map->pgoff;
+ /*
+ * kernel modules also have DSO_TYPE_USER in dso->kernel,
+ * but all kernel modules are ET_REL, so won't get here.
+ */
+ if (map->dso->kernel == DSO_TYPE_USER)
+ return rip + map->dso->text_offset;
+
return map->unmap_ip(map, rip) - map->reloc;
}
@@ -454,6 +461,13 @@ u64 map__objdump_2mem(struct map *map, u64 ip)
if (map->dso->rel)
return map->unmap_ip(map, ip + map->pgoff);
+ /*
+ * kernel modules also have DSO_TYPE_USER in dso->kernel,
+ * but all kernel modules are ET_REL, so won't get here.
+ */
+ if (map->dso->kernel == DSO_TYPE_USER)
+ return map->unmap_ip(map, ip - map->dso->text_offset);
+
return ip + map->reloc;
}
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 19/19] perf symbols: Adjust symbol for shared objects
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (17 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 18/19] perf symbols: Record text offset in dso to calculate objdump address Arnaldo Carvalho de Melo
@ 2016-04-07 20:58 ` Arnaldo Carvalho de Melo
2016-04-08 13:15 ` [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
19 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 20:58 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Wang Nan, Adrian Hunter, Cody P Schafer, He Kuang,
Jiri Olsa, Kirill Smelkov, Li Zefan, Masami Hiramatsu, pi3orama,
Arnaldo Carvalho de Melo
From: Wang Nan <wangnan0@huawei.com>
He Kuang reported a problem that perf fails to get correct symbol on
Android platform in [1]. The problem can be reproduced on normal x86_64
platform. I will describe the reproducing steps in detail at the end of
commit message.
The reason of this problem is the missing of symbol adjustment for normal
shared objects. In most of the cases skipping adjustment is okay. However,
when '.text' section have different 'address' and 'offset' the result is wrong.
I checked all shared objects in my working platform, only wine dll objects and
debug objects (in .debug) have this problem. However, it is common on Android.
For example:
$ readelf -S ./libsurfaceflinger.so | grep \.text
[10] .text PROGBITS 0000000000029030 00012030
This patch enables symbol adjustment for dynamic objects so the symbol
address got from elfutils would be adjusted correctly.
Now nearly all types of ELF files should adjust symbols. Makes
ss->adjust_symbols default to true.
Steps to reproduce the problem:
$ cat ./Makefile
PWD := $(shell pwd)
LDFLAGS += "-Wl,-rpath=$(PWD)"
CFLAGS += -g
main: main.c libbuggy.so
libbuggy.so: buggy.c
gcc -g -shared -fPIC -Wl,-Ttext-segment=0x200000 $< -o $@
clean:
rm -rf main libbuggy.so *.o
$ cat ./buggy.c
int fib(int x)
{
return (x == 0) ? 1 : (x == 1) ? 1 : fib(x - 1) + fib(x - 2);
}
$ cat ./main.c
#include <stdio.h>
extern int fib(int x);
int main()
{
int i;
for (i = 0; i < 40; i++)
printf("%d\n", fib(i));
return 0;
}
$ make
$ perf record ./main
...
$ perf report --stdio
# Overhead Command Shared Object Symbol
# ........ ....... ................. ...............................
#
14.97% main libbuggy.so [.] 0x000000000000066c
8.68% main libbuggy.so [.] 0x00000000000006aa
8.52% main libbuggy.so [.] fib@plt
7.95% main libbuggy.so [.] 0x0000000000000664
5.94% main libbuggy.so [.] 0x00000000000006a9
5.35% main libbuggy.so [.] 0x0000000000000678
...
The correct result should be (after this patch):
# Overhead Command Shared Object Symbol
# ........ ....... ................. ...............................
#
91.47% main libbuggy.so [.] fib
8.52% main libbuggy.so [.] fib@plt
0.00% main [kernel.kallsyms] [k] kmem_cache_free
[1] http://lkml.kernel.org/g/1452567507-54013-1-git-send-email-hekuang@huawei.com
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Cody P Schafer <dev@codyps.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kirill Smelkov <kirr@nexedi.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1460024671-64774-3-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/symbol-elf.c | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index bc229a74c6a9..3f9d6798bd18 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -709,17 +709,10 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
if (ss->opdshdr.sh_type != SHT_PROGBITS)
ss->opdsec = NULL;
- if (dso->kernel == DSO_TYPE_USER) {
- GElf_Shdr shdr;
- ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
- ehdr.e_type == ET_REL ||
- dso__is_vdso(dso) ||
- elf_section_by_name(elf, &ehdr, &shdr,
- ".gnu.prelink_undo",
- NULL) != NULL);
- } else {
+ if (dso->kernel == DSO_TYPE_USER)
+ ss->adjust_symbols = true;
+ else
ss->adjust_symbols = elf__needs_adjust_symbols(ehdr);
- }
ss->name = strdup(name);
if (!ss->name) {
--
2.5.5
^ permalink raw reply related [flat|nested] 58+ messages in thread
* Re: [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl
2016-04-07 20:58 ` [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl Arnaldo Carvalho de Melo
@ 2016-04-07 21:39 ` David Ahern
2016-04-07 21:50 ` Arnaldo Carvalho de Melo
2016-04-07 21:49 ` David Ahern
2016-04-08 3:27 ` Wangnan (F)
2 siblings, 1 reply; 58+ messages in thread
From: David Ahern @ 2016-04-07 21:39 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Jiri Olsa,
Namhyung Kim, Wang Nan
On 4/7/16 2:58 PM, Arnaldo Carvalho de Melo wrote:
> We used libaudit to map ids to syscall names and vice-versa, but that
> imposes a delay in supporting new syscalls, having to wait for libaudit
> to get those new syscalls on its tables.
and for the distribution to get the new libaudit.
>
> To remove that delay, for x86_64 initially, grab a copy of
> arch/x86/entry/syscalls/syscall_64.tbl and use it to generate those
> tables.
Now that's a benefit for perf in the kernel tree. What happens for out
of tree perf builds? Are the requisite files included in the tarball?
(apparently no, since the manifest file is not updated or perhaps I
missed it)
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl
2016-04-07 20:58 ` [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl Arnaldo Carvalho de Melo
2016-04-07 21:39 ` David Ahern
@ 2016-04-07 21:49 ` David Ahern
2016-04-07 21:52 ` Arnaldo Carvalho de Melo
2016-04-08 3:27 ` Wangnan (F)
2 siblings, 1 reply; 58+ messages in thread
From: David Ahern @ 2016-04-07 21:49 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter, Jiri Olsa,
Namhyung Kim, Wang Nan
Upon further review ...
On 4/7/16 2:58 PM, Arnaldo Carvalho de Melo wrote:
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> We used libaudit to map ids to syscall names and vice-versa, but that
> imposes a delay in supporting new syscalls, having to wait for libaudit
> to get those new syscalls on its tables.
>
> To remove that delay, for x86_64 initially, grab a copy of
> arch/x86/entry/syscalls/syscall_64.tbl and use it to generate those
> tables.
> tools/perf/Makefile.perf | 11 +-
> tools/perf/arch/x86/Makefile | 23 ++
> tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 374 ++++++++++++++++++++++
> tools/perf/arch/x86/entry/syscalls/syscalltbl.sh | 39 +++
Why make a copies of the files? Why can't perf reference the ones 2
levels up?
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl
2016-04-07 21:39 ` David Ahern
@ 2016-04-07 21:50 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 21:50 UTC (permalink / raw)
To: David Ahern
Cc: Ingo Molnar, linux-kernel, Arnaldo Carvalho de Melo,
Adrian Hunter, Jiri Olsa, Namhyung Kim, Wang Nan
Em Thu, Apr 07, 2016 at 03:39:21PM -0600, David Ahern escreveu:
> On 4/7/16 2:58 PM, Arnaldo Carvalho de Melo wrote:
> >We used libaudit to map ids to syscall names and vice-versa, but that
> >imposes a delay in supporting new syscalls, having to wait for libaudit
> >to get those new syscalls on its tables.
> and for the distribution to get the new libaudit.
yeap
> >To remove that delay, for x86_64 initially, grab a copy of
> >arch/x86/entry/syscalls/syscall_64.tbl and use it to generate those
> >tables.
>
> Now that's a benefit for perf in the kernel tree. What happens for out of
> tree perf builds? Are the requisite files included in the tarball?
> (apparently no, since the manifest file is not updated or perhaps I missed
> it)
Well, we're removing references to files outside tools/, so what was
done in this case was to copy the files:
[acme@jouet linux]$ ls -la tools/perf/arch/x86/entry/syscalls/
total 28
drwxrwxr-x. 2 acme acme 4096 Apr 7 16:59 .
drwxrwxr-x. 3 acme acme 4096 Apr 7 16:59 ..
-rw-rw-r--. 1 acme acme 12972 Apr 7 16:59 syscall_64.tbl
-rwxrwxr-x. 1 acme acme 596 Apr 7 16:59 syscalltbl.sh
[acme@jouet linux]$
Then we have logic for when the kernel one gets out of sync, to be
warned about, see:
tools/perf/arch/x86/Makefile
E.g.:
[acme@jouet linux]$ git diff
diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
index 2e5b565adacc..e8af21d804f8 100644
--- a/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/arch/x86/entry/syscalls/syscall_64.tbl
@@ -333,6 +333,7 @@
324 common membarrier sys_membarrier
325 common mlock2 sys_mlock2
326 common copy_file_range sys_copy_file_range
+327 common leftpad sys_leftpad
#
# x32-specific system call numbers start at 512 to avoid cache impact
[acme@jouet linux]$
[acme@jouet linux]$ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf ; m
make: Entering directory '/home/acme/git/linux/tools/perf'
[acme@jouet linux]$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
BUILD: Doing 'make -j4' parallel build
Auto-detecting system features:
... dwarf: [ on ]
<SNIP>
GEN /tmp/build/perf/common-cmds.h
Warning: x86_64's syscall_64.tbl differs from kernel
CC /tmp/build/perf/fixdep.o
LD /tmp/build/perf/fixdep-in.o
---------------------------------------
Looking at it now it needs some more polish, i.e. it should have a GEN ...
line, but that can be done on top of this patchkit :-)
For completeness:
[acme@jouet linux]$ diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
--- tools/perf/arch/x86/entry/syscalls/syscall_64.tbl 2016-04-07 16:59:44.938061779 -0300
+++ arch/x86/entry/syscalls/syscall_64.tbl 2016-04-07 18:43:51.543992781 -0300
@@ -333,6 +333,7 @@
324 common membarrier sys_membarrier
325 common mlock2 sys_mlock2
326 common copy_file_range sys_copy_file_range
+327 common leftpad sys_leftpad
#
# x32-specific system call numbers start at 512 to avoid cache impact
[acme@jouet linux]$
And 'make -C tools/perf build-test' does the tarball creation and out-of-tree
build as its first step, to make sure it continues working, so all that is
needed is there :-)
[acme@jouet linux]$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
- /home/acme/git/linux/tools/perf/BUILD_TEST_FEATURE_DUMP: cd . && make FEATURE_DUMP_COPY=/home/acme/git/linux/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump
cd . && make FEATURE_DUMP_COPY=/home/acme/git/linux/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump
make_minimal_O: cd . && make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 FEATURES_DUMP=/home/acme/git/linux/tools/perf/BUILD_TEST_FEATURE_DUMP -j4 O=/tmp/tmp.6KCw8TRjm7 DESTDIR=/tmp/tmp.6yw98RESmd
<SNIP>
Best regards,
- Arnaldo
^ permalink raw reply related [flat|nested] 58+ messages in thread
* Re: [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl
2016-04-07 21:49 ` David Ahern
@ 2016-04-07 21:52 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-07 21:52 UTC (permalink / raw)
To: David Ahern
Cc: Ingo Molnar, linux-kernel, Adrian Hunter, Jiri Olsa, Namhyung Kim,
Wang Nan
Em Thu, Apr 07, 2016 at 03:49:56PM -0600, David Ahern escreveu:
> Upon further review ...
>
> On 4/7/16 2:58 PM, Arnaldo Carvalho de Melo wrote:
> >From: Arnaldo Carvalho de Melo <acme@redhat.com>
> >
> >We used libaudit to map ids to syscall names and vice-versa, but that
> >imposes a delay in supporting new syscalls, having to wait for libaudit
> >to get those new syscalls on its tables.
> >
> >To remove that delay, for x86_64 initially, grab a copy of
> >arch/x86/entry/syscalls/syscall_64.tbl and use it to generate those
> >tables.
>
>
> > tools/perf/Makefile.perf | 11 +-
> > tools/perf/arch/x86/Makefile | 23 ++
> > tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 374 ++++++++++++++++++++++
> > tools/perf/arch/x86/entry/syscalls/syscalltbl.sh | 39 +++
>
> Why make a copies of the files? Why can't perf reference the ones 2
> levels up?
We did that in the past, but then, after the build broke in tools/ due
to changes in the referenced files, we decided to use this "coherency
protocol" where we benefit from using the kernel files but don't use it
directly, being warned when changes happen so that we can do some
analysis before updating our copy.
- Arnaldo
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl
2016-04-07 20:58 ` [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl Arnaldo Carvalho de Melo
2016-04-07 21:39 ` David Ahern
2016-04-07 21:49 ` David Ahern
@ 2016-04-08 3:27 ` Wangnan (F)
2 siblings, 0 replies; 58+ messages in thread
From: Wangnan (F) @ 2016-04-08 3:27 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
David Ahern, Jiri Olsa, Namhyung Kim
On 2016/4/8 4:58, Arnaldo Carvalho de Melo wrote:
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> We used libaudit to map ids to syscall names and vice-versa, but that
> imposes a delay in supporting new syscalls, having to wait for libaudit
> to get those new syscalls on its tables.
>
> To remove that delay, for x86_64 initially, grab a copy of
> arch/x86/entry/syscalls/syscall_64.tbl and use it to generate those
> tables.
>
> Syscalls currently not available in audit-libs:
>
> # trace -e copy_file_range,membarrier,mlock2,pread64,pwrite64,timerfd_create,userfaultfd
> Error: Invalid syscall copy_file_range, membarrier, mlock2, pread64, pwrite64, timerfd_create, userfaultfd
> Hint: try 'perf list syscalls:sys_enter_*'
> Hint: and: 'man syscalls'
> #
>
> With this patch:
>
> # trace -e copy_file_range,membarrier,mlock2,pread64,pwrite64,timerfd_create,userfaultfd
> 8505.733 ( 0.010 ms): gnome-shell/2519 timerfd_create(flags: 524288) = 36
> 8506.688 ( 0.005 ms): gnome-shell/2519 timerfd_create(flags: 524288) = 40
> 30023.097 ( 0.025 ms): qemu-system-x8/24629 pwrite64(fd: 18, buf: 0x7f63ae382000, count: 4096, pos: 529592320) = 4096
> 31268.712 ( 0.028 ms): qemu-system-x8/24629 pwrite64(fd: 18, buf: 0x7f63afd8b000, count: 4096, pos: 2314133504) = 4096
> 31268.854 ( 0.016 ms): qemu-system-x8/24629 pwrite64(fd: 18, buf: 0x7f63afda2000, count: 4096, pos: 2314137600) = 4096
>
> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Cc: David Ahern <dsahern@gmail.com>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Wang Nan <wangnan0@huawei.com>
> Link: http://lkml.kernel.org/n/tip-5n4sx1wp0ig75dwcghf9m6zs@git.kernel.org
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
>
There is racing in Makefile. I see following output:
...
CC /xx/xx/perf/1.0-r8/perf-1.0/util/callchain.o
CC /xx/xx/perf/1.0-r8/perf-1.0/util/values.o
CC /xx/xx/perf/1.0-r8/perf-1.0/util/debug.o
make[3]: *** No rule to make target
`/xx/xx/perf/1.0-r8/perf-1.0/util/syscalltbl.o'. Stop.
make[3]: *** Waiting for unfinished jobs....
CC /xx/xx/perf/1.0-r8/perf-1.0/util/machine.o
CC /xx/xx/perf/1.0-r8/perf-1.0/util/map.o
...
The error disappeareafter doing 'make archheaders' before 'make all'.
Thank you.
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (18 preceding siblings ...)
2016-04-07 20:58 ` [PATCH 19/19] perf symbols: Adjust symbol for shared objects Arnaldo Carvalho de Melo
@ 2016-04-08 13:15 ` Arnaldo Carvalho de Melo
2016-04-13 6:58 ` Ingo Molnar
19 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-04-08 13:15 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
Alexei Starovoitov, Andi Kleen, Andreas Hollmann, Cody P Schafer,
David Ahern, Dima Kogan, Frederic Weisbecker, He Kuang, Jiri Olsa,
Josh Poimboeuf, Kirill Smelkov, Li Zefan, Masami Hiramatsu,
Milian Wolff, Namhyung Kim, Peter Zijlstra, pi3orama,
Steven Rostedt, Taeung Song, Vinson Lee, Wang Nan,
Arnaldo Carvalho de Melo
Em Thu, Apr 07, 2016 at 05:58:21PM -0300, Arnaldo Carvalho de Melo escreveu:
> Hi Ingo,
>
> Please consider pulling, build tested on:
Ingo, if you haven't pulled this one, please pull instead
perf-core-for-mingo-20160408, which has the same tag text and contents +
a Tested-by tag from Milian for the unwind thread one and a bisection
fix one liner for the syscall_tbl generation from Wang,
Thanks,
- Arnaldo
> # perf stat -e cycles dm
> alldeps-ubuntu-12.04: Ok
> minimal-debian-experimental-x-mips64: Ok
> minimal-debian-experimental-x-mips64el: Ok
> minimal-debian-experimental-x-mipsel: Ok
> minimal-ubuntu-x-arm: Ok
> minimal-ubuntu-x-arm64: Ok
> minimal-ubuntu-x-ppc64: Ok
> minimal-ubuntu-x-ppc64el: Ok
> alldeps-debian: Ok
> alldeps-mageia: Ok
> alldeps-rhel7: Ok
> alldeps-centos: Ok
> alldeps-opensuse: Ok
> alldeps-ubuntu: Ok
>
> Performance counter stats for 'dm':
>
> 3,095,685,547 cycles
>
> 454.805537820 seconds time elapsed
>
> #
>
> 'perf test' passes on fedora23 x86_64,
>
> Thanks,
>
> - Arnaldo
>
> The following changes since commit dad38ca64a252144b4ccdfe9730a3fe2b7c61957:
>
> Merge tag 'perf-core-for-mingo-20160401' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-04-06 08:46:23 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160407
>
> for you to fetch changes up to 98c3d844cd0bc56d33800114e6b6adcd0a5ec381:
>
> perf symbols: Adjust symbol for shared objects (2016-04-07 17:17:01 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Beautify more syscall arguments in 'perf trace', using the type column in
> tracepoint /format fields to attach, for instance, a pid_t resolver to the
> thread COMM, also attach a mode_t beautifier in the same fashion
> (Arnaldo Carvalho de Melo)
>
> - Build the syscall table id <-> name resolver using the same .tbl file
> used in the kernel to generate headers, to avoid the delay in getting
> new syscalls supported in the audit-libs external dependency, done so
> far only for x86_64 (Arnaldo Carvalho de Melo)
>
> - Improve the documentation of event specifications (Andi Kleen)
>
> - Process update events in 'perf script', fixing up this use case:
>
> # perf stat -a -I 1000 -e cycles record | perf script -s script.py
>
> - Shared object symbol adjustment fixes, fixing symbol resolution in
> Android (Wang Nan)
>
> Infrastructure:
>
> - Add dedicated unwind addr_space member into thread struct, to allow
> tools to use thread->priv, noticed while working on having callchains
> in 'perf trace' (Jiri Olsa)
>
> Build fixes:
>
> - Fix the build in Ubuntu 12.04 (Arnaldo Carvalho de Melo, Vinson Lee)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andi Kleen (1):
> perf list: Document event specifications better
>
> Arnaldo Carvalho de Melo (11):
> perf probe: Check if dwarf_getlocations() is available
> perf script perl: Do error checking on new backtrace routine
> perf trace: Beautify sched_setscheduler 'policy' argument
> perf trace: Beautify wait4/waitid 'options' argument
> perf trace: Infrastructure to show COMM strings for syscalls returning PIDs
> perf trace: Beautify set_tid_address, getpid, getppid return values
> perf trace: Beautify pid_t arguments
> perf trace: Beautify mode_t arguments
> perf trace: Move syscall table id <-> name routines to separate class
> perf tools: Allow generating per-arch syscall table arrays
> perf tools: Build syscall table .c header from kernel's syscall_64.tbl
>
> Jiri Olsa (4):
> perf tools: Remove superfluous ARCH Makefile includes
> perf tools: Introduce trim function
> perf tools: Add dedicated unwind addr_space member into thread struct
> perf script: Process event update events
>
> Vinson Lee (1):
> perf config: Fix build with older toolchain.
>
> Wang Nan (2):
> perf symbols: Record text offset in dso to calculate objdump address
> perf symbols: Adjust symbol for shared objects
>
> tools/build/Makefile.feature | 2 +
> tools/build/feature/Makefile | 4 +
> tools/build/feature/test-all.c | 5 +
> tools/build/feature/test-dwarf_getlocations.c | 12 +
> tools/perf/Documentation/perf-list.txt | 107 +++++-
> tools/perf/Makefile.perf | 13 +-
> tools/perf/arch/x86/Makefile | 23 ++
> tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 374 +++++++++++++++++++++
> tools/perf/arch/x86/entry/syscalls/syscalltbl.sh | 39 +++
> tools/perf/builtin-script.c | 1 +
> tools/perf/builtin-trace.c | 156 +++++----
> tools/perf/config/Makefile | 11 +-
> tools/perf/trace/beauty/mode_t.c | 68 ++++
> tools/perf/trace/beauty/pid.c | 18 +
> tools/perf/trace/beauty/sched_policy.c | 44 +++
> tools/perf/trace/beauty/waitid_options.c | 26 ++
> tools/perf/ui/browsers/hists.c | 3 +-
> tools/perf/ui/stdio/hist.c | 3 +-
> tools/perf/util/Build | 5 +
> tools/perf/util/config.c | 6 +-
> tools/perf/util/dwarf-aux.c | 9 +
> tools/perf/util/map.c | 14 +
> .../perf/util/scripting-engines/trace-event-perl.c | 30 +-
> tools/perf/util/symbol-elf.c | 13 +-
> tools/perf/util/syscalltbl.c | 134 ++++++++
> tools/perf/util/syscalltbl.h | 20 ++
> tools/perf/util/thread.h | 6 +
> tools/perf/util/unwind-libunwind.c | 25 +-
> tools/perf/util/util.h | 5 +
> 29 files changed, 1060 insertions(+), 116 deletions(-)
> create mode 100644 tools/build/feature/test-dwarf_getlocations.c
> create mode 100644 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
> create mode 100755 tools/perf/arch/x86/entry/syscalls/syscalltbl.sh
> create mode 100644 tools/perf/trace/beauty/mode_t.c
> create mode 100644 tools/perf/trace/beauty/pid.c
> create mode 100644 tools/perf/trace/beauty/sched_policy.c
> create mode 100644 tools/perf/trace/beauty/waitid_options.c
> create mode 100644 tools/perf/util/syscalltbl.c
> create mode 100644 tools/perf/util/syscalltbl.h
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-04-08 13:15 ` [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2016-04-13 6:58 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-04-13 6:58 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
Alexei Starovoitov, Andi Kleen, Andreas Hollmann, Cody P Schafer,
David Ahern, Dima Kogan, Frederic Weisbecker, He Kuang, Jiri Olsa,
Josh Poimboeuf, Kirill Smelkov, Li Zefan, Masami Hiramatsu,
Milian Wolff, Namhyung Kim, Peter Zijlstra, pi3orama,
Steven Rostedt, Taeung Song, Vinson Lee, Wang Nan,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Em Thu, Apr 07, 2016 at 05:58:21PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Hi Ingo,
> >
> > Please consider pulling, build tested on:
>
> Ingo, if you haven't pulled this one, please pull instead
> perf-core-for-mingo-20160408, which has the same tag text and contents +
> a Tested-by tag from Milian for the unwind thread one and a bisection
> fix one liner for the syscall_tbl generation from Wang,
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-06-15 18:13 Arnaldo Carvalho de Melo
2016-06-16 6:29 ` Jiri Olsa
2016-06-16 8:29 ` Ingo Molnar
0 siblings, 2 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-15 18:13 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexander Shishkin,
Ananth N Mavinakayanahalli, Brendan Gregg, David Ahern, He Kuang,
Hemant Kumar, Jiri Olsa, Masami Hiramatsu, Namhyung Kim,
Peter Zijlstra, Taeung Song, Wang Nan, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 2c95afc1e83d93fac3be6923465e1753c2c53b0a:
perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86 (2016-06-14 11:16:59 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160615
for you to fetch changes up to 2fd457a34525ea3bc609e377b46af759af8a7934:
perf probe: Add --cache option to cache the probe definitions (2016-06-15 14:34:42 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Add --ldlat option to 'perf mem' to specify load latency for loads
event (e.g. cpu/mem-loads/ ) (Jiri Olsa)
Build fixes:
- Fix libunwind related compile error for static cross build (He Kuang)
Infrastructure:
- UI refactorings to support headers with multiple lines, non-evsel
hists browsers, toggle showing callchains, etc (Jiri Olsa)
- More prep work for caching probe definitions, paving the way
for supporting SDT (Statically Defined Traces) userspace probes (Masami Hiramatsu)
- Handle NULL at perf_config_set__delete() (Taeung Song)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
He Kuang (1):
perf unwind: Fix compile error for static cross build
Jiri Olsa (10):
perf mem: Add --ldlat option
perf tools: Fix Data Object sort entry width index
perf tui: Separate hierarchy and standard headers output
perf stdio: Separate headers output
perf stdio: Separate hierarchy headers output
perf stdio: Separate standard headers output
perf stdio: Do not pass hists in hist_entry__fprintf
perf stdio: Add use_callchain parameter to hists__fprintf
perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback
perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback
Masami Hiramatsu (7):
perf tools: Fix rm_rf() to handle non-regular files correctly
perf probe: Fix to add NULL check for strndup
perf buildid: Rename and export build_id_cache__cachedir()
perf probe: Add perf_probe_event__copy()
perf probe: Uncomment and export synthesize_perf_probe_point()
perf probe: Introduce perf_cache interfaces
perf probe: Add --cache option to cache the probe definitions
Taeung Song (1):
perf config: Handle NULL at perf_config_set__delete()
tools/perf/Documentation/perf-mem.txt | 3 +
tools/perf/Documentation/perf-probe.txt | 4 +
tools/perf/builtin-diff.c | 7 +-
tools/perf/builtin-mem.c | 1 +
tools/perf/builtin-probe.c | 1 +
tools/perf/builtin-report.c | 3 +-
tools/perf/builtin-top.c | 2 +-
tools/perf/config/Makefile | 3 +
tools/perf/ui/browsers/hists.c | 39 ++--
tools/perf/ui/gtk/hists.c | 2 +-
tools/perf/ui/hist.c | 11 +-
tools/perf/ui/stdio/hist.c | 133 +++++++------
tools/perf/util/build-id.c | 12 +-
tools/perf/util/build-id.h | 2 +
tools/perf/util/config.c | 3 +
tools/perf/util/hist.c | 2 +-
tools/perf/util/hist.h | 7 +-
tools/perf/util/mem-events.c | 17 +-
tools/perf/util/mem-events.h | 1 +
tools/perf/util/probe-event.c | 128 ++++++++++--
tools/perf/util/probe-event.h | 5 +
tools/perf/util/probe-file.c | 331 ++++++++++++++++++++++++++++++++
tools/perf/util/probe-file.h | 20 ++
tools/perf/util/sort.c | 14 +-
tools/perf/util/util.c | 13 +-
25 files changed, 640 insertions(+), 124 deletions(-)
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-06-15 18:13 Arnaldo Carvalho de Melo
@ 2016-06-16 6:29 ` Jiri Olsa
2016-06-16 19:54 ` Arnaldo Carvalho de Melo
2016-06-16 8:29 ` Ingo Molnar
1 sibling, 1 reply; 58+ messages in thread
From: Jiri Olsa @ 2016-06-16 6:29 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Ingo Molnar, linux-kernel, Alexander Shishkin,
Ananth N Mavinakayanahalli, Brendan Gregg, David Ahern, He Kuang,
Hemant Kumar, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
Taeung Song, Wang Nan, Arnaldo Carvalho de Melo
On Wed, Jun 15, 2016 at 03:13:09PM -0300, Arnaldo Carvalho de Melo wrote:
SNIP
> ----------------------------------------------------------------
> He Kuang (1):
> perf unwind: Fix compile error for static cross build
>
> Jiri Olsa (10):
> perf mem: Add --ldlat option
> perf tools: Fix Data Object sort entry width index
> perf tui: Separate hierarchy and standard headers output
> perf stdio: Separate headers output
> perf stdio: Separate hierarchy headers output
> perf stdio: Separate standard headers output
> perf stdio: Do not pass hists in hist_entry__fprintf
> perf stdio: Add use_callchain parameter to hists__fprintf
> perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback
> perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback
hi,
any reason for skipping this one?:
perf tools: Rename __hists__add_entry to hists__add_entry
thanks,
jirka
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-06-15 18:13 Arnaldo Carvalho de Melo
2016-06-16 6:29 ` Jiri Olsa
@ 2016-06-16 8:29 ` Ingo Molnar
1 sibling, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-06-16 8:29 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Alexander Shishkin, Ananth N Mavinakayanahalli,
Brendan Gregg, David Ahern, He Kuang, Hemant Kumar, Jiri Olsa,
Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, Taeung Song,
Wang Nan, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 2c95afc1e83d93fac3be6923465e1753c2c53b0a:
>
> perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86 (2016-06-14 11:16:59 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160615
>
> for you to fetch changes up to 2fd457a34525ea3bc609e377b46af759af8a7934:
>
> perf probe: Add --cache option to cache the probe definitions (2016-06-15 14:34:42 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Add --ldlat option to 'perf mem' to specify load latency for loads
> event (e.g. cpu/mem-loads/ ) (Jiri Olsa)
>
> Build fixes:
>
> - Fix libunwind related compile error for static cross build (He Kuang)
>
> Infrastructure:
>
> - UI refactorings to support headers with multiple lines, non-evsel
> hists browsers, toggle showing callchains, etc (Jiri Olsa)
>
> - More prep work for caching probe definitions, paving the way
> for supporting SDT (Statically Defined Traces) userspace probes (Masami Hiramatsu)
>
> - Handle NULL at perf_config_set__delete() (Taeung Song)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> He Kuang (1):
> perf unwind: Fix compile error for static cross build
>
> Jiri Olsa (10):
> perf mem: Add --ldlat option
> perf tools: Fix Data Object sort entry width index
> perf tui: Separate hierarchy and standard headers output
> perf stdio: Separate headers output
> perf stdio: Separate hierarchy headers output
> perf stdio: Separate standard headers output
> perf stdio: Do not pass hists in hist_entry__fprintf
> perf stdio: Add use_callchain parameter to hists__fprintf
> perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback
> perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback
>
> Masami Hiramatsu (7):
> perf tools: Fix rm_rf() to handle non-regular files correctly
> perf probe: Fix to add NULL check for strndup
> perf buildid: Rename and export build_id_cache__cachedir()
> perf probe: Add perf_probe_event__copy()
> perf probe: Uncomment and export synthesize_perf_probe_point()
> perf probe: Introduce perf_cache interfaces
> perf probe: Add --cache option to cache the probe definitions
>
> Taeung Song (1):
> perf config: Handle NULL at perf_config_set__delete()
>
> tools/perf/Documentation/perf-mem.txt | 3 +
> tools/perf/Documentation/perf-probe.txt | 4 +
> tools/perf/builtin-diff.c | 7 +-
> tools/perf/builtin-mem.c | 1 +
> tools/perf/builtin-probe.c | 1 +
> tools/perf/builtin-report.c | 3 +-
> tools/perf/builtin-top.c | 2 +-
> tools/perf/config/Makefile | 3 +
> tools/perf/ui/browsers/hists.c | 39 ++--
> tools/perf/ui/gtk/hists.c | 2 +-
> tools/perf/ui/hist.c | 11 +-
> tools/perf/ui/stdio/hist.c | 133 +++++++------
> tools/perf/util/build-id.c | 12 +-
> tools/perf/util/build-id.h | 2 +
> tools/perf/util/config.c | 3 +
> tools/perf/util/hist.c | 2 +-
> tools/perf/util/hist.h | 7 +-
> tools/perf/util/mem-events.c | 17 +-
> tools/perf/util/mem-events.h | 1 +
> tools/perf/util/probe-event.c | 128 ++++++++++--
> tools/perf/util/probe-event.h | 5 +
> tools/perf/util/probe-file.c | 331 ++++++++++++++++++++++++++++++++
> tools/perf/util/probe-file.h | 20 ++
> tools/perf/util/sort.c | 14 +-
> tools/perf/util/util.c | 13 +-
> 25 files changed, 640 insertions(+), 124 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-06-16 6:29 ` Jiri Olsa
@ 2016-06-16 19:54 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-06-16 19:54 UTC (permalink / raw)
To: Jiri Olsa
Cc: Ingo Molnar, linux-kernel, Alexander Shishkin,
Ananth N Mavinakayanahalli, Brendan Gregg, David Ahern, He Kuang,
Hemant Kumar, Masami Hiramatsu, Namhyung Kim, Peter Zijlstra,
Taeung Song, Wang Nan, Arnaldo Carvalho de Melo
Em Thu, Jun 16, 2016 at 08:29:47AM +0200, Jiri Olsa escreveu:
> On Wed, Jun 15, 2016 at 03:13:09PM -0300, Arnaldo Carvalho de Melo wrote:
>
> SNIP
>
> > ----------------------------------------------------------------
> > He Kuang (1):
> > perf unwind: Fix compile error for static cross build
> >
> > Jiri Olsa (10):
> > perf mem: Add --ldlat option
> > perf tools: Fix Data Object sort entry width index
> > perf tui: Separate hierarchy and standard headers output
> > perf stdio: Separate headers output
> > perf stdio: Separate hierarchy headers output
> > perf stdio: Separate standard headers output
> > perf stdio: Do not pass hists in hist_entry__fprintf
> > perf stdio: Add use_callchain parameter to hists__fprintf
> > perf hists: Replace perf_evsel arg perf_hpp_fmt's header callback
> > perf hists: Replace perf_evsel arg perf_hpp_fmt's width callback
> hi,
> any reason for skipping this one?:
> perf tools: Rename __hists__add_entry to hists__add_entry
nope, will apply.
- Arnaldo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-07-14 2:20 Arnaldo Carvalho de Melo
2016-07-14 6:58 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-07-14 2:20 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexei Starovoitov, Ananth N Mavinakayanahalli, Brendan Gregg,
David Ahern, Hemant Kumar, Jiri Olsa, Josh Poimboeuf,
Masami Hiramatsu, Namhyung Kim, Peter Zijlstra, pi3orama,
Wang Nan, Zefan Li, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
I've added building objtool to most of the containers in my build test setup:
[root@jouet ~]# perf stat dm
alpine:3.4: Ok
centos:5: Ok
centos:6: Ok
centos:7: Ok
debian:7: Ok
debian:8: Ok
debian:experimental: Ok
fedora:21: Ok
fedora:22: Ok
fedora:23: Ok
fedora:24: Ok
fedora:rawhide: Ok
mageia:5: Ok
opensuse:13.2: Ok
opensuse:42.1: Ok
ubuntu:12.04.5: Ok
ubuntu:14.04.4: Ok
ubuntu:15.10: Ok
ubuntu:16.04: Ok
Performance counter stats for 'dm':
2601.121782 task-clock (msec) # 0.002 CPUs utilized
86,368 context-switches # 0.033 M/sec
5,740 cpu-migrations # 0.002 M/sec
53,962 page-faults # 0.021 M/sec
7,217,605,183 cycles # 2.775 GHz
6,534,540,119 instructions # 0.91 insn per cycle
1,408,715,184 branches # 541.580 M/sec
18,523,459 branch-misses # 1.31% of all branches
1541.746171526 seconds time elapsed
[root@jouet ~]#
- Arnaldo
The following changes since commit 7b39cafb7aa68ef8e32a9f51fbe737d96084ca74:
tools: Work around BITS_PER_LONG related build failure in objtool (2016-07-13 09:37:43 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160713
for you to fetch changes up to 8e5dc848356ecf6ea8d27d641c4d7ad8d42fe92b:
perf test: Add a test case for SDT event (2016-07-13 23:09:10 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Finish merging initial SDT (Statically Defined Traces) support, see
cset comments for details about how it all works (Masami Hiramatsu)
- Support attaching eBPF programs to tracepoints (Wang Nan)
Infrastructure:
- Fix up BITS_PER_LONG setting (Arnaldo Carvalho de Melo)
- Add fallback from ELF_C_READ_MMAP to ELF_C_READ in objtool, fixing
the build in libelf implementations lacking that elf_begin() cmd,
such as Alpine Linux's (Arnaldo Carvalho de Melo)
- Avoid checking code drift on busybox's diff in objtool (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
tools: Fix up BITS_PER_LONG setting
objtool: Add fallback from ELF_C_READ_MMAP to ELF_C_READ
objtool: Avoid checking code drift on busybox's diff
Masami Hiramatsu (11):
perf probe: Fix to show correct error message for $vars and $params
perf probe: Accept %sdt and %cached event name
perf probe: Make --list show only available cached events
perf probe-cache: Add for_each_probe_cache_entry() wrapper
perf probe: Allow wildcard for cached events
perf probe: Search SDT/cached event from all probe caches
perf list: Show SDT and pre-cached events
perf probe: Support @BUILDID or @FILE suffix for SDT events
perf probe: Support a special SDT probe format
perf build: Add sdt feature detection
perf test: Add a test case for SDT event
Wang Nan (5):
tools lib bpf: New API to adjust type of a BPF program
tools lib bpf: Report error when kernel doesn't support program type
perf event parser: Add const qualifier to evt_name and sys_name
perf bpf: Rename bpf__foreach_tev() to bpf__foreach_event()
perf bpf: Support BPF program attach to tracepoints
tools/build/Makefile.feature | 3 +-
tools/build/feature/Makefile | 6 +-
tools/build/feature/test-all.c | 5 +
tools/build/feature/test-sdt.c | 7 +
tools/include/asm-generic/bitsperlong.h | 24 ++-
tools/lib/bpf/libbpf.c | 80 +++++++--
tools/lib/bpf/libbpf.h | 10 ++
tools/objtool/Makefile | 5 +-
tools/objtool/elf.c | 7 +
tools/perf/Documentation/perf-probe.txt | 11 +-
tools/perf/Makefile.perf | 3 +
tools/perf/builtin-list.c | 6 +-
tools/perf/builtin-probe.c | 2 +-
tools/perf/config/Makefile | 10 ++
tools/perf/tests/Build | 1 +
tools/perf/tests/builtin-test.c | 4 +
tools/perf/tests/make | 3 +-
tools/perf/tests/sdt.c | 115 ++++++++++++
tools/perf/tests/tests.h | 1 +
tools/perf/util/bpf-loader.c | 73 +++++++-
tools/perf/util/bpf-loader.h | 12 +-
tools/perf/util/build-id.c | 76 +++++++-
tools/perf/util/build-id.h | 3 +-
tools/perf/util/parse-events.c | 110 ++++++++++--
tools/perf/util/parse-events.h | 4 +-
tools/perf/util/probe-event.c | 309 +++++++++++++++++++++++++++-----
tools/perf/util/probe-event.h | 1 +
tools/perf/util/probe-file.c | 57 ++++--
tools/perf/util/probe-file.h | 14 ++
29 files changed, 850 insertions(+), 112 deletions(-)
create mode 100644 tools/build/feature/test-sdt.c
create mode 100644 tools/perf/tests/sdt.c
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-07-14 2:20 Arnaldo Carvalho de Melo
@ 2016-07-14 6:58 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-07-14 6:58 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexei Starovoitov,
Ananth N Mavinakayanahalli, Brendan Gregg, David Ahern,
Hemant Kumar, Jiri Olsa, Josh Poimboeuf, Masami Hiramatsu,
Namhyung Kim, Peter Zijlstra, pi3orama, Wang Nan, Zefan Li,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> I've added building objtool to most of the containers in my build test setup:
>
> [root@jouet ~]# perf stat dm
> alpine:3.4: Ok
> centos:5: Ok
> centos:6: Ok
> centos:7: Ok
> debian:7: Ok
> debian:8: Ok
> debian:experimental: Ok
> fedora:21: Ok
> fedora:22: Ok
> fedora:23: Ok
> fedora:24: Ok
> fedora:rawhide: Ok
> mageia:5: Ok
> opensuse:13.2: Ok
> opensuse:42.1: Ok
> ubuntu:12.04.5: Ok
> ubuntu:14.04.4: Ok
> ubuntu:15.10: Ok
> ubuntu:16.04: Ok
>
> Performance counter stats for 'dm':
>
> 2601.121782 task-clock (msec) # 0.002 CPUs utilized
> 86,368 context-switches # 0.033 M/sec
> 5,740 cpu-migrations # 0.002 M/sec
> 53,962 page-faults # 0.021 M/sec
> 7,217,605,183 cycles # 2.775 GHz
> 6,534,540,119 instructions # 0.91 insn per cycle
> 1,408,715,184 branches # 541.580 M/sec
> 18,523,459 branch-misses # 1.31% of all branches
>
> 1541.746171526 seconds time elapsed
>
> [root@jouet ~]#
>
> - Arnaldo
>
> The following changes since commit 7b39cafb7aa68ef8e32a9f51fbe737d96084ca74:
>
> tools: Work around BITS_PER_LONG related build failure in objtool (2016-07-13 09:37:43 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160713
>
> for you to fetch changes up to 8e5dc848356ecf6ea8d27d641c4d7ad8d42fe92b:
>
> perf test: Add a test case for SDT event (2016-07-13 23:09:10 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Finish merging initial SDT (Statically Defined Traces) support, see
> cset comments for details about how it all works (Masami Hiramatsu)
>
> - Support attaching eBPF programs to tracepoints (Wang Nan)
>
> Infrastructure:
>
> - Fix up BITS_PER_LONG setting (Arnaldo Carvalho de Melo)
>
> - Add fallback from ELF_C_READ_MMAP to ELF_C_READ in objtool, fixing
> the build in libelf implementations lacking that elf_begin() cmd,
> such as Alpine Linux's (Arnaldo Carvalho de Melo)
>
> - Avoid checking code drift on busybox's diff in objtool (Arnaldo Carvalho de Melo)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
> tools: Fix up BITS_PER_LONG setting
> objtool: Add fallback from ELF_C_READ_MMAP to ELF_C_READ
> objtool: Avoid checking code drift on busybox's diff
>
> Masami Hiramatsu (11):
> perf probe: Fix to show correct error message for $vars and $params
> perf probe: Accept %sdt and %cached event name
> perf probe: Make --list show only available cached events
> perf probe-cache: Add for_each_probe_cache_entry() wrapper
> perf probe: Allow wildcard for cached events
> perf probe: Search SDT/cached event from all probe caches
> perf list: Show SDT and pre-cached events
> perf probe: Support @BUILDID or @FILE suffix for SDT events
> perf probe: Support a special SDT probe format
> perf build: Add sdt feature detection
> perf test: Add a test case for SDT event
>
> Wang Nan (5):
> tools lib bpf: New API to adjust type of a BPF program
> tools lib bpf: Report error when kernel doesn't support program type
> perf event parser: Add const qualifier to evt_name and sys_name
> perf bpf: Rename bpf__foreach_tev() to bpf__foreach_event()
> perf bpf: Support BPF program attach to tracepoints
>
> tools/build/Makefile.feature | 3 +-
> tools/build/feature/Makefile | 6 +-
> tools/build/feature/test-all.c | 5 +
> tools/build/feature/test-sdt.c | 7 +
> tools/include/asm-generic/bitsperlong.h | 24 ++-
> tools/lib/bpf/libbpf.c | 80 +++++++--
> tools/lib/bpf/libbpf.h | 10 ++
> tools/objtool/Makefile | 5 +-
> tools/objtool/elf.c | 7 +
> tools/perf/Documentation/perf-probe.txt | 11 +-
> tools/perf/Makefile.perf | 3 +
> tools/perf/builtin-list.c | 6 +-
> tools/perf/builtin-probe.c | 2 +-
> tools/perf/config/Makefile | 10 ++
> tools/perf/tests/Build | 1 +
> tools/perf/tests/builtin-test.c | 4 +
> tools/perf/tests/make | 3 +-
> tools/perf/tests/sdt.c | 115 ++++++++++++
> tools/perf/tests/tests.h | 1 +
> tools/perf/util/bpf-loader.c | 73 +++++++-
> tools/perf/util/bpf-loader.h | 12 +-
> tools/perf/util/build-id.c | 76 +++++++-
> tools/perf/util/build-id.h | 3 +-
> tools/perf/util/parse-events.c | 110 ++++++++++--
> tools/perf/util/parse-events.h | 4 +-
> tools/perf/util/probe-event.c | 309 +++++++++++++++++++++++++++-----
> tools/perf/util/probe-event.h | 1 +
> tools/perf/util/probe-file.c | 57 ++++--
> tools/perf/util/probe-file.h | 14 ++
> 29 files changed, 850 insertions(+), 112 deletions(-)
> create mode 100644 tools/build/feature/test-sdt.c
> create mode 100644 tools/perf/tests/sdt.c
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-09-01 16:45 Arnaldo Carvalho de Melo
2016-09-05 13:16 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-09-01 16:45 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Anton Blanchard, David Ahern, Hemant Kumar,
Jiri Olsa, Masami Hiramatsu, Michael Petlan, Milian Wolff,
Namhyung Kim, Naveen N . Rao, Peter Zijlstra, Ravi Bangoria,
Shawn Lin, Wang Nan, Yauheni Kaliuta, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 36e674a05164cdbb9d4a5b1b0b279fabae6c13bd:
Merge tag 'perf-core-for-mingo-20160823' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-08-24 11:08:10 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160901
for you to fetch changes up to 6243b9dc4c991fe8bdc53a0e029908aef3ddb101:
perf probe: Move dwarf specific functions to dwarf-aux.c (2016-09-01 12:42:26 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
User visible:
- Support generating cross arch probes, i.e. if you specify a vmlinux
file for different arch than the one in the host machine,
$ perf probe --definition function_name args
will generate the probe definition string needed to append to the
target machine /sys/kernel/debug/tracing/kprobes_events file, using
scripting (Masami Hiramatsu).
- Make 'perf probe' skip the function prologue in uprobes if program
compiled without optimization, using the same strategy as gdb and
systemtap uses, fixing a bug where:
$ perf probe -x ./test 'foo i'
When 'foo(42)' was used on the "./test" executable would produce i=0
instead of the expected i=42 (Ravi Bangoria)
- Demangle symbols for synthesized @plt entries too (Millian Wolff)
Documentation:
- Show default report configuration in 'perf config' example
and docs (Millian Wolff)
Infrastructure:
- Make 'perf test vmlinux' tolerate the symbol aliasing pruning done when
loading kallsyms and vmlinux (Arnaldo Carvalho de Melo)
- Improve output of 'perf test vmlinux' test, to help identify on the verbose
output which lines are warning and which are errors (Arnaldo Carvalho de Melo)
- Prep work to stop having to pass symbol_filter_t to lots of functions,
simplifying symtab loading routines (Arnaldo Carvalho de Melo)
- Honor symbol_conf.allow_aliases when loading kallsyms as well, it was using
it only when loading vmlinux files (Arnaldo Carvalho de Melo)
- Fixup symbol->end before doing alias pruning when loading symbol tables
(Arnaldo Carvalho de Melo)
- Fix error handling of lzma kernel module decompression (Shawn Lin)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (8):
perf annotate: Initialize the priv are in symbol__new()
perf symbols: Rename ->ignore to ->idle
perf probe: Do not use map_load filters for function
perf test vmlinux: Clarify which -v lines are errors or warning
perf test vmlinux: Avoid printing headers for empty lists
perf test vmlinux: Tolerate symbol aliases
perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too
perf symbols: Fixup symbol sizes before picking best ones
Masami Hiramatsu (5):
perf probe: Remove unused tracing_dir variable
perf probe: Show trace event definition
perf probe: Ignore vmlinux buildid if offline kernel is given
perf probe: Support probing on offline cross-arch binary
perf probe: Ignore vmlinux Build-id when offline vmlinux given
Milian Wolff (2):
perf symbols: Demangle symbols for synthesized @plt entries.
perf config: Show default report configuration in example and docs
Ravi Bangoria (3):
perf probe: Add helper function to check if probe with variable
perf uprobe: Skip prologue if program compiled without optimization
perf probe: Move dwarf specific functions to dwarf-aux.c
Shawn Lin (1):
perf tools: Fix error handling of lzma decompression
tools/perf/Documentation/perf-config.txt | 8 +
tools/perf/Documentation/perf-probe.txt | 9 ++
tools/perf/Documentation/perfconfig.example | 9 ++
tools/perf/arch/arm/include/dwarf-regs-table.h | 9 ++
tools/perf/arch/arm64/include/dwarf-regs-table.h | 13 ++
tools/perf/arch/powerpc/include/dwarf-regs-table.h | 27 ++++
tools/perf/arch/s390/include/dwarf-regs-table.h | 8 +
tools/perf/arch/sh/include/dwarf-regs-table.h | 25 +++
tools/perf/arch/sparc/include/dwarf-regs-table.h | 18 +++
tools/perf/arch/x86/include/dwarf-regs-table.h | 14 ++
tools/perf/arch/xtensa/include/dwarf-regs-table.h | 8 +
tools/perf/builtin-annotate.c | 7 +-
tools/perf/builtin-probe.c | 35 +++-
tools/perf/builtin-report.c | 6 +-
tools/perf/builtin-top.c | 8 +-
tools/perf/tests/vmlinux-kallsyms.c | 44 +++--
tools/perf/util/Build | 1 +
tools/perf/util/annotate.c | 7 -
tools/perf/util/annotate.h | 1 -
tools/perf/util/dwarf-aux.c | 179 +++++++++++++++++++++
tools/perf/util/dwarf-aux.h | 8 +
tools/perf/util/dwarf-regs.c | 59 +++++++
tools/perf/util/evsel_fprintf.c | 4 +-
tools/perf/util/include/dwarf-regs.h | 6 +
tools/perf/util/lzma.c | 15 +-
tools/perf/util/probe-event.c | 101 +++++++++---
tools/perf/util/probe-event.h | 3 +
tools/perf/util/probe-file.c | 5 +-
tools/perf/util/probe-finder.c | 60 +++++--
tools/perf/util/probe-finder.h | 1 +
tools/perf/util/symbol-elf.c | 86 ++++++----
tools/perf/util/symbol.c | 30 +++-
tools/perf/util/symbol.h | 5 +-
33 files changed, 698 insertions(+), 121 deletions(-)
create mode 100644 tools/perf/arch/arm/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/arm64/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/powerpc/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/s390/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/sh/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/sparc/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/x86/include/dwarf-regs-table.h
create mode 100644 tools/perf/arch/xtensa/include/dwarf-regs-table.h
create mode 100644 tools/perf/util/dwarf-regs.c
Build stats:
1 alpine:3.4: Ok
2 android-ndk:r12b-arm: Ok
3 archlinux:latest: Ok
4 centos:5: Ok
5 centos:6: Ok
6 centos:7: Ok
7 debian:7: Ok
8 debian:8: Ok
9 fedora:20: Ok
10 fedora:21: Ok
11 fedora:22: Ok
12 fedora:23: Ok
13 fedora:24: Ok
14 fedora:24-x-ARC-uClibc: Ok
15 fedora:rawhide: Ok
16 mageia:5: Ok
17 opensuse:13.2: Ok
18 opensuse:42.1: Ok
19 opensuse:tumbleweed: Ok
20 ubuntu:12.04.5: Ok
21 ubuntu:14.04.4: Ok
22 ubuntu:15.10: Ok
23 ubuntu:16.04: Ok
24 ubuntu:16.04-x-arm: Ok
25 ubuntu:16.04-x-arm64: Ok
26 ubuntu:16.04-x-powerpc64: Ok
27 ubuntu:16.04-x-powerpc64el: Ok
28 ubuntu:16.10: Ok
29 ubuntu:16.10-x-s390: Ok
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-09-01 16:45 Arnaldo Carvalho de Melo
@ 2016-09-05 13:16 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-09-05 13:16 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin, Anton Blanchard,
David Ahern, Hemant Kumar, Jiri Olsa, Masami Hiramatsu,
Michael Petlan, Milian Wolff, Namhyung Kim, Naveen N . Rao,
Peter Zijlstra, Ravi Bangoria, Shawn Lin, Wang Nan,
Yauheni Kaliuta, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 36e674a05164cdbb9d4a5b1b0b279fabae6c13bd:
>
> Merge tag 'perf-core-for-mingo-20160823' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-08-24 11:08:10 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20160901
>
> for you to fetch changes up to 6243b9dc4c991fe8bdc53a0e029908aef3ddb101:
>
> perf probe: Move dwarf specific functions to dwarf-aux.c (2016-09-01 12:42:26 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Support generating cross arch probes, i.e. if you specify a vmlinux
> file for different arch than the one in the host machine,
>
> $ perf probe --definition function_name args
>
> will generate the probe definition string needed to append to the
> target machine /sys/kernel/debug/tracing/kprobes_events file, using
> scripting (Masami Hiramatsu).
>
> - Make 'perf probe' skip the function prologue in uprobes if program
> compiled without optimization, using the same strategy as gdb and
> systemtap uses, fixing a bug where:
>
> $ perf probe -x ./test 'foo i'
>
> When 'foo(42)' was used on the "./test" executable would produce i=0
> instead of the expected i=42 (Ravi Bangoria)
>
> - Demangle symbols for synthesized @plt entries too (Millian Wolff)
>
> Documentation:
>
> - Show default report configuration in 'perf config' example
> and docs (Millian Wolff)
>
> Infrastructure:
>
> - Make 'perf test vmlinux' tolerate the symbol aliasing pruning done when
> loading kallsyms and vmlinux (Arnaldo Carvalho de Melo)
>
> - Improve output of 'perf test vmlinux' test, to help identify on the verbose
> output which lines are warning and which are errors (Arnaldo Carvalho de Melo)
>
> - Prep work to stop having to pass symbol_filter_t to lots of functions,
> simplifying symtab loading routines (Arnaldo Carvalho de Melo)
>
> - Honor symbol_conf.allow_aliases when loading kallsyms as well, it was using
> it only when loading vmlinux files (Arnaldo Carvalho de Melo)
>
> - Fixup symbol->end before doing alias pruning when loading symbol tables
> (Arnaldo Carvalho de Melo)
>
> - Fix error handling of lzma kernel module decompression (Shawn Lin)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (8):
> perf annotate: Initialize the priv are in symbol__new()
> perf symbols: Rename ->ignore to ->idle
> perf probe: Do not use map_load filters for function
> perf test vmlinux: Clarify which -v lines are errors or warning
> perf test vmlinux: Avoid printing headers for empty lists
> perf test vmlinux: Tolerate symbol aliases
> perf symbols: Check symbol_conf.allow_aliases for kallsyms loading too
> perf symbols: Fixup symbol sizes before picking best ones
>
> Masami Hiramatsu (5):
> perf probe: Remove unused tracing_dir variable
> perf probe: Show trace event definition
> perf probe: Ignore vmlinux buildid if offline kernel is given
> perf probe: Support probing on offline cross-arch binary
> perf probe: Ignore vmlinux Build-id when offline vmlinux given
>
> Milian Wolff (2):
> perf symbols: Demangle symbols for synthesized @plt entries.
> perf config: Show default report configuration in example and docs
>
> Ravi Bangoria (3):
> perf probe: Add helper function to check if probe with variable
> perf uprobe: Skip prologue if program compiled without optimization
> perf probe: Move dwarf specific functions to dwarf-aux.c
>
> Shawn Lin (1):
> perf tools: Fix error handling of lzma decompression
>
> tools/perf/Documentation/perf-config.txt | 8 +
> tools/perf/Documentation/perf-probe.txt | 9 ++
> tools/perf/Documentation/perfconfig.example | 9 ++
> tools/perf/arch/arm/include/dwarf-regs-table.h | 9 ++
> tools/perf/arch/arm64/include/dwarf-regs-table.h | 13 ++
> tools/perf/arch/powerpc/include/dwarf-regs-table.h | 27 ++++
> tools/perf/arch/s390/include/dwarf-regs-table.h | 8 +
> tools/perf/arch/sh/include/dwarf-regs-table.h | 25 +++
> tools/perf/arch/sparc/include/dwarf-regs-table.h | 18 +++
> tools/perf/arch/x86/include/dwarf-regs-table.h | 14 ++
> tools/perf/arch/xtensa/include/dwarf-regs-table.h | 8 +
> tools/perf/builtin-annotate.c | 7 +-
> tools/perf/builtin-probe.c | 35 +++-
> tools/perf/builtin-report.c | 6 +-
> tools/perf/builtin-top.c | 8 +-
> tools/perf/tests/vmlinux-kallsyms.c | 44 +++--
> tools/perf/util/Build | 1 +
> tools/perf/util/annotate.c | 7 -
> tools/perf/util/annotate.h | 1 -
> tools/perf/util/dwarf-aux.c | 179 +++++++++++++++++++++
> tools/perf/util/dwarf-aux.h | 8 +
> tools/perf/util/dwarf-regs.c | 59 +++++++
> tools/perf/util/evsel_fprintf.c | 4 +-
> tools/perf/util/include/dwarf-regs.h | 6 +
> tools/perf/util/lzma.c | 15 +-
> tools/perf/util/probe-event.c | 101 +++++++++---
> tools/perf/util/probe-event.h | 3 +
> tools/perf/util/probe-file.c | 5 +-
> tools/perf/util/probe-finder.c | 60 +++++--
> tools/perf/util/probe-finder.h | 1 +
> tools/perf/util/symbol-elf.c | 86 ++++++----
> tools/perf/util/symbol.c | 30 +++-
> tools/perf/util/symbol.h | 5 +-
> 33 files changed, 698 insertions(+), 121 deletions(-)
> create mode 100644 tools/perf/arch/arm/include/dwarf-regs-table.h
> create mode 100644 tools/perf/arch/arm64/include/dwarf-regs-table.h
> create mode 100644 tools/perf/arch/powerpc/include/dwarf-regs-table.h
> create mode 100644 tools/perf/arch/s390/include/dwarf-regs-table.h
> create mode 100644 tools/perf/arch/sh/include/dwarf-regs-table.h
> create mode 100644 tools/perf/arch/sparc/include/dwarf-regs-table.h
> create mode 100644 tools/perf/arch/x86/include/dwarf-regs-table.h
> create mode 100644 tools/perf/arch/xtensa/include/dwarf-regs-table.h
> create mode 100644 tools/perf/util/dwarf-regs.c
>
> Build stats:
>
> 1 alpine:3.4: Ok
> 2 android-ndk:r12b-arm: Ok
> 3 archlinux:latest: Ok
> 4 centos:5: Ok
> 5 centos:6: Ok
> 6 centos:7: Ok
> 7 debian:7: Ok
> 8 debian:8: Ok
> 9 fedora:20: Ok
> 10 fedora:21: Ok
> 11 fedora:22: Ok
> 12 fedora:23: Ok
> 13 fedora:24: Ok
> 14 fedora:24-x-ARC-uClibc: Ok
> 15 fedora:rawhide: Ok
> 16 mageia:5: Ok
> 17 opensuse:13.2: Ok
> 18 opensuse:42.1: Ok
> 19 opensuse:tumbleweed: Ok
> 20 ubuntu:12.04.5: Ok
> 21 ubuntu:14.04.4: Ok
> 22 ubuntu:15.10: Ok
> 23 ubuntu:16.04: Ok
> 24 ubuntu:16.04-x-arm: Ok
> 25 ubuntu:16.04-x-arm64: Ok
> 26 ubuntu:16.04-x-powerpc64: Ok
> 27 ubuntu:16.04-x-powerpc64el: Ok
> 28 ubuntu:16.10: Ok
> 29 ubuntu:16.10-x-s390: Ok
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2016-12-01 18:02 Arnaldo Carvalho de Melo
2016-12-02 9:10 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-12-01 18:02 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Adrian Hunter,
Alexander Shishkin, Alexei Starovoitov, Chris Ryder, David Ahern,
He Kuang, Jiri Olsa, Joe Stringer, Kim Phillips, Mark Rutland,
Namhyung Kim, Pawel Moll, Peter Zijlstra, Wang Nan, Will Deacon,
Zefan Li, pi3orama, Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 2471cece40d61b0035360338569d338f9dea6099:
Merge tag 'perf-core-for-mingo-20161125' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-11-25 18:12:41 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20161201
for you to fetch changes up to 0fcb1da4aba6e6c7b32de5e0948b740b31ad822d:
perf annotate: AArch64 support (2016-12-01 13:03:19 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
New features:
- Support AArch64 in the 'annotate' code, native/local and
cross-arch/remote (Kim Phillips)
- Allow considering just events in a given time interval, via the
'--time start.s.ms,end.s.ms' command line, added to 'perf kmem',
'perf report', 'perf sched timehist' and 'perf script' (David Ahern)
- Add option to stop printing a callchain at one of a given group of
symbol names (David Ahern)
- Handle cpu migration events in 'perf sched timehist' (David Ahern)
- Track memory freed in 'perf kmem stat' (David Ahern)
Infrastructure:
- Initial support (and perf test entry) for tooling hooks, starting with
'record_start' and 'record_end', that will have as its initial user the
eBPF infrastructure, where perf_ prefixed functions will be JITed and
run when such hooks are called (Wang Nan)
- Remove redundant "test" and similar strings from 'perf test' descriptions
(Arnaldo Carvalho de Melo)
- libbpf assorted improvements (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (3):
perf ui helpline: Provide a printf variant
perf annotate: Show invalid jump offset in error message
perf test: Remove "test" and similar strings from test descriptions
David Ahern (10):
perf sched timehist: Handle cpu migration events
perf trace: Update tid/pid filtering option to leverage symbol_conf
perf kmem stat: Track memory freed
perf script: Add option to stop printing callchain
perf tools: Add time-based utility functions
perf tools: Move parse_nsec_time to time-utils.c
perf script: Add option to specify time window of interest
perf sched timehist: Add option to specify time window of interest
perf kmem: Add option to specify time window of interest
perf report: Add option to specify time window of interest
Kim Phillips (2):
perf annotate: Use arch->objdump.comment_char in dec__parse()
perf annotate: AArch64 support
Wang Nan (4):
tools lib bpf: Add missing BPF functions
tools lib bpf: Add private field for bpf_object
tools lib bpf: Retrive bpf_map through offset of bpf_map_def
perf tools: Introduce perf hooks
tools/lib/bpf/bpf.c | 56 ++++++++++
tools/lib/bpf/bpf.h | 7 ++
tools/lib/bpf/libbpf.c | 35 ++++++
tools/lib/bpf/libbpf.h | 13 +++
tools/perf/Documentation/perf-kmem.txt | 7 ++
tools/perf/Documentation/perf-report.txt | 7 ++
tools/perf/Documentation/perf-sched.txt | 12 +++
tools/perf/Documentation/perf-script.txt | 10 ++
tools/perf/arch/arm64/annotate/instructions.c | 62 +++++++++++
tools/perf/arch/x86/tests/arch-tests.c | 10 +-
tools/perf/builtin-kmem.c | 36 ++++++-
tools/perf/builtin-record.c | 11 ++
tools/perf/builtin-report.c | 14 ++-
tools/perf/builtin-sched.c | 148 ++++++++++++++++++++++++--
tools/perf/builtin-script.c | 17 ++-
tools/perf/builtin-trace.c | 49 ++-------
tools/perf/tests/Build | 1 +
tools/perf/tests/bpf.c | 6 +-
tools/perf/tests/builtin-test.c | 96 +++++++++--------
tools/perf/tests/llvm.c | 8 +-
tools/perf/tests/perf-hooks.c | 44 ++++++++
tools/perf/tests/tests.h | 1 +
tools/perf/ui/browsers/annotate.c | 6 +-
tools/perf/ui/helpline.c | 10 ++
tools/perf/ui/helpline.h | 1 +
tools/perf/util/Build | 3 +
tools/perf/util/annotate.c | 7 +-
tools/perf/util/evsel_fprintf.c | 8 ++
tools/perf/util/perf-hooks-list.h | 3 +
tools/perf/util/perf-hooks.c | 84 +++++++++++++++
tools/perf/util/perf-hooks.h | 37 +++++++
tools/perf/util/symbol.c | 8 ++
tools/perf/util/symbol.h | 6 +-
tools/perf/util/time-utils.c | 119 +++++++++++++++++++++
tools/perf/util/time-utils.h | 14 +++
tools/perf/util/util.c | 33 ------
tools/perf/util/util.h | 2 -
37 files changed, 842 insertions(+), 149 deletions(-)
create mode 100644 tools/perf/arch/arm64/annotate/instructions.c
create mode 100644 tools/perf/tests/perf-hooks.c
create mode 100644 tools/perf/util/perf-hooks-list.h
create mode 100644 tools/perf/util/perf-hooks.c
create mode 100644 tools/perf/util/perf-hooks.h
create mode 100644 tools/perf/util/time-utils.c
create mode 100644 tools/perf/util/time-utils.h
# uname -a
Linux jouet 4.8.8-300.fc25.x86_64 #1 SMP Tue Nov 15 18:10:06 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Parse event definition strings : Ok
6: PERF_RECORD_* events & perf_sample fields : Ok
7: Parse perf pmu format : Ok
8: DSO data read : Ok
9: DSO data cache : Ok
10: DSO data reopen : Ok
11: Roundtrip evsel->name : Ok
12: Parse sched tracepoints fields : Ok
13: syscalls:sys_enter_openat event fields : Ok
14: Setup struct perf_event_attr : Ok
15: Match and link multiple hists : Ok
16: 'import perf' in python : Ok
17: Breakpoint overflow signal handler : Ok
18: Breakpoint overflow sampling : Ok
19: Number of exit events of a simple workload : Ok
20: Software clock events period values : Ok
21: Object code reading : Ok
22: Sample parsing : Ok
23: Use a dummy software event to keep tracking: Ok
24: Parse with no sample_id_all bit set : Ok
25: Filter hist entries : Ok
26: Lookup mmap thread : Ok
27: Share thread mg : Ok
28: Sort output of hist entries : Ok
29: Cumulate child hist entries : Ok
30: Track with sched_switch : Ok
31: Filter fds with revents mask in a fdarray : Ok
32: Add fd to a fdarray, making it autogrow : Ok
33: kmod_path__parse : Ok
34: Thread map : Ok
35: LLVM search and compile :
35.1: Basic BPF llvm compile : Ok
35.2: kbuild searching : Ok
35.3: Compile source for BPF prologue generation: Ok
35.4: Compile source for BPF relocation : Ok
36: Session topology : Ok
37: BPF filter :
37.1: Basic BPF filtering : Ok
37.2: BPF prologue generation : Ok
37.3: BPF relocation checker : Ok
38: Synthesize thread map : Ok
39: Synthesize cpu map : Ok
40: Synthesize stat config : Ok
41: Synthesize stat : Ok
42: Synthesize stat round : Ok
43: Synthesize attr update : Ok
44: Event times : Ok
45: Read backward ring buffer : Ok
46: Print cpu map : Ok
47: Probe SDT events : Ok
48: is_printable_array : Ok
49: Print bitmap : Ok
50: perf hooks : Ok
51: x86 rdpmc : Ok
52: Convert perf time to TSC : Ok
53: DWARF unwind : Ok
54: x86 instruction decoder - new instructions : Ok
55: Intel cqm nmi context read : Skip
#
# uname -a
Linux zoo 4.7.3-200.fc24.x86_64 #1 SMP Wed Sep 7 17:31:21 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# dm
1 alpine:3.4: Ok
2 android-ndk:r12b-arm: Ok
3 archlinux:latest: Ok
4 centos:5: Ok
5 centos:6: Ok
6 centos:7: Ok
7 debian:7: Ok
8 debian:8: Ok
9 debian:experimental: Ok
10 fedora:20: Ok
11 fedora:21: Ok
12 fedora:22: Ok
13 fedora:23: Ok
14 fedora:24: Ok
15 fedora:24-x-ARC-uClibc: Ok
16 fedora:rawhide: Ok
17 mageia:5: Ok
18 opensuse:13.2: Ok
19 opensuse:42.1: Ok
20 opensuse:tumbleweed: Ok
21 ubuntu:12.04.5: Ok
22 ubuntu:14.04: Ok
23 ubuntu:14.04.4: Ok
24 ubuntu:15.10: Ok
25 ubuntu:16.04: Ok
26 ubuntu:16.04-x-arm: Ok
27 ubuntu:16.04-x-arm64: Ok
28 ubuntu:16.04-x-powerpc: Ok
29 ubuntu:16.04-x-powerpc64: Ok
30 ubuntu:16.04-x-powerpc64el: Ok
31 ubuntu:16.04-x-s390: Ok
32 ubuntu:16.10: Ok
#
$ grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Fedora 25 (Workstation Edition)"
$
$ perf stat make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_slang_O: make NO_SLANG=1
make_util_map_o_O: make util/map.o
make_static_O: make LDFLAGS=-static
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_perf_o_O: make perf.o
make_no_libunwind_O: make NO_LIBUNWIND=1
make_no_libelf_O: make NO_LIBELF=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libperl_O: make NO_LIBPERL=1
make_tags_O: make tags
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_auxtrace_O: make NO_AUXTRACE=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_install_bin_O: make install-bin
make_no_newt_O: make NO_NEWT=1
make_pure_O: make
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_clean_all_O: make clean all
make_no_gtk2_O: make NO_GTK2=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_install_prefix_O: make install prefix=/tmp/krava
make_no_libbpf_O: make NO_LIBBPF=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_help_O: make help
make_doc_O: make doc
make_debug_O: make DEBUG=1
make_install_O: make install
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2016-12-01 18:02 Arnaldo Carvalho de Melo
@ 2016-12-02 9:10 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2016-12-02 9:10 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Adrian Hunter, Alexander Shishkin,
Alexei Starovoitov, Chris Ryder, David Ahern, He Kuang, Jiri Olsa,
Joe Stringer, Kim Phillips, Mark Rutland, Namhyung Kim,
Pawel Moll, Peter Zijlstra, Wang Nan, Will Deacon, Zefan Li,
pi3orama, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 2471cece40d61b0035360338569d338f9dea6099:
>
> Merge tag 'perf-core-for-mingo-20161125' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2016-11-25 18:12:41 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-20161201
>
> for you to fetch changes up to 0fcb1da4aba6e6c7b32de5e0948b740b31ad822d:
>
> perf annotate: AArch64 support (2016-12-01 13:03:19 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> New features:
>
> - Support AArch64 in the 'annotate' code, native/local and
> cross-arch/remote (Kim Phillips)
>
> - Allow considering just events in a given time interval, via the
> '--time start.s.ms,end.s.ms' command line, added to 'perf kmem',
> 'perf report', 'perf sched timehist' and 'perf script' (David Ahern)
>
> - Add option to stop printing a callchain at one of a given group of
> symbol names (David Ahern)
>
> - Handle cpu migration events in 'perf sched timehist' (David Ahern)
>
> - Track memory freed in 'perf kmem stat' (David Ahern)
>
> Infrastructure:
>
> - Initial support (and perf test entry) for tooling hooks, starting with
> 'record_start' and 'record_end', that will have as its initial user the
> eBPF infrastructure, where perf_ prefixed functions will be JITed and
> run when such hooks are called (Wang Nan)
>
> - Remove redundant "test" and similar strings from 'perf test' descriptions
> (Arnaldo Carvalho de Melo)
>
> - libbpf assorted improvements (Wang Nan)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (3):
> perf ui helpline: Provide a printf variant
> perf annotate: Show invalid jump offset in error message
> perf test: Remove "test" and similar strings from test descriptions
>
> David Ahern (10):
> perf sched timehist: Handle cpu migration events
> perf trace: Update tid/pid filtering option to leverage symbol_conf
> perf kmem stat: Track memory freed
> perf script: Add option to stop printing callchain
> perf tools: Add time-based utility functions
> perf tools: Move parse_nsec_time to time-utils.c
> perf script: Add option to specify time window of interest
> perf sched timehist: Add option to specify time window of interest
> perf kmem: Add option to specify time window of interest
> perf report: Add option to specify time window of interest
>
> Kim Phillips (2):
> perf annotate: Use arch->objdump.comment_char in dec__parse()
> perf annotate: AArch64 support
>
> Wang Nan (4):
> tools lib bpf: Add missing BPF functions
> tools lib bpf: Add private field for bpf_object
> tools lib bpf: Retrive bpf_map through offset of bpf_map_def
> perf tools: Introduce perf hooks
>
> tools/lib/bpf/bpf.c | 56 ++++++++++
> tools/lib/bpf/bpf.h | 7 ++
> tools/lib/bpf/libbpf.c | 35 ++++++
> tools/lib/bpf/libbpf.h | 13 +++
> tools/perf/Documentation/perf-kmem.txt | 7 ++
> tools/perf/Documentation/perf-report.txt | 7 ++
> tools/perf/Documentation/perf-sched.txt | 12 +++
> tools/perf/Documentation/perf-script.txt | 10 ++
> tools/perf/arch/arm64/annotate/instructions.c | 62 +++++++++++
> tools/perf/arch/x86/tests/arch-tests.c | 10 +-
> tools/perf/builtin-kmem.c | 36 ++++++-
> tools/perf/builtin-record.c | 11 ++
> tools/perf/builtin-report.c | 14 ++-
> tools/perf/builtin-sched.c | 148 ++++++++++++++++++++++++--
> tools/perf/builtin-script.c | 17 ++-
> tools/perf/builtin-trace.c | 49 ++-------
> tools/perf/tests/Build | 1 +
> tools/perf/tests/bpf.c | 6 +-
> tools/perf/tests/builtin-test.c | 96 +++++++++--------
> tools/perf/tests/llvm.c | 8 +-
> tools/perf/tests/perf-hooks.c | 44 ++++++++
> tools/perf/tests/tests.h | 1 +
> tools/perf/ui/browsers/annotate.c | 6 +-
> tools/perf/ui/helpline.c | 10 ++
> tools/perf/ui/helpline.h | 1 +
> tools/perf/util/Build | 3 +
> tools/perf/util/annotate.c | 7 +-
> tools/perf/util/evsel_fprintf.c | 8 ++
> tools/perf/util/perf-hooks-list.h | 3 +
> tools/perf/util/perf-hooks.c | 84 +++++++++++++++
> tools/perf/util/perf-hooks.h | 37 +++++++
> tools/perf/util/symbol.c | 8 ++
> tools/perf/util/symbol.h | 6 +-
> tools/perf/util/time-utils.c | 119 +++++++++++++++++++++
> tools/perf/util/time-utils.h | 14 +++
> tools/perf/util/util.c | 33 ------
> tools/perf/util/util.h | 2 -
> 37 files changed, 842 insertions(+), 149 deletions(-)
> create mode 100644 tools/perf/arch/arm64/annotate/instructions.c
> create mode 100644 tools/perf/tests/perf-hooks.c
> create mode 100644 tools/perf/util/perf-hooks-list.h
> create mode 100644 tools/perf/util/perf-hooks.c
> create mode 100644 tools/perf/util/perf-hooks.h
> create mode 100644 tools/perf/util/time-utils.c
> create mode 100644 tools/perf/util/time-utils.h
>
> # uname -a
> Linux jouet 4.8.8-300.fc25.x86_64 #1 SMP Tue Nov 15 18:10:06 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
> # perf test
> 1: vmlinux symtab matches kallsyms : Ok
> 2: Detect openat syscall event : Ok
> 3: Detect openat syscall event on all cpus : Ok
> 4: Read samples using the mmap interface : Ok
> 5: Parse event definition strings : Ok
> 6: PERF_RECORD_* events & perf_sample fields : Ok
> 7: Parse perf pmu format : Ok
> 8: DSO data read : Ok
> 9: DSO data cache : Ok
> 10: DSO data reopen : Ok
> 11: Roundtrip evsel->name : Ok
> 12: Parse sched tracepoints fields : Ok
> 13: syscalls:sys_enter_openat event fields : Ok
> 14: Setup struct perf_event_attr : Ok
> 15: Match and link multiple hists : Ok
> 16: 'import perf' in python : Ok
> 17: Breakpoint overflow signal handler : Ok
> 18: Breakpoint overflow sampling : Ok
> 19: Number of exit events of a simple workload : Ok
> 20: Software clock events period values : Ok
> 21: Object code reading : Ok
> 22: Sample parsing : Ok
> 23: Use a dummy software event to keep tracking: Ok
> 24: Parse with no sample_id_all bit set : Ok
> 25: Filter hist entries : Ok
> 26: Lookup mmap thread : Ok
> 27: Share thread mg : Ok
> 28: Sort output of hist entries : Ok
> 29: Cumulate child hist entries : Ok
> 30: Track with sched_switch : Ok
> 31: Filter fds with revents mask in a fdarray : Ok
> 32: Add fd to a fdarray, making it autogrow : Ok
> 33: kmod_path__parse : Ok
> 34: Thread map : Ok
> 35: LLVM search and compile :
> 35.1: Basic BPF llvm compile : Ok
> 35.2: kbuild searching : Ok
> 35.3: Compile source for BPF prologue generation: Ok
> 35.4: Compile source for BPF relocation : Ok
> 36: Session topology : Ok
> 37: BPF filter :
> 37.1: Basic BPF filtering : Ok
> 37.2: BPF prologue generation : Ok
> 37.3: BPF relocation checker : Ok
> 38: Synthesize thread map : Ok
> 39: Synthesize cpu map : Ok
> 40: Synthesize stat config : Ok
> 41: Synthesize stat : Ok
> 42: Synthesize stat round : Ok
> 43: Synthesize attr update : Ok
> 44: Event times : Ok
> 45: Read backward ring buffer : Ok
> 46: Print cpu map : Ok
> 47: Probe SDT events : Ok
> 48: is_printable_array : Ok
> 49: Print bitmap : Ok
> 50: perf hooks : Ok
> 51: x86 rdpmc : Ok
> 52: Convert perf time to TSC : Ok
> 53: DWARF unwind : Ok
> 54: x86 instruction decoder - new instructions : Ok
> 55: Intel cqm nmi context read : Skip
> #
> # uname -a
> Linux zoo 4.7.3-200.fc24.x86_64 #1 SMP Wed Sep 7 17:31:21 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
> # dm
> 1 alpine:3.4: Ok
> 2 android-ndk:r12b-arm: Ok
> 3 archlinux:latest: Ok
> 4 centos:5: Ok
> 5 centos:6: Ok
> 6 centos:7: Ok
> 7 debian:7: Ok
> 8 debian:8: Ok
> 9 debian:experimental: Ok
> 10 fedora:20: Ok
> 11 fedora:21: Ok
> 12 fedora:22: Ok
> 13 fedora:23: Ok
> 14 fedora:24: Ok
> 15 fedora:24-x-ARC-uClibc: Ok
> 16 fedora:rawhide: Ok
> 17 mageia:5: Ok
> 18 opensuse:13.2: Ok
> 19 opensuse:42.1: Ok
> 20 opensuse:tumbleweed: Ok
> 21 ubuntu:12.04.5: Ok
> 22 ubuntu:14.04: Ok
> 23 ubuntu:14.04.4: Ok
> 24 ubuntu:15.10: Ok
> 25 ubuntu:16.04: Ok
> 26 ubuntu:16.04-x-arm: Ok
> 27 ubuntu:16.04-x-arm64: Ok
> 28 ubuntu:16.04-x-powerpc: Ok
> 29 ubuntu:16.04-x-powerpc64: Ok
> 30 ubuntu:16.04-x-powerpc64el: Ok
> 31 ubuntu:16.04-x-s390: Ok
> 32 ubuntu:16.10: Ok
> #
> $ grep PRETTY_NAME /etc/os-release
> PRETTY_NAME="Fedora 25 (Workstation Edition)"
> $
> $ perf stat make -C tools/perf build-test
> make: Entering directory '/home/acme/git/linux/tools/perf'
> - tarpkg: ./tests/perf-targz-src-pkg .
> make_no_slang_O: make NO_SLANG=1
> make_util_map_o_O: make util/map.o
> make_static_O: make LDFLAGS=-static
> make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
> make_perf_o_O: make perf.o
> make_no_libunwind_O: make NO_LIBUNWIND=1
> make_no_libelf_O: make NO_LIBELF=1
> make_util_pmu_bison_o_O: make util/pmu-bison.o
> make_no_backtrace_O: make NO_BACKTRACE=1
> make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
> make_no_demangle_O: make NO_DEMANGLE=1
> make_no_libperl_O: make NO_LIBPERL=1
> make_tags_O: make tags
> make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
> make_install_prefix_slash_O: make install prefix=/tmp/krava/
> make_no_auxtrace_O: make NO_AUXTRACE=1
> make_no_libnuma_O: make NO_LIBNUMA=1
> make_install_bin_O: make install-bin
> make_no_newt_O: make NO_NEWT=1
> make_pure_O: make
> make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
> make_clean_all_O: make clean all
> make_no_gtk2_O: make NO_GTK2=1
> make_no_libbionic_O: make NO_LIBBIONIC=1
> make_install_prefix_O: make install prefix=/tmp/krava
> make_no_libbpf_O: make NO_LIBBPF=1
> make_no_libaudit_O: make NO_LIBAUDIT=1
> make_with_babeltrace_O: make LIBBABELTRACE=1
> make_no_libpython_O: make NO_LIBPYTHON=1
> make_help_O: make help
> make_doc_O: make doc
> make_debug_O: make DEBUG=1
> make_install_O: make install
> OK
> make: Leaving directory '/home/acme/git/linux/tools/perf'
> $
>
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2017-03-14 18:50 Arnaldo Carvalho de Melo
2017-03-15 18:29 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-03-14 18:50 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Alexander Shishkin,
Alexei Starovoitov, Ananth N Mavinakayanahalli, Andi Kleen,
Aravinda Prasad, Brendan Gregg, Changbin Du, Daniel Borkmann,
Eric Biederman, Feng Tang, Hari Bathini, Jiri Olsa, kernel-team,
linuxppc-dev, Masami Hiramatsu, Michael Ellerman, Namhyung Kim,
Naveen N . Rao, Peter Zijlstra, Sargun Dhillon, Steven Rostedt,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 84e5b549214f2160c12318aac549de85f600c79a:
Merge tag 'perf-core-for-mingo-4.11-20170306' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-07 08:14:14 +0100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170314
for you to fetch changes up to 5f6bee34707973ea7879a7857fd63ddccc92fff3:
kprobes: Convert kprobe_exceptions_notify to use NOKPROBE_SYMBOL (2017-03-14 15:17:40 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
New features:
- Add PERF_RECORD_NAMESPACES so that the kernel can record information
required to associate samples to namespaces, helping in container
problem characterization.
Now the 'perf record has a --namespace' option to ask for such info,
and when present, it can be used, initially, via a new sort order,
'cgroup_id', allowing histogram entry bucketization by a (device, inode)
based cgroup identifier (Hari Bathini)
- Add --next option to 'perf sched timehist', showing what is the next
thread to run (Brendan Gregg)
Fixes:
- Fix segfault with basic block 'cycles' sort dimension (Changbin Du)
- Add c2c to command-list.txt, making it appear in the 'perf help'
output (Changbin Du)
- Fix zeroing of 'abs_path' variable in the perf hists browser switch
file code (Changbin Du)
- Hide tips messages when -q/--quiet is given to 'perf report' (Namhyung Kim)
Infrastructure:
- Use ref_reloc_sym + offset to setup kretprobes (Naveen Rao)
- Ignore generated files pmu-events/{jevents,pmu-events.c} for git (Changbin Du)
Documentation:
- Document +field style argument support for --field option (Changbin Du)
- Clarify 'perf c2c --stats' help message (Namhyung Kim)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Brendan Gregg (1):
perf sched timehist: Add --next option
Changbin Du (5):
perf tools: Missing c2c command in command-list
perf tools: Ignore generated files pmu-events/{jevents,pmu-events.c} for git
perf sort: Fix segfault with basic block 'cycles' sort dimension
perf report: Document +field style argument support for --field option
perf hists browser: Fix typo in function switch_data_file
Hari Bathini (5):
perf: Add PERF_RECORD_NAMESPACES to include namespaces related info
perf tools: Add PERF_RECORD_NAMESPACES to include namespaces related info
perf record: Synthesize namespace events for current processes
perf script: Add script print support for namespace events
perf tools: Add 'cgroup_id' sort order keyword
Namhyung Kim (3):
perf report: Hide tip message when -q option is given
perf c2c: Clarify help message of --stats option
perf c2c: Fix display bug when using pipe
Naveen N. Rao (5):
perf probe: Factor out the ftrace README scanning
perf kretprobes: Offset from reloc_sym if kernel supports it
perf powerpc: Choose local entry point with kretprobes
doc: trace/kprobes: add information about NOKPROBE_SYMBOL
kprobes: Convert kprobe_exceptions_notify to use NOKPROBE_SYMBOL
Documentation/trace/kprobetrace.txt | 5 +-
include/linux/perf_event.h | 2 +
include/uapi/linux/perf_event.h | 32 +++++-
kernel/events/core.c | 139 ++++++++++++++++++++++++++
kernel/fork.c | 2 +
kernel/kprobes.c | 5 +-
kernel/nsproxy.c | 3 +
tools/include/uapi/linux/perf_event.h | 32 +++++-
tools/perf/.gitignore | 2 +
tools/perf/Documentation/perf-record.txt | 3 +
tools/perf/Documentation/perf-report.txt | 7 +-
tools/perf/Documentation/perf-sched.txt | 4 +
tools/perf/Documentation/perf-script.txt | 3 +
tools/perf/arch/powerpc/util/sym-handling.c | 14 ++-
tools/perf/builtin-annotate.c | 1 +
tools/perf/builtin-c2c.c | 4 +-
tools/perf/builtin-diff.c | 1 +
tools/perf/builtin-inject.c | 13 +++
tools/perf/builtin-kmem.c | 1 +
tools/perf/builtin-kvm.c | 2 +
tools/perf/builtin-lock.c | 1 +
tools/perf/builtin-mem.c | 1 +
tools/perf/builtin-record.c | 35 ++++++-
tools/perf/builtin-report.c | 4 +-
tools/perf/builtin-sched.c | 26 ++++-
tools/perf/builtin-script.c | 41 ++++++++
tools/perf/builtin-trace.c | 3 +-
tools/perf/command-list.txt | 1 +
tools/perf/perf.h | 1 +
tools/perf/ui/browsers/hists.c | 2 +-
tools/perf/util/Build | 1 +
tools/perf/util/data-convert-bt.c | 1 +
tools/perf/util/event.c | 150 ++++++++++++++++++++++++++--
tools/perf/util/event.h | 19 ++++
tools/perf/util/evsel.c | 3 +
tools/perf/util/hist.c | 7 ++
tools/perf/util/hist.h | 1 +
tools/perf/util/machine.c | 34 +++++++
tools/perf/util/machine.h | 3 +
tools/perf/util/namespaces.c | 36 +++++++
tools/perf/util/namespaces.h | 26 +++++
tools/perf/util/probe-event.c | 12 +--
tools/perf/util/probe-file.c | 77 ++++++++------
tools/perf/util/probe-file.h | 1 +
tools/perf/util/session.c | 7 ++
tools/perf/util/sort.c | 46 +++++++++
tools/perf/util/sort.h | 7 ++
tools/perf/util/thread.c | 44 +++++++-
tools/perf/util/thread.h | 6 ++
tools/perf/util/tool.h | 2 +
50 files changed, 799 insertions(+), 74 deletions(-)
create mode 100644 tools/perf/util/namespaces.c
create mode 100644 tools/perf/util/namespaces.h
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support, objtool where it is supported and samples/bpf/, ditto.
Where clang is available, it is also used to build perf with/without libelf.
Several are cross builds, the ones with -x-ARCH, and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# dm
1 alpine:3.4: Ok
2 alpine:3.5: Ok
3 alpine:edge: Ok
4 android-ndk:r12b-arm: Ok
5 archlinux:latest: Ok
6 centos:5: Ok
7 centos:6: Ok
8 centos:7: Ok
9 debian:7: Ok
10 debian:8: Ok
11 debian:experimental: Ok
12 debian:experimental-x-arm64: Ok
13 debian:experimental-x-mips: Ok
14 debian:experimental-x-mips64: Ok
15 debian:experimental-x-mipsel: Ok
16 fedora:20: Ok
17 fedora:21: Ok
18 fedora:22: Ok
19 fedora:23: Ok
20 fedora:24: Ok
21 fedora:24-x-ARC-uClibc: Ok
22 fedora:25: Ok
23 fedora:rawhide: Ok
24 mageia:5: Ok
25 opensuse:13.2: Ok
26 opensuse:42.1: Ok
27 opensuse:tumbleweed: Ok
28 ubuntu:12.04.5: Ok
29 ubuntu:14.04.4: Ok
30 ubuntu:14.04.4-x-linaro-arm64: Ok
31 ubuntu:15.10: Ok
32 ubuntu:16.04: Ok
33 ubuntu:16.04-x-arm: Ok
34 ubuntu:16.04-x-arm64: Ok
35 ubuntu:16.04-x-powerpc: Ok
36 ubuntu:16.04-x-powerpc64: Ok
37 ubuntu:16.04-x-s390: Ok
38 ubuntu:16.10: Ok
39 ubuntu:17.04: Ok
#
# uname -a
Linux zoo 4.9.13-100.fc24.x86_64 #1 SMP Mon Feb 27 16:57:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Parse event definition strings : Ok
6: PERF_RECORD_* events & perf_sample fields : Ok
7: Parse perf pmu format : Ok
8: DSO data read : Ok
9: DSO data cache : Ok
10: DSO data reopen : Ok
11: Roundtrip evsel->name : Ok
12: Parse sched tracepoints fields : Ok
13: syscalls:sys_enter_openat event fields : Ok
14: Setup struct perf_event_attr : Ok
15: Match and link multiple hists : Ok
16: 'import perf' in python : Ok
17: Breakpoint overflow signal handler : Ok
18: Breakpoint overflow sampling : Ok
19: Number of exit events of a simple workload : Ok
20: Software clock events period values : Ok
21: Object code reading : Ok
22: Sample parsing : Ok
23: Use a dummy software event to keep tracking: Ok
24: Parse with no sample_id_all bit set : Ok
25: Filter hist entries : Ok
26: Lookup mmap thread : Ok
27: Share thread mg : Ok
28: Sort output of hist entries : Ok
29: Cumulate child hist entries : Ok
30: Track with sched_switch : Ok
31: Filter fds with revents mask in a fdarray : Ok
32: Add fd to a fdarray, making it autogrow : Ok
33: kmod_path__parse : Ok
34: Thread map : Ok
35: LLVM search and compile :
35.1: Basic BPF llvm compile : Ok
35.2: kbuild searching : Ok
35.3: Compile source for BPF prologue generation: Ok
35.4: Compile source for BPF relocation : Ok
36: Session topology : Ok
37: BPF filter :
37.1: Basic BPF filtering : Ok
37.2: BPF pinning : Ok
37.3: BPF prologue generation : Ok
37.4: BPF relocation checker : Ok
38: Synthesize thread map : Ok
39: Remove thread map : Ok
40: Synthesize cpu map : Ok
41: Synthesize stat config : Ok
42: Synthesize stat : Ok
43: Synthesize stat round : Ok
44: Synthesize attr update : Ok
45: Event times : Ok
46: Read backward ring buffer : Ok
47: Print cpu map : Ok
48: Probe SDT events : Ok
49: is_printable_array : Ok
50: Print bitmap : Ok
51: perf hooks : Ok
52: builtin clang support : Skip (not compiled in)
53: unit_number__scnprintf : Ok
54: x86 rdpmc : Ok
55: Convert perf time to TSC : Ok
56: DWARF unwind : Ok
57: x86 instruction decoder - new instructions : Ok
58: Intel cqm nmi context read : Skip
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_debug_O: make DEBUG=1
make_no_libelf_O: make NO_LIBELF=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_pure_O: make
make_no_libbpf_O: make NO_LIBBPF=1
make_tags_O: make tags
make_with_babeltrace_O: make LIBBABELTRACE=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_perf_o_O: make perf.o
make_no_demangle_O: make NO_DEMANGLE=1
make_clean_all_O: make clean all
make_no_slang_O: make NO_SLANG=1
make_doc_O: make doc
make_no_newt_O: make NO_NEWT=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_install_bin_O: make install-bin
make_no_gtk2_O: make NO_GTK2=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_util_map_o_O: make util/map.o
make_no_libperl_O: make NO_LIBPERL=1
make_static_O: make LDFLAGS=-static
make_no_libunwind_O: make NO_LIBUNWIND=1
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_help_O: make help
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
OK
$
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2017-03-14 18:50 Arnaldo Carvalho de Melo
@ 2017-03-15 18:29 ` Ingo Molnar
0 siblings, 0 replies; 58+ messages in thread
From: Ingo Molnar @ 2017-03-15 18:29 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Alexander Shishkin, Alexei Starovoitov,
Ananth N Mavinakayanahalli, Andi Kleen, Aravinda Prasad,
Brendan Gregg, Changbin Du, Daniel Borkmann, Eric Biederman,
Feng Tang, Hari Bathini, Jiri Olsa, kernel-team, linuxppc-dev,
Masami Hiramatsu, Michael Ellerman, Namhyung Kim, Naveen N . Rao,
Peter Zijlstra, Sargun Dhillon, Steven Rostedt,
Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
> The following changes since commit 84e5b549214f2160c12318aac549de85f600c79a:
>
> Merge tag 'perf-core-for-mingo-4.11-20170306' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-03-07 08:14:14 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.12-20170314
>
> for you to fetch changes up to 5f6bee34707973ea7879a7857fd63ddccc92fff3:
>
> kprobes: Convert kprobe_exceptions_notify to use NOKPROBE_SYMBOL (2017-03-14 15:17:40 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> New features:
>
> - Add PERF_RECORD_NAMESPACES so that the kernel can record information
> required to associate samples to namespaces, helping in container
> problem characterization.
>
> Now the 'perf record has a --namespace' option to ask for such info,
> and when present, it can be used, initially, via a new sort order,
> 'cgroup_id', allowing histogram entry bucketization by a (device, inode)
> based cgroup identifier (Hari Bathini)
>
> - Add --next option to 'perf sched timehist', showing what is the next
> thread to run (Brendan Gregg)
>
> Fixes:
>
> - Fix segfault with basic block 'cycles' sort dimension (Changbin Du)
>
> - Add c2c to command-list.txt, making it appear in the 'perf help'
> output (Changbin Du)
>
> - Fix zeroing of 'abs_path' variable in the perf hists browser switch
> file code (Changbin Du)
>
> - Hide tips messages when -q/--quiet is given to 'perf report' (Namhyung Kim)
>
> Infrastructure:
>
> - Use ref_reloc_sym + offset to setup kretprobes (Naveen Rao)
>
> - Ignore generated files pmu-events/{jevents,pmu-events.c} for git (Changbin Du)
>
> Documentation:
>
> - Document +field style argument support for --field option (Changbin Du)
>
> - Clarify 'perf c2c --stats' help message (Namhyung Kim)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Brendan Gregg (1):
> perf sched timehist: Add --next option
>
> Changbin Du (5):
> perf tools: Missing c2c command in command-list
> perf tools: Ignore generated files pmu-events/{jevents,pmu-events.c} for git
> perf sort: Fix segfault with basic block 'cycles' sort dimension
> perf report: Document +field style argument support for --field option
> perf hists browser: Fix typo in function switch_data_file
>
> Hari Bathini (5):
> perf: Add PERF_RECORD_NAMESPACES to include namespaces related info
> perf tools: Add PERF_RECORD_NAMESPACES to include namespaces related info
> perf record: Synthesize namespace events for current processes
> perf script: Add script print support for namespace events
> perf tools: Add 'cgroup_id' sort order keyword
>
> Namhyung Kim (3):
> perf report: Hide tip message when -q option is given
> perf c2c: Clarify help message of --stats option
> perf c2c: Fix display bug when using pipe
>
> Naveen N. Rao (5):
> perf probe: Factor out the ftrace README scanning
> perf kretprobes: Offset from reloc_sym if kernel supports it
> perf powerpc: Choose local entry point with kretprobes
> doc: trace/kprobes: add information about NOKPROBE_SYMBOL
> kprobes: Convert kprobe_exceptions_notify to use NOKPROBE_SYMBOL
>
> Documentation/trace/kprobetrace.txt | 5 +-
> include/linux/perf_event.h | 2 +
> include/uapi/linux/perf_event.h | 32 +++++-
> kernel/events/core.c | 139 ++++++++++++++++++++++++++
> kernel/fork.c | 2 +
> kernel/kprobes.c | 5 +-
> kernel/nsproxy.c | 3 +
> tools/include/uapi/linux/perf_event.h | 32 +++++-
> tools/perf/.gitignore | 2 +
> tools/perf/Documentation/perf-record.txt | 3 +
> tools/perf/Documentation/perf-report.txt | 7 +-
> tools/perf/Documentation/perf-sched.txt | 4 +
> tools/perf/Documentation/perf-script.txt | 3 +
> tools/perf/arch/powerpc/util/sym-handling.c | 14 ++-
> tools/perf/builtin-annotate.c | 1 +
> tools/perf/builtin-c2c.c | 4 +-
> tools/perf/builtin-diff.c | 1 +
> tools/perf/builtin-inject.c | 13 +++
> tools/perf/builtin-kmem.c | 1 +
> tools/perf/builtin-kvm.c | 2 +
> tools/perf/builtin-lock.c | 1 +
> tools/perf/builtin-mem.c | 1 +
> tools/perf/builtin-record.c | 35 ++++++-
> tools/perf/builtin-report.c | 4 +-
> tools/perf/builtin-sched.c | 26 ++++-
> tools/perf/builtin-script.c | 41 ++++++++
> tools/perf/builtin-trace.c | 3 +-
> tools/perf/command-list.txt | 1 +
> tools/perf/perf.h | 1 +
> tools/perf/ui/browsers/hists.c | 2 +-
> tools/perf/util/Build | 1 +
> tools/perf/util/data-convert-bt.c | 1 +
> tools/perf/util/event.c | 150 ++++++++++++++++++++++++++--
> tools/perf/util/event.h | 19 ++++
> tools/perf/util/evsel.c | 3 +
> tools/perf/util/hist.c | 7 ++
> tools/perf/util/hist.h | 1 +
> tools/perf/util/machine.c | 34 +++++++
> tools/perf/util/machine.h | 3 +
> tools/perf/util/namespaces.c | 36 +++++++
> tools/perf/util/namespaces.h | 26 +++++
> tools/perf/util/probe-event.c | 12 +--
> tools/perf/util/probe-file.c | 77 ++++++++------
> tools/perf/util/probe-file.h | 1 +
> tools/perf/util/session.c | 7 ++
> tools/perf/util/sort.c | 46 +++++++++
> tools/perf/util/sort.h | 7 ++
> tools/perf/util/thread.c | 44 +++++++-
> tools/perf/util/thread.h | 6 ++
> tools/perf/util/tool.h | 2 +
> 50 files changed, 799 insertions(+), 74 deletions(-)
> create mode 100644 tools/perf/util/namespaces.c
> create mode 100644 tools/perf/util/namespaces.h
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2017-08-14 16:27 Arnaldo Carvalho de Melo
2017-08-14 17:39 ` Ingo Molnar
0 siblings, 1 reply; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-08-14 16:27 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Andi Kleen, Anton Blanchard, David Ahern,
Hendrik Brueckner, Jiri Olsa, linuxppc-dev, Matt Fleming,
Michael Ellerman, Michael Petlan, Milian Wolff, Namhyung Kim,
Naveen N . Rao, Paul Clarke, Peter Zijlstra, Sukadev Bhattiprolu,
Thomas-Mich Richter, Wang Nan, Yao Jin, Zvonko Kosic,
Arnaldo Carvalho de Melo
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 82119cbe8e1e32cc2a941393e59816e731681310:
Merge tag 'perf-core-for-mingo-4.14-20170801' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-08-10 17:07:02 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.14-20170814
for you to fetch changes up to 8fc375d7d36c72b4c2d55f5c24be022a939295d4:
perf test shell: Add uprobes + backtrace ping test (2017-08-11 16:18:49 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
Infrastructure:
- Do not consider empty files as valid srclines (Milian Wolff)
- Fix wrong size in perf_record_mmap for last kernel module,
which resulted in erroneous symbol resolution in at least s390x (Thomas Richter)
- Add missing newline to expr parser error messages (Andi Kleen)
- Fix saved values rbtree lookup in 'perf stat' (Andi Kleen)
- Add support for shell based tests in 'perf test', add a few that
run 'perf probe', 'perf trace', using kprobes, uprobes to check
the output of those tools and the effects on the system, checking,
for instance, DWARF backtraces from uprobes (Arnaldo Carvalho de Melo)
Arch specific:
- Add ppc64le to audit uname list in the python scripting support (Naveen N. Rao)
- Update POWER9 vendor events tables (Sukadev Bhattiprolu)
- Fix module symbol adjustment for s390x (Thomas Richter)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Andi Kleen (2):
perf stat: Fix saved values rbtree lookup
perf tools: Add missing newline to expr parser error messages
Arnaldo Carvalho de Melo (10):
perf test: Make 'list' subcommand match main 'perf test' numbering/matching
perf test: Add 'struct test *' to the test functions
perf test: Add infrastructure to run shell based tests
perf test: Make 'list' use same filtering code as main 'perf test'
perf test shell: Add 'probe_vfs_getname' shell test
perf test shell: Install shell tests
perf test shell: Move vfs_getname probe function to lib
perf test shell: Add test using probe:vfs_getname and verifying results
perf test shell: Add test using vfs_getname + 'perf trace'
perf test shell: Add uprobes + backtrace ping test
Milian Wolff (2):
perf util: Take elf_name as const string in dso__demangle_sym
perf srcline: Do not consider empty files as valid srclines
Naveen N. Rao (1):
perf scripting python: Add ppc64le to audit uname list
Sukadev Bhattiprolu (2):
perf vendor events powerpc: remove suffix in mapfile
perf vendor events powerpc: Update POWER9 events
Thomas Richter (2):
perf record: Fix wrong size in perf_record_mmap for last kernel module
perf report: Fix module symbol adjustment for s390x
tools/perf/Makefile.perf | 6 +-
tools/perf/arch/s390/util/sym-handling.c | 7 +
tools/perf/arch/x86/include/arch-tests.h | 11 +-
tools/perf/arch/x86/tests/insn-x86.c | 2 +-
tools/perf/arch/x86/tests/intel-cqm.c | 2 +-
tools/perf/arch/x86/tests/perf-time-to-tsc.c | 2 +-
tools/perf/arch/x86/tests/rdpmc.c | 2 +-
tools/perf/pmu-events/arch/powerpc/mapfile.csv | 20 +-
.../perf/pmu-events/arch/powerpc/power9/cache.json | 191 +-
.../arch/powerpc/power9/floating-point.json | 42 +-
.../pmu-events/arch/powerpc/power9/frontend.json | 517 ++--
.../pmu-events/arch/powerpc/power9/marked.json | 905 +++----
.../pmu-events/arch/powerpc/power9/memory.json | 178 +-
.../perf/pmu-events/arch/powerpc/power9/other.json | 2768 ++++++++++++++++----
.../pmu-events/arch/powerpc/power9/pipeline.json | 779 +++---
tools/perf/pmu-events/arch/powerpc/power9/pmc.json | 167 +-
.../arch/powerpc/power9/translation.json | 314 +--
.../python/Perf-Trace-Util/lib/Perf/Trace/Util.py | 1 +
tools/perf/tests/attr.c | 2 +-
tools/perf/tests/backward-ring-buffer.c | 2 +-
tools/perf/tests/bitmap.c | 2 +-
tools/perf/tests/bp_signal.c | 2 +-
tools/perf/tests/bp_signal_overflow.c | 2 +-
tools/perf/tests/bpf.c | 4 +-
tools/perf/tests/builtin-test.c | 184 +-
tools/perf/tests/clang.c | 4 +-
tools/perf/tests/code-reading.c | 2 +-
tools/perf/tests/cpumap.c | 4 +-
tools/perf/tests/dso-data.c | 6 +-
tools/perf/tests/dwarf-unwind.c | 2 +-
tools/perf/tests/event-times.c | 2 +-
tools/perf/tests/event_update.c | 2 +-
tools/perf/tests/evsel-roundtrip-name.c | 2 +-
tools/perf/tests/evsel-tp-sched.c | 2 +-
tools/perf/tests/expr.c | 2 +-
tools/perf/tests/fdarray.c | 4 +-
tools/perf/tests/hists_cumulate.c | 2 +-
tools/perf/tests/hists_filter.c | 2 +-
tools/perf/tests/hists_link.c | 2 +-
tools/perf/tests/hists_output.c | 2 +-
tools/perf/tests/is_printable_array.c | 2 +-
tools/perf/tests/keep-tracking.c | 2 +-
tools/perf/tests/kmod-path.c | 2 +-
tools/perf/tests/llvm.c | 2 +-
tools/perf/tests/mmap-basic.c | 2 +-
tools/perf/tests/mmap-thread-lookup.c | 2 +-
tools/perf/tests/openat-syscall-all-cpus.c | 2 +-
tools/perf/tests/openat-syscall-tp-fields.c | 2 +-
tools/perf/tests/openat-syscall.c | 2 +-
tools/perf/tests/parse-events.c | 2 +-
tools/perf/tests/parse-no-sample-id-all.c | 2 +-
tools/perf/tests/perf-hooks.c | 2 +-
tools/perf/tests/perf-record.c | 2 +-
tools/perf/tests/pmu.c | 2 +-
tools/perf/tests/python-use.c | 2 +-
tools/perf/tests/sample-parsing.c | 2 +-
tools/perf/tests/sdt.c | 4 +-
tools/perf/tests/shell/lib/probe_vfs_getname.sh | 28 +
tools/perf/tests/shell/probe_vfs_getname.sh | 10 +
.../tests/shell/record+script_probe_vfs_getname.sh | 37 +
.../perf/tests/shell/trace+probe_libc_inet_pton.sh | 40 +
tools/perf/tests/shell/trace+probe_vfs_getname.sh | 31 +
tools/perf/tests/stat.c | 6 +-
tools/perf/tests/sw-clock.c | 2 +-
tools/perf/tests/switch-tracking.c | 2 +-
tools/perf/tests/task-exit.c | 2 +-
tools/perf/tests/tests.h | 113 +-
tools/perf/tests/thread-map.c | 6 +-
tools/perf/tests/thread-mg-share.c | 2 +-
tools/perf/tests/topology.c | 2 +-
tools/perf/tests/unit_number__scnprintf.c | 2 +-
tools/perf/tests/vmlinux-kallsyms.c | 2 +-
tools/perf/util/expr.y | 2 +-
tools/perf/util/machine.c | 4 +-
tools/perf/util/srcline.c | 6 +
tools/perf/util/stat-shadow.c | 6 +-
tools/perf/util/symbol-elf.c | 12 +-
tools/perf/util/symbol-minimal.c | 2 +-
tools/perf/util/symbol.c | 21 +-
tools/perf/util/symbol.h | 7 +-
80 files changed, 4054 insertions(+), 2479 deletions(-)
create mode 100644 tools/perf/tests/shell/lib/probe_vfs_getname.sh
create mode 100755 tools/perf/tests/shell/probe_vfs_getname.sh
create mode 100755 tools/perf/tests/shell/record+script_probe_vfs_getname.sh
create mode 100755 tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
create mode 100755 tools/perf/tests/shell/trace+probe_vfs_getname.sh
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support, objtool where it is supported and samples/bpf/, ditto.
Where clang is available, it is also used to build perf with/without libelf.
Several are cross builds, the ones with -x-ARCH, and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf
commands with a variety of command line event specifications to then
intercept the sys_perf_event syscall to check that the perf_event_attr
fields are set up as expected, among a variety of other unit tests.
The 'perf test' also runs shell scripts exercising the tools, checking
if they affect the system in certain ways, like setting up kprobes and
uprobes, request callchains for well known programs and check that they
are the expected ones, see if 'perf trace' beautifies system call
arguments correctly, etc.
Additionally, a new set of tests, script based, runs the tools in a live system,
setting probes in place that then gets used by 'perf trace', with its output
compared against expected results.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# dm
1 alpine:3.4: Ok
2 alpine:3.5: Ok
3 alpine:3.6: Ok
4 alpine:edge: Ok
5 android-ndk:r12b-arm: Ok
6 archlinux:latest: Ok
7 centos:5: Ok
8 centos:6: Ok
9 centos:7: Ok
10 debian:7: Ok
11 debian:8: Ok
12 debian:9: Ok
13 debian:experimental: Ok
14 debian:experimental-x-arm64: Ok
15 debian:experimental-x-mips: Ok
16 debian:experimental-x-mips64: Ok
17 debian:experimental-x-mipsel: Ok
18 fedora:20: Ok
19 fedora:21: Ok
20 fedora:22: Ok
21 fedora:23: Ok
22 fedora:24: Ok
23 fedora:24-x-ARC-uClibc: Ok
24 fedora:25: Ok
25 fedora:26: Ok
26 fedora:rawhide: Ok
27 mageia:5: Ok
28 opensuse:13.2: Ok
29 opensuse:42.1: Ok
30 opensuse:42.2: Ok
31 opensuse:tumbleweed: Ok
32 oraclelinux:6: Ok
33 oraclelinux:7: Ok
34 ubuntu:12.04.5: Ok
35 ubuntu:14.04.4: Ok
36 ubuntu:14.04.4-x-linaro-arm64: Ok
37 ubuntu:15.10: Ok
38 ubuntu:16.04: Ok
39 ubuntu:16.04-x-arm: Ok
40 ubuntu:16.04-x-arm64: Ok
41 ubuntu:16.04-x-powerpc: Ok
42 ubuntu:16.04-x-powerpc64: Ok
43 ubuntu:16.04-x-powerpc64el: Ok
44 ubuntu:16.04-x-s390: Ok
45 ubuntu:16.10: Ok
46 ubuntu:17.04: Ok
47 ubuntu:17.10: Ok
#
# uname -a
Linux jouet 4.13.0-rc4+ #2 SMP Fri Aug 11 12:39:09 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Parse event definition strings : Ok
6: Simple expression parser : Ok
7: PERF_RECORD_* events & perf_sample fields : Ok
8: Parse perf pmu format : Ok
9: DSO data read : Ok
10: DSO data cache : Ok
11: DSO data reopen : Ok
12: Roundtrip evsel->name : Ok
13: Parse sched tracepoints fields : Ok
14: syscalls:sys_enter_openat event fields : Ok
15: Setup struct perf_event_attr : Ok
16: Match and link multiple hists : Ok
17: 'import perf' in python : Ok
18: Breakpoint overflow signal handler : Ok
19: Breakpoint overflow sampling : Ok
20: Number of exit events of a simple workload : Ok
21: Software clock events period values : Ok
22: Object code reading : Ok
23: Sample parsing : Ok
24: Use a dummy software event to keep tracking : Ok
25: Parse with no sample_id_all bit set : Ok
26: Filter hist entries : Ok
27: Lookup mmap thread : Ok
28: Share thread mg : Ok
29: Sort output of hist entries : Ok
30: Cumulate child hist entries : Ok
31: Track with sched_switch : Ok
32: Filter fds with revents mask in a fdarray : Ok
33: Add fd to a fdarray, making it autogrow : Ok
34: kmod_path__parse : Ok
35: Thread map : Ok
36: LLVM search and compile :
36.1: Basic BPF llvm compile : Ok
36.2: kbuild searching : Ok
36.3: Compile source for BPF prologue generation : Ok
36.4: Compile source for BPF relocation : Ok
37: Session topology : Ok
38: BPF filter :
38.1: Basic BPF filtering : Ok
38.2: BPF pinning : Ok
38.3: BPF prologue generation : Ok
38.4: BPF relocation checker : Ok
39: Synthesize thread map : Ok
40: Remove thread map : Ok
41: Synthesize cpu map : Ok
42: Synthesize stat config : Ok
43: Synthesize stat : Ok
44: Synthesize stat round : Ok
45: Synthesize attr update : Ok
46: Event times : Ok
47: Read backward ring buffer : Ok
48: Print cpu map : Ok
49: Probe SDT events : Ok
50: is_printable_array : Ok
51: Print bitmap : Ok
52: perf hooks : Ok
53: builtin clang support : Skip (not compiled in)
54: unit_number__scnprintf : Ok
55: x86 rdpmc : Ok
56: Convert perf time to TSC : Ok
57: DWARF unwind : Ok
58: x86 instruction decoder - new instructions : Ok
59: Intel cqm nmi context read : Skip
60: Use vfs_getname probe to get syscall args filenames : Ok
61: probe libc's inet_pton & backtrace it with ping : Ok
62: Check open filename arg using perf trace + vfs_getname: Ok
63: Add vfs_getname probe to get syscall args filenames : Ok
#
# The static build test works on Fedora 25, is failing on Fedora 26,
# this issue is being investigated.
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_slang_O: make NO_SLANG=1
make_install_prefix_O: make install prefix=/tmp/krava
make_install_bin_O: make install-bin
make_debug_O: make DEBUG=1
make_clean_all_O: make clean all
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_auxtrace_O: make NO_AUXTRACE=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_help_O: make help
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_install_O: make install
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_newt_O: make NO_NEWT=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_perf_o_O: make perf.o
make_no_gtk2_O: make NO_GTK2=1
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_libbpf_O: make NO_LIBBPF=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_tags_O: make tags
make_util_map_o_O: make util/map.o
make_pure_O: make
make_no_libperl_O: make NO_LIBPERL=1
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_libelf_O: make NO_LIBELF=1
make_doc_O: make doc
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2017-08-14 16:27 Arnaldo Carvalho de Melo
@ 2017-08-14 17:39 ` Ingo Molnar
2017-08-14 17:52 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 58+ messages in thread
From: Ingo Molnar @ 2017-08-14 17:39 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, linux-perf-users, Adrian Hunter, Andi Kleen,
Anton Blanchard, David Ahern, Hendrik Brueckner, Jiri Olsa,
linuxppc-dev, Matt Fleming, Michael Ellerman, Michael Petlan,
Milian Wolff, Namhyung Kim, Naveen N . Rao, Paul Clarke,
Peter Zijlstra, Sukadev Bhattiprolu, Thomas-Mich Richter,
Wang Nan, Yao Jin, Zvonko Kosic, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> Test results at the end of this message, as usual.
>
>
> The following changes since commit 82119cbe8e1e32cc2a941393e59816e731681310:
>
> Merge tag 'perf-core-for-mingo-4.14-20170801' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2017-08-10 17:07:02 +0200)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.14-20170814
>
> for you to fetch changes up to 8fc375d7d36c72b4c2d55f5c24be022a939295d4:
>
> perf test shell: Add uprobes + backtrace ping test (2017-08-11 16:18:49 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> Infrastructure:
>
> - Do not consider empty files as valid srclines (Milian Wolff)
>
> - Fix wrong size in perf_record_mmap for last kernel module,
> which resulted in erroneous symbol resolution in at least s390x (Thomas Richter)
>
> - Add missing newline to expr parser error messages (Andi Kleen)
>
> - Fix saved values rbtree lookup in 'perf stat' (Andi Kleen)
>
> - Add support for shell based tests in 'perf test', add a few that
> run 'perf probe', 'perf trace', using kprobes, uprobes to check
> the output of those tools and the effects on the system, checking,
> for instance, DWARF backtraces from uprobes (Arnaldo Carvalho de Melo)
>
> Arch specific:
>
> - Add ppc64le to audit uname list in the python scripting support (Naveen N. Rao)
>
> - Update POWER9 vendor events tables (Sukadev Bhattiprolu)
>
> - Fix module symbol adjustment for s390x (Thomas Richter)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Andi Kleen (2):
> perf stat: Fix saved values rbtree lookup
> perf tools: Add missing newline to expr parser error messages
>
> Arnaldo Carvalho de Melo (10):
> perf test: Make 'list' subcommand match main 'perf test' numbering/matching
> perf test: Add 'struct test *' to the test functions
> perf test: Add infrastructure to run shell based tests
> perf test: Make 'list' use same filtering code as main 'perf test'
> perf test shell: Add 'probe_vfs_getname' shell test
> perf test shell: Install shell tests
> perf test shell: Move vfs_getname probe function to lib
> perf test shell: Add test using probe:vfs_getname and verifying results
> perf test shell: Add test using vfs_getname + 'perf trace'
> perf test shell: Add uprobes + backtrace ping test
>
> Milian Wolff (2):
> perf util: Take elf_name as const string in dso__demangle_sym
> perf srcline: Do not consider empty files as valid srclines
>
> Naveen N. Rao (1):
> perf scripting python: Add ppc64le to audit uname list
>
> Sukadev Bhattiprolu (2):
> perf vendor events powerpc: remove suffix in mapfile
> perf vendor events powerpc: Update POWER9 events
>
> Thomas Richter (2):
> perf record: Fix wrong size in perf_record_mmap for last kernel module
> perf report: Fix module symbol adjustment for s390x
>
> tools/perf/Makefile.perf | 6 +-
> tools/perf/arch/s390/util/sym-handling.c | 7 +
> tools/perf/arch/x86/include/arch-tests.h | 11 +-
> tools/perf/arch/x86/tests/insn-x86.c | 2 +-
> tools/perf/arch/x86/tests/intel-cqm.c | 2 +-
> tools/perf/arch/x86/tests/perf-time-to-tsc.c | 2 +-
> tools/perf/arch/x86/tests/rdpmc.c | 2 +-
> tools/perf/pmu-events/arch/powerpc/mapfile.csv | 20 +-
> .../perf/pmu-events/arch/powerpc/power9/cache.json | 191 +-
> .../arch/powerpc/power9/floating-point.json | 42 +-
> .../pmu-events/arch/powerpc/power9/frontend.json | 517 ++--
> .../pmu-events/arch/powerpc/power9/marked.json | 905 +++----
> .../pmu-events/arch/powerpc/power9/memory.json | 178 +-
> .../perf/pmu-events/arch/powerpc/power9/other.json | 2768 ++++++++++++++++----
> .../pmu-events/arch/powerpc/power9/pipeline.json | 779 +++---
> tools/perf/pmu-events/arch/powerpc/power9/pmc.json | 167 +-
> .../arch/powerpc/power9/translation.json | 314 +--
> .../python/Perf-Trace-Util/lib/Perf/Trace/Util.py | 1 +
> tools/perf/tests/attr.c | 2 +-
> tools/perf/tests/backward-ring-buffer.c | 2 +-
> tools/perf/tests/bitmap.c | 2 +-
> tools/perf/tests/bp_signal.c | 2 +-
> tools/perf/tests/bp_signal_overflow.c | 2 +-
> tools/perf/tests/bpf.c | 4 +-
> tools/perf/tests/builtin-test.c | 184 +-
> tools/perf/tests/clang.c | 4 +-
> tools/perf/tests/code-reading.c | 2 +-
> tools/perf/tests/cpumap.c | 4 +-
> tools/perf/tests/dso-data.c | 6 +-
> tools/perf/tests/dwarf-unwind.c | 2 +-
> tools/perf/tests/event-times.c | 2 +-
> tools/perf/tests/event_update.c | 2 +-
> tools/perf/tests/evsel-roundtrip-name.c | 2 +-
> tools/perf/tests/evsel-tp-sched.c | 2 +-
> tools/perf/tests/expr.c | 2 +-
> tools/perf/tests/fdarray.c | 4 +-
> tools/perf/tests/hists_cumulate.c | 2 +-
> tools/perf/tests/hists_filter.c | 2 +-
> tools/perf/tests/hists_link.c | 2 +-
> tools/perf/tests/hists_output.c | 2 +-
> tools/perf/tests/is_printable_array.c | 2 +-
> tools/perf/tests/keep-tracking.c | 2 +-
> tools/perf/tests/kmod-path.c | 2 +-
> tools/perf/tests/llvm.c | 2 +-
> tools/perf/tests/mmap-basic.c | 2 +-
> tools/perf/tests/mmap-thread-lookup.c | 2 +-
> tools/perf/tests/openat-syscall-all-cpus.c | 2 +-
> tools/perf/tests/openat-syscall-tp-fields.c | 2 +-
> tools/perf/tests/openat-syscall.c | 2 +-
> tools/perf/tests/parse-events.c | 2 +-
> tools/perf/tests/parse-no-sample-id-all.c | 2 +-
> tools/perf/tests/perf-hooks.c | 2 +-
> tools/perf/tests/perf-record.c | 2 +-
> tools/perf/tests/pmu.c | 2 +-
> tools/perf/tests/python-use.c | 2 +-
> tools/perf/tests/sample-parsing.c | 2 +-
> tools/perf/tests/sdt.c | 4 +-
> tools/perf/tests/shell/lib/probe_vfs_getname.sh | 28 +
> tools/perf/tests/shell/probe_vfs_getname.sh | 10 +
> .../tests/shell/record+script_probe_vfs_getname.sh | 37 +
> .../perf/tests/shell/trace+probe_libc_inet_pton.sh | 40 +
> tools/perf/tests/shell/trace+probe_vfs_getname.sh | 31 +
> tools/perf/tests/stat.c | 6 +-
> tools/perf/tests/sw-clock.c | 2 +-
> tools/perf/tests/switch-tracking.c | 2 +-
> tools/perf/tests/task-exit.c | 2 +-
> tools/perf/tests/tests.h | 113 +-
> tools/perf/tests/thread-map.c | 6 +-
> tools/perf/tests/thread-mg-share.c | 2 +-
> tools/perf/tests/topology.c | 2 +-
> tools/perf/tests/unit_number__scnprintf.c | 2 +-
> tools/perf/tests/vmlinux-kallsyms.c | 2 +-
> tools/perf/util/expr.y | 2 +-
> tools/perf/util/machine.c | 4 +-
> tools/perf/util/srcline.c | 6 +
> tools/perf/util/stat-shadow.c | 6 +-
> tools/perf/util/symbol-elf.c | 12 +-
> tools/perf/util/symbol-minimal.c | 2 +-
> tools/perf/util/symbol.c | 21 +-
> tools/perf/util/symbol.h | 7 +-
> 80 files changed, 4054 insertions(+), 2479 deletions(-)
> create mode 100644 tools/perf/tests/shell/lib/probe_vfs_getname.sh
> create mode 100755 tools/perf/tests/shell/probe_vfs_getname.sh
> create mode 100755 tools/perf/tests/shell/record+script_probe_vfs_getname.sh
> create mode 100755 tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
> create mode 100755 tools/perf/tests/shell/trace+probe_vfs_getname.sh
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [GIT PULL 00/19] perf/core improvements and fixes
2017-08-14 17:39 ` Ingo Molnar
@ 2017-08-14 17:52 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-08-14 17:52 UTC (permalink / raw)
To: Ingo Molnar
Cc: Kim Phillips, linux-kernel, linux-perf-users, Adrian Hunter,
Andi Kleen, Anton Blanchard, David Ahern, Hendrik Brueckner,
Jiri Olsa, linuxppc-dev, Matt Fleming, Michael Ellerman,
Michael Petlan, Milian Wolff, Namhyung Kim, Naveen N . Rao,
Paul Clarke, Peter Zijlstra, Sukadev Bhattiprolu,
Thomas-Mich Richter, Wang Nan, Yao Jin, Zvonko Kosic, acme
Em Mon, Aug 14, 2017 at 07:39:48PM +0200, Ingo Molnar escreveu:
> * Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > Infrastructure:
> > - Add support for shell based tests in 'perf test', add a few that
> > run 'perf probe', 'perf trace', using kprobes, uprobes to check
> > the output of those tools and the effects on the system, checking,
> > for instance, DWARF backtraces from uprobes (Arnaldo Carvalho de Melo)
<SNIP>
> > create mode 100644 tools/perf/tests/shell/lib/probe_vfs_getname.sh
> > create mode 100755 tools/perf/tests/shell/probe_vfs_getname.sh
> > create mode 100755 tools/perf/tests/shell/record+script_probe_vfs_getname.sh
> > create mode 100755 tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
> > create mode 100755 tools/perf/tests/shell/trace+probe_vfs_getname.sh
>
> Pulled, thanks a lot Arnaldo!
Thanks! I'm working with Kim Phillips to fix some issues he noticed
while testing on his ARM systems where 'perf probe' is not available, my
perf/core branch has several fixes to handle this that will be in my
next pull request.
- Arnaldo
^ permalink raw reply [flat|nested] 58+ messages in thread
* [GIT PULL 00/19] perf/core improvements and fixes
@ 2017-11-03 13:54 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 58+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-11-03 13:54 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, linux-perf-users, Arnaldo Carvalho de Melo,
Adrian Hunter, Andi Kleen, Andrey Vagin, Andy Lutomirski,
Changbin Du, Cyrill Gorcunov, David Ahern, Jin Yao, Jiri Olsa,
kernel-team, Michael Ellerman, Milian Wolff, Namhyung Kim,
Peter Zijlstra, Wang Nan, yuzhoujian, Arnaldo Carvalho de Melo
Hi Ingo,
A bit of trivia info is now automatically shown in the container
builds, the gcc version used to build the tools, that gets changed as
the distros update gcc and as I update the container build images :-)
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 0d3d73aac2ff05c78387aa9dcc2c8aa3804405e7:
perf/core: Rewrite event timekeeping (2017-10-27 10:31:59 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-core-for-mingo-4.15-20171103
for you to fetch changes up to 7285cf3325b4a1dfb336d31eebc27dfbc30fb9aa:
perf srcline: Show correct function name for srcline of callchains (2017-11-01 11:44:38 -0300)
----------------------------------------------------------------
perf/core improvements and fixes:
- Beautify the 'kcmp' and 'prctl' syscall arguments in 'perf trace'
(Arnaldo Carvalho de Melo)
- Implement a way to print formatted output to per-event files in 'perf script'
to facilitate generate flamegraphs, elliminating the need to write scripts to
do that separation (yuzhoujian, Arnaldo Carvalho de Melo)
Make 'perf stat --per-thread' update shadow stats to show metrics (Jiri Olsa)
- Fix double mapping al->addr in callchain processing for children without self
period (Namhyung Kim)
- Fix memory leak in addr2inlines() when libbfd is not used (Namhyung Kim)
- Show correct function name for srcline of callchains when libbfd is not used
(Namhyung Kim)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (11):
perf script: Add a few missing conversions to fprintf style
perf script: Use pr_debug where appropriate
perf script: Use event_format__fprintf()
perf evsel: Restore evsel->priv as a tool private area
perf script: Allow creating per-event dump files
tools include uapi: Grab a copy of linux/prctl.h
perf trace beauty prctl: Generate 'option' string table from kernel headers
perf script: Print information about per-event-dump files
tools include uapi: Grab a copy of linux/kcmp.h
perf trace beauty: Implement pid_fd beautifier
perf trace beauty kcmp: Beautify arguments
Jiri Olsa (5):
perf tools: Rename struct perf_data_file to perf_data
perf tools: Add struct perf_data_file
perf tools: Add perf_data_file__write function
perf stat: Move the shadow stats scale computation in perf_stat__update_shadow_stats
perf stat: Make --per-thread update shadow stats to show metrics
Namhyung Kim (3):
perf callchain: Fix double mapping al->addr for children without self period
perf srcline: Fix memory leak in addr2inlines()
perf srcline: Show correct function name for srcline of callchains
tools/include/uapi/linux/kcmp.h | 27 +++++
tools/include/uapi/linux/prctl.h | 200 +++++++++++++++++++++++++++++++
tools/perf/Documentation/perf-script.txt | 4 +
tools/perf/Makefile.perf | 22 +++-
tools/perf/builtin-annotate.c | 10 +-
tools/perf/builtin-buildid-cache.c | 8 +-
tools/perf/builtin-buildid-list.c | 16 +--
tools/perf/builtin-c2c.c | 10 +-
tools/perf/builtin-diff.c | 18 +--
tools/perf/builtin-evlist.c | 12 +-
tools/perf/builtin-inject.c | 36 +++---
tools/perf/builtin-kmem.c | 8 +-
tools/perf/builtin-kvm.c | 14 ++-
tools/perf/builtin-lock.c | 12 +-
tools/perf/builtin-mem.c | 12 +-
tools/perf/builtin-record.c | 50 ++++----
tools/perf/builtin-report.c | 14 +--
tools/perf/builtin-sched.c | 24 ++--
tools/perf/builtin-script.c | 169 ++++++++++++++++++++++----
tools/perf/builtin-stat.c | 39 +++---
tools/perf/builtin-timechart.c | 14 ++-
tools/perf/builtin-trace.c | 40 ++++++-
tools/perf/check-headers.sh | 2 +
tools/perf/tests/topology.c | 22 ++--
tools/perf/trace/beauty/Build | 2 +
tools/perf/trace/beauty/beauty.h | 18 +++
tools/perf/trace/beauty/kcmp.c | 44 +++++++
tools/perf/trace/beauty/kcmp_type.sh | 10 ++
tools/perf/trace/beauty/prctl.c | 82 +++++++++++++
tools/perf/trace/beauty/prctl_option.sh | 17 +++
tools/perf/util/auxtrace.c | 4 +-
tools/perf/util/callchain.c | 5 +-
tools/perf/util/data-convert-bt.c | 12 +-
tools/perf/util/data.c | 94 ++++++++-------
tools/perf/util/data.h | 38 +++---
tools/perf/util/evsel.h | 3 +
tools/perf/util/header.c | 20 ++--
tools/perf/util/intel-bts.c | 6 +-
tools/perf/util/intel-pt.c | 6 +-
tools/perf/util/jit.h | 2 +-
tools/perf/util/jitdump.c | 10 +-
tools/perf/util/session.c | 44 +++----
tools/perf/util/session.h | 4 +-
tools/perf/util/srcline.c | 102 +++++++++-------
tools/perf/util/stat-shadow.c | 48 ++++----
tools/perf/util/stat.c | 24 ++--
tools/perf/util/stat.h | 2 +-
47 files changed, 999 insertions(+), 381 deletions(-)
create mode 100644 tools/include/uapi/linux/kcmp.h
create mode 100644 tools/include/uapi/linux/prctl.h
create mode 100644 tools/perf/trace/beauty/kcmp.c
create mode 100755 tools/perf/trace/beauty/kcmp_type.sh
create mode 100644 tools/perf/trace/beauty/prctl.c
create mode 100755 tools/perf/trace/beauty/prctl_option.sh
Test results:
The first ones are container (docker) based builds of tools/perf with and
without libelf support. Where clang is available, it is also used to build
perf with/without libelf.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
# dm
1 alpine:3.4: Ok gcc (Alpine 5.3.0) 5.3.0
2 alpine:3.5: Ok gcc (Alpine 6.2.1) 6.2.1 20160822
3 alpine:3.6: Ok gcc (Alpine 6.3.0) 6.3.0
4 alpine:edge: Ok gcc (Alpine 6.4.0) 6.4.0
5 android-ndk:r12b-arm: Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
6 android-ndk:r15c-arm: Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
7 centos:5: Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
8 centos:6: Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
9 centos:7: Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
10 debian:7: Ok gcc (Debian 4.7.2-5) 4.7.2
11 debian:8: Ok gcc (Debian 4.9.2-10) 4.9.2
12 debian:9: Ok gcc (Debian 6.3.0-18) 6.3.0 20170516
13 debian:experimental: Ok gcc (Debian 7.2.0-11) 7.2.0
14 debian:experimental-x-arm64: Ok aarch64-linux-gnu-gcc (Debian 7.2.0-6) 7.2.0
15 debian:experimental-x-mips: Ok mips-linux-gnu-gcc (Debian 7.2.0-6) 7.2.0
16 debian:experimental-x-mips64: Ok mips64-linux-gnuabi64-gcc (Debian 7.2.0-6) 7.2.0
17 debian:experimental-x-mipsel: Ok mipsel-linux-gnu-gcc (Debian 7.2.0-6) 7.2.0
18 fedora:20: Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
19 fedora:21: Ok gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
20 fedora:22: Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
21 fedora:23: Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
22 fedora:24: Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
23 fedora:24-x-ARC-uClibc: Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
24 fedora:25: Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
25 fedora:26: Ok gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
26 fedora:rawhide: Ok gcc (GCC) 7.2.1 20170829 (Red Hat 7.2.1-1)
27 mageia:5: Ok gcc (GCC) 4.9.2
28 mageia:6: Ok gcc (Mageia 5.4.0-5.mga6) 5.4.0
29 opensuse:42.1: Ok gcc (SUSE Linux) 4.8.5
30 opensuse:42.2: Ok gcc (SUSE Linux) 4.8.5
31 opensuse:42.3: Ok gcc (SUSE Linux) 4.8.5
32 opensuse:tumbleweed: Ok gcc (SUSE Linux) 7.2.1 20170901 [gcc-7-branch revision 251580]
33 oraclelinux:6: Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
34 oraclelinux:7: Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
35 ubuntu:12.04.5: Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
36 ubuntu:14.04.4: Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
37 ubuntu:14.04.4-x-linaro-arm64: Ok aarch64-linux-gnu-gcc (Linaro GCC 5.4-2017.05) 5.4.1 20170404
38 ubuntu:15.04: Ok gcc (Ubuntu 4.9.2-10ubuntu13) 4.9.2
39 ubuntu:15.10: Ok gcc (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
40 ubuntu:16.04: Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
41 ubuntu:16.04-x-arm: Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
42 ubuntu:16.04-x-arm64: Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
43 ubuntu:16.04-x-powerpc: Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
44 ubuntu:16.04-x-powerpc64: Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609
45 ubuntu:16.04-x-powerpc64el: Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
46 ubuntu:16.04-x-s390: Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
47 ubuntu:16.10: Ok gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
48 ubuntu:17.04: Ok gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
49 ubuntu:17.10: Ok gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
#
# uname -a
Linux jouet 4.14.0-rc6+ #1 SMP Tue Oct 31 14:43:51 -03 2017 x86_64 x86_64 x86_64 GNU/Linux
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Number of exit events of a simple workload : Ok
22: Software clock events period values : Ok
23: Object code reading : Ok
24: Sample parsing : Ok
25: Use a dummy software event to keep tracking : Ok
26: Parse with no sample_id_all bit set : Ok
27: Filter hist entries : Ok
28: Lookup mmap thread : Ok
29: Share thread mg : Ok
30: Sort output of hist entries : Ok
31: Cumulate child hist entries : Ok
32: Track with sched_switch : Ok
33: Filter fds with revents mask in a fdarray : Ok
34: Add fd to a fdarray, making it autogrow : Ok
35: kmod_path__parse : Ok
36: Thread map : Ok
37: LLVM search and compile :
37.1: Basic BPF llvm compile : Ok
37.2: kbuild searching : Ok
37.3: Compile source for BPF prologue generation : Ok
37.4: Compile source for BPF relocation : Ok
38: Session topology : Ok
39: BPF filter :
39.1: Basic BPF filtering : Ok
39.2: BPF pinning : Ok
39.3: BPF prologue generation : Ok
39.4: BPF relocation checker : Ok
40: Synthesize thread map : Ok
41: Remove thread map : Ok
42: Synthesize cpu map : Ok
43: Synthesize stat config : Ok
44: Synthesize stat : Ok
45: Synthesize stat round : Ok
46: Synthesize attr update : Ok
47: Event times : Ok
48: Read backward ring buffer : Ok
49: Print cpu map : Ok
50: Probe SDT events : Ok
51: is_printable_array : Ok
52: Print bitmap : Ok
53: perf hooks : Ok
54: builtin clang support : Skip (not compiled in)
55: unit_number__scnprintf : Ok
56: x86 rdpmc : Ok
57: Convert perf time to TSC : Ok
58: DWARF unwind : Ok
59: x86 instruction decoder - new instructions : Ok
60: Use vfs_getname probe to get syscall args filenames : Ok
61: probe libc's inet_pton & backtrace it with ping : Ok
62: Check open filename arg using perf trace + vfs_getname: Ok
63: Add vfs_getname probe to get syscall args filenames : Ok
#
$ make -C tools/perf build-test
make: Entering directory '/home/acme/git/linux/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_clean_all_O: make clean all
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_demangle_O: make NO_DEMANGLE=1
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_no_gtk2_O: make NO_GTK2=1
make_static_O: make LDFLAGS=-static
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_pure_O: make
make_no_libaudit_O: make NO_LIBAUDIT=1
make_debug_O: make DEBUG=1
make_no_newt_O: make NO_NEWT=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_slang_O: make NO_SLANG=1
make_no_auxtrace_O: make NO_AUXTRACE=1
make_install_prefix_O: make install prefix=/tmp/krava
make_no_libbionic_O: make NO_LIBBIONIC=1
make_doc_O: make doc
make_tags_O: make tags
make_with_babeltrace_O: make LIBBABELTRACE=1
make_no_libelf_O: make NO_LIBELF=1
make_no_libpython_O: make NO_LIBPYTHON=1
make_help_O: make help
make_no_libbpf_O: make NO_LIBBPF=1
make_perf_o_O: make perf.o
make_no_libunwind_O: make NO_LIBUNWIND=1
make_install_O: make install
make_util_map_o_O: make util/map.o
make_install_bin_O: make install-bin
make_no_backtrace_O: make NO_BACKTRACE=1
make_no_libperl_O: make NO_LIBPERL=1
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
OK
make: Leaving directory '/home/acme/git/linux/tools/perf'
$
^ permalink raw reply [flat|nested] 58+ messages in thread
end of thread, other threads:[~2017-11-03 13:55 UTC | newest]
Thread overview: 58+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-07 20:58 [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 01/19] perf config: Fix build with older toolchain Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 02/19] perf probe: Check if dwarf_getlocations() is available Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 03/19] perf script perl: Do error checking on new backtrace routine Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 04/19] perf tools: Remove superfluous ARCH Makefile includes Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 05/19] perf list: Document event specifications better Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 06/19] perf trace: Beautify sched_setscheduler 'policy' argument Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 07/19] perf trace: Beautify wait4/waitid 'options' argument Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 08/19] perf trace: Infrastructure to show COMM strings for syscalls returning PIDs Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 09/19] perf trace: Beautify set_tid_address, getpid, getppid return values Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 10/19] perf trace: Beautify pid_t arguments Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 11/19] perf tools: Introduce trim function Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 12/19] perf tools: Add dedicated unwind addr_space member into thread struct Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 13/19] perf script: Process event update events Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 14/19] perf trace: Beautify mode_t arguments Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 15/19] perf trace: Move syscall table id <-> name routines to separate class Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 16/19] perf tools: Allow generating per-arch syscall table arrays Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 17/19] perf tools: Build syscall table .c header from kernel's syscall_64.tbl Arnaldo Carvalho de Melo
2016-04-07 21:39 ` David Ahern
2016-04-07 21:50 ` Arnaldo Carvalho de Melo
2016-04-07 21:49 ` David Ahern
2016-04-07 21:52 ` Arnaldo Carvalho de Melo
2016-04-08 3:27 ` Wangnan (F)
2016-04-07 20:58 ` [PATCH 18/19] perf symbols: Record text offset in dso to calculate objdump address Arnaldo Carvalho de Melo
2016-04-07 20:58 ` [PATCH 19/19] perf symbols: Adjust symbol for shared objects Arnaldo Carvalho de Melo
2016-04-08 13:15 ` [GIT PULL 00/19] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-04-13 6:58 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2017-11-03 13:54 Arnaldo Carvalho de Melo
2017-08-14 16:27 Arnaldo Carvalho de Melo
2017-08-14 17:39 ` Ingo Molnar
2017-08-14 17:52 ` Arnaldo Carvalho de Melo
2017-03-14 18:50 Arnaldo Carvalho de Melo
2017-03-15 18:29 ` Ingo Molnar
2016-12-01 18:02 Arnaldo Carvalho de Melo
2016-12-02 9:10 ` Ingo Molnar
2016-09-01 16:45 Arnaldo Carvalho de Melo
2016-09-05 13:16 ` Ingo Molnar
2016-07-14 2:20 Arnaldo Carvalho de Melo
2016-07-14 6:58 ` Ingo Molnar
2016-06-15 18:13 Arnaldo Carvalho de Melo
2016-06-16 6:29 ` Jiri Olsa
2016-06-16 19:54 ` Arnaldo Carvalho de Melo
2016-06-16 8:29 ` Ingo Molnar
2016-03-10 21:04 Arnaldo Carvalho de Melo
2016-03-11 8:43 ` Ingo Molnar
2016-02-26 23:18 Arnaldo Carvalho de Melo
2016-02-27 9:36 ` Ingo Molnar
2016-02-05 16:25 Arnaldo Carvalho de Melo
2016-02-09 9:40 ` Ingo Molnar
2015-04-08 14:23 Arnaldo Carvalho de Melo
2015-04-08 15:05 ` Ingo Molnar
2015-03-21 18:54 Arnaldo Carvalho de Melo
2015-03-22 9:58 ` Ingo Molnar
2015-02-27 19:22 Arnaldo Carvalho de Melo
2014-01-17 14:57 Arnaldo Carvalho de Melo
2014-01-19 12:11 ` Ingo Molnar
2012-05-22 17:39 Arnaldo Carvalho de Melo
2012-05-23 15:06 ` Ingo Molnar
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).