Re: [GIT PULL 00/10] perf/cover improvements and fixes

From: Ingo Molnar
Date: Sat Oct 03 2015 - 02:33:17 EST



* Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:

> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit c2365b9388e8ec19305e3f449c1826e7493d156d:
>
> perf/x86/intel/uncore: Do not use macro DEFINE_PCI_DEVICE_TABLE() (2015-10-01 10:53:03 +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 19afd10410957b1c808c2c49a88e6dd8b23aa894:
>
> perf stat: Reduce min --interval-print to 10ms (2015-10-02 17:07:55 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Do event name substring search as last resort in 'perf list'.
> (Arnaldo Carvalho de Melo)
>
> E.g.:
>
> # perf list clock
>
> List of pre-defined events (to be used in -e):
>
> cpu-clock [Software event]
> task-clock [Software event]
>
> uncore_cbox_0/clockticks/ [Kernel PMU event]
> uncore_cbox_1/clockticks/ [Kernel PMU event]
>
> kvm:kvm_pvclock_update [Tracepoint event]
> kvm:kvm_update_master_clock [Tracepoint event]
> power:clock_disable [Tracepoint event]
> power:clock_enable [Tracepoint event]
> power:clock_set_rate [Tracepoint event]
> syscalls:sys_enter_clock_adjtime [Tracepoint event]
> syscalls:sys_enter_clock_getres [Tracepoint event]
> syscalls:sys_enter_clock_gettime [Tracepoint event]
> syscalls:sys_enter_clock_nanosleep [Tracepoint event]
> syscalls:sys_enter_clock_settime [Tracepoint event]
> syscalls:sys_exit_clock_adjtime [Tracepoint event]
> syscalls:sys_exit_clock_getres [Tracepoint event]
> syscalls:sys_exit_clock_gettime [Tracepoint event]
> syscalls:sys_exit_clock_nanosleep [Tracepoint event]
> syscalls:sys_exit_clock_settime [Tracepoint event]
>
> - Reduce min 'perf stat --interval-print/-I' to 10ms (Kan Liang)
>
> perf stat --interval in action:
>
> # perf stat -e cycles -I 50 -a usleep $((200 * 1000))
> print interval < 100ms. The overhead percentage could be high in some cases. Please proceed with caution.
> # time counts unit events
> 0.050233636 48,240,396 cycles
> 0.100557098 35,492,594 cycles
> 0.150804687 39,295,112 cycles
> 0.201032269 33,101,961 cycles
> 0.201980732 786,379 cycles
> #
>
> - Allow for max_stack greater than PERF_MAX_STACK_DEPTH, as when
> synthesizing callchains from Intel PT data (Adrian Hunter)
>
> - Allow probing on kmodules without DWARF (Masami Hiramatsu)
>
> - Fix a segfault when processing a perf.data file with callchains using
> "perf report --call-graph none" (Namhyung Kim)
>
> - Fix unresolved COMMs in 'perf top' when -s comm is used (Namhyung Kim)
>
> - Register idle thread in 'perf top' (Namhyung Kim)
>
> - Change 'record.samples' type to unsigned long long, fixing output of
> number of samples in 32-bit architectures (Yang Shi)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Adrian Hunter (1):
> perf callchain: Allow for max_stack greater than PERF_MAX_STACK_DEPTH
>
> Arnaldo Carvalho de Melo (2):
> perf list: Do event name substring search as last resort when no events found
> perf list: Honour 'event_glob' whem printing selectable PMUs
>
> Kan Liang (1):
> perf stat: Reduce min --interval-print to 10ms
>
> Masami Hiramatsu (1):
> perf probe: Allow probing on kmodules without dwarf
>
> Namhyung Kim (4):
> perf record: Allocate area for sample_id_hdr in a synthesized comm event
> perf top: Fix unresolved comm when -s comm is used
> perf top: Register idle thread
> perf report: Fix a bug on "--call-graph none" option
>
> Yang Shi (1):
> perf record: Change 'record.samples' type to unsigned long long
>
> tools/perf/Documentation/perf-list.txt | 2 ++
> tools/perf/Documentation/perf-stat.txt | 5 +++--
> tools/perf/builtin-list.c | 18 ++++++++++++++++--
> tools/perf/builtin-probe.c | 8 +++-----
> tools/perf/builtin-record.c | 16 ++++++++++++----
> tools/perf/builtin-stat.c | 13 +++++++++----
> tools/perf/builtin-top.c | 10 ++++++++--
> tools/perf/util/hist.c | 2 +-
> tools/perf/util/machine.c | 2 +-
> tools/perf/util/pmu.c | 3 ++-
> tools/perf/util/probe-event.c | 8 +++++---
> tools/perf/util/session.c | 2 +-
> tools/perf/util/session.h | 2 ++
> 13 files changed, 65 insertions(+), 26 deletions(-)

Pulled, thanks a lot Arnaldo!

Btw., incidentally I noticed an UI detail: in the 'perf report' and 'perf top'
TUI, PageUp does not move the cursor to the topmost line, it stays at whatever
partial page position it is.

I think it would be better to behave here like good editors do: PageUp in the
first partial page moves to the first line (like 'Home') - and PageDown on the
last page of output moves to the last line (like 'End').

Btw., even popular TUI editors get this wrong sometimes:

- 'nano' (joe clone, popular mail editor) gets this right in both directions.

- 'vim' behaves this way on PageDown, but not on PageUp. Nor does it recognize
Home/End, only Ctrl-Home/End works.

- 'emacs (e3 package) gets the PageUp/PageDown behavior right, but no Home/End
key combo works (and exiting the editor is painful as well ;-)

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/