From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756128Ab3BAKSh (ORCPT ); Fri, 1 Feb 2013 05:18:37 -0500 Received: from mail-ea0-f169.google.com ([209.85.215.169]:53819 "EHLO mail-ea0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754598Ab3BAKSe (ORCPT ); Fri, 1 Feb 2013 05:18:34 -0500 Date: Fri, 1 Feb 2013 11:18:29 +0100 From: Ingo Molnar To: Arnaldo Carvalho de Melo Cc: linux-kernel@vger.kernel.org, Andi Kleen , Anton Blanchard , David Ahern , Frederic Weisbecker , Jiri Olsa , linuxppc-dev@ozlabs.org, Mike Galbraith , Namhyung Kim , Namhyung Kim , Paul Mackerras , Pekka Enberg , Peter Zijlstra , Robert Richter , Stephane Eranian , Sukadev Bhattiprolu , acme@ghostprotocols.net, Arnaldo Carvalho de Melo Subject: Re: [GIT PULL 00/25] perf/core improvements and fixes Message-ID: <20130201101829.GC23061@gmail.com> References: <1359653128-10433-1-git-send-email-acme@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1359653128-10433-1-git-send-email-acme@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Arnaldo Carvalho de Melo wrote: > Hi Ingo, > > Please consider pulling, > > - Arnaldo > > The following changes since commit 152fefa921535665f95840c08062844ab2f5593e: > > Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2013-01-31 10:20:14 +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 2ac3634a7e1c8eedc961030c87c5c36ebd5bbf8e: > > perf: Document the ABI of perf sysfs entries (2013-01-31 13:07:51 -0300) > > ---------------------------------------------------------------- > perf/core improvements and fixes: > > . Make some POWER7 events available in sysfs, equivalent to > what was done on x86, from Sukadev Bhattiprolu. > > . Add event group view, from Namyung Kim: > > To use it, 'perf record' should group events when recording. And then perf > report parses the saved group relation from file header and prints them > together if --group option is provided. You can use 'perf evlist' command to > see event group information: > > $ perf record -e '{ref-cycles,cycles}' noploop 1 > [ perf record: Woken up 2 times to write data ] > [ perf record: Captured and wrote 0.385 MB perf.data (~16807 samples) ] > > $ perf evlist --group > {ref-cycles,cycles} > > With this example, default perf report will show you each event > separately like this: > > $ perf report > ... > # group: {ref-cycles,cycles} > # ======== > # Samples: 3K of event 'ref-cycles' > # Event count (approx.): 3153797218 > # > # Overhead Command Shared Object Symbol > # ........ ....... ................. .......................... > 99.84% noploop noploop [.] main > 0.07% noploop ld-2.15.so [.] strcmp > 0.03% noploop [kernel.kallsyms] [k] timerqueue_del > 0.03% noploop [kernel.kallsyms] [k] sched_clock_cpu > 0.02% noploop [kernel.kallsyms] [k] account_user_time > 0.01% noploop [kernel.kallsyms] [k] __alloc_pages_nodemask > 0.00% noploop [kernel.kallsyms] [k] native_write_msr_safe > > # Samples: 3K of event 'cycles' > # Event count (approx.): 3722310525 > # > # Overhead Command Shared Object Symbol > # ........ ....... ................. ......................... > 99.76% noploop noploop [.] main > 0.11% noploop [kernel.kallsyms] [k] _raw_spin_lock > 0.06% noploop [kernel.kallsyms] [k] find_get_page > 0.03% noploop [kernel.kallsyms] [k] sched_clock_cpu > 0.02% noploop [kernel.kallsyms] [k] rcu_check_callbacks > 0.02% noploop [kernel.kallsyms] [k] __current_kernel_time > 0.00% noploop [kernel.kallsyms] [k] native_write_msr_safe > > In this case the event group information will be shown in the end of > header area. So you can use --group option to enable event group view. > > $ perf report --group > ... > # group: {ref-cycles,cycles} > # ======== > # Samples: 7K of event 'anon group { ref-cycles, cycles }' > # Event count (approx.): 6876107743 > # > # Overhead Command Shared Object Symbol > # ................ ....... ................. .......................... > 99.84% 99.76% noploop noploop [.] main > 0.07% 0.00% noploop ld-2.15.so [.] strcmp > 0.03% 0.00% noploop [kernel.kallsyms] [k] timerqueue_del > 0.03% 0.03% noploop [kernel.kallsyms] [k] sched_clock_cpu > 0.02% 0.00% noploop [kernel.kallsyms] [k] account_user_time > 0.01% 0.00% noploop [kernel.kallsyms] [k] __alloc_pages_nodemask > 0.00% 0.00% noploop [kernel.kallsyms] [k] native_write_msr_safe > 0.00% 0.11% noploop [kernel.kallsyms] [k] _raw_spin_lock > 0.00% 0.06% noploop [kernel.kallsyms] [k] find_get_page > 0.00% 0.02% noploop [kernel.kallsyms] [k] rcu_check_callbacks > 0.00% 0.02% noploop [kernel.kallsyms] [k] __current_kernel_time > > As you can see the Overhead column now contains both of ref-cycles and > cycles and header line shows group information also - 'anon group { > ref-cycles, cycles }'. The output is sorted by period of group leader > first. > > If perf.data file doesn't contain group information, this --group > option does nothing. So if you want enable event group view by > default you can set it in ~/.perfconfig file: > > $ cat ~/.perfconfig > [report] > group = true > > It can be overridden with command line if you want: > > $ perf report --no-group > > Signed-off-by: Arnaldo Carvalho de Melo > > ---------------------------------------------------------------- > Arnaldo Carvalho de Melo (2): > perf top: Stop using exit() > perf top: Delete maps on exit > > Namhyung Kim (18): > perf tools: Keep group information > perf tests: Add group test conditions > perf header: Add HEADER_GROUP_DESC feature > perf report: Make another loop for linking group hists > perf hists: Resort hist entries using group members for output > perf ui/hist: Consolidate hpp helpers > perf hists browser: Convert hpp helpers to a function > perf gtk/browser: Convert hpp helpers to a function > perf ui/hist: Add support for event group view > perf hists browser: Move coloring logic to hpp functions > perf hists browser: Add suppport for event group view > perf gtk/browser: Add support for event group view > perf gtk/browser: Trim column header string when event group enabled > perf report: Bypass non-leader events when event group is enabled > perf report: Show group description when event group is enabled > perf report: Add --group option > perf report: Add report.group config option > perf evlist: Add --group option > > Sukadev Bhattiprolu (5): > perf/Power7: Use macros to identify perf events > perf: Make EVENT_ATTR global > perf/POWER7: Make generic event translations available in sysfs > perf/POWER7: Make some POWER7 events available in sysfs > perf: Document the ABI of perf sysfs entries > > .../testing/sysfs-bus-event_source-devices-events | 62 +++++ > arch/powerpc/include/asm/perf_event_server.h | 26 ++ > arch/powerpc/perf/core-book3s.c | 12 + > arch/powerpc/perf/power7-pmu.c | 80 +++++- > arch/x86/kernel/cpu/perf_event.c | 13 +- > include/linux/perf_event.h | 11 + > tools/perf/Documentation/perf-evlist.txt | 4 + > tools/perf/Documentation/perf-report.txt | 3 + > tools/perf/builtin-evlist.c | 7 + > tools/perf/builtin-record.c | 3 + > tools/perf/builtin-report.c | 47 +++- > tools/perf/builtin-top.c | 62 +++-- > tools/perf/tests/parse-events.c | 28 ++ > tools/perf/ui/browsers/hists.c | 217 ++++++++++++--- > tools/perf/ui/gtk/hists.c | 130 +++++++-- > tools/perf/ui/hist.c | 306 ++++++++++----------- > tools/perf/ui/stdio/hist.c | 2 + > tools/perf/util/evlist.c | 7 +- > tools/perf/util/evlist.h | 1 + > tools/perf/util/evsel.c | 49 +++- > tools/perf/util/evsel.h | 16 ++ > tools/perf/util/header.c | 164 +++++++++++ > tools/perf/util/header.h | 2 + > tools/perf/util/hist.c | 59 +++- > tools/perf/util/parse-events.c | 1 + > tools/perf/util/parse-events.h | 1 + > tools/perf/util/parse-events.y | 10 + > tools/perf/util/symbol.h | 3 +- > 28 files changed, 1059 insertions(+), 267 deletions(-) > create mode 100644 Documentation/ABI/testing/sysfs-bus-event_source-devices-events Pulled, thanks a lot Arnaldo! Ingo