Re: [GIT PULL 00/12] perf/core improvements and fixes

From: Ingo Molnar
Date: Thu Oct 29 2015 - 05:36:48 EST



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

> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 4341801873e23bbecee76dabb7c111e3693b900f:
>
> Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core (2015-10-25 09:40:31 +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 443f8c75e8d58d394b0e65b47e02e5cd8ed32b41:
>
> perf symbols: Fix endless loop in dso__split_kallsyms_for_kcore (2015-10-28 11:19:30 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Enable per-event perf_event_attr.inherit setting by config terms, i.e.
> this becomes possible:
>
> $ perf record -e cycles/inherit/ -e instructions/no-inherit/
>
> This affects the default, that can be changed globally using the --no-inherit
> option.
>
> This fine grained control appeared in the eBPF patchkit, but this added
> flexibility may end up being useful in other scenarios (Wang Nan)
>
> - Setup pager when printing usage and help, we have long lists of options,
> better use the pager like we do with normal tooling output, i.e. when needed,
> and including any error messages in the paged output (Namhyung Kim)
>
> - Search for more options when passing args to -h, e.g.: (Arnaldo Carvalho de Melo)
>
> $ perf report -h interface
>
> Usage: perf report [<options>]
>
> --gtk Use the GTK2 interface
> --stdio Use the stdio interface
> --tui Use the TUI interface

I love this! For example if I'd like to know what symbol related options we have,
I only have to type:

triton:~/tip> perf top -h sym

Usage: perf top [<options>]

-D, --dump-symtab dump the symbol table used for profiling
-K, --hide_kernel_symbols
hide kernel symbols
-s, --sort <key[,key2...]>
sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline, ... Please refer the man page for the complete list.
-U, --hide_user_symbols
hide user symbols
--comms <comm[,comm...]>
only consider symbols in these comms
--demangle-kernel
Enable kernel symbol demangling
--dsos <dso[,dso...]>
only consider symbols in these dsos
--sym-annotate <symbol name>
symbol to annotate
--symbols <symbol[,symbol...]>
only consider these symbols

and it's a nice touch that it's searching in the parameter descriptions as well,
not just the parameter name. Thus if I only remember some sort of keyword that's
enough to narrow things down and figure out the option.

One small detail I noticed, for some reason the following search does not work:

triton:~/tip> perf report -h --invert

Usage: perf report [<options>]

It only works if I don't use the dashes:

triton:~/tip> perf report -h invert

Usage: perf report [<options>]

-G, --inverted alias for inverted call graph

... which is a bit surprising, agreed?

> - Fix reading separate debuginfo files based on a build-id, problem
> found on a Debian system (Dima Kogan)
>
> - Fix endless loop when splitting kallsyms symbols per section for
> handling kcore files, problem found on a s390x system (Jiri Olsa)

Btw., is this bug specific to perf/core, or do we want it for perf/urgent as well?

>
> Infrastructure:
>
> - Prep work for the 'perf stat record' work that will allow generating
> perf.data files with counting data in addition to the sampling mode
> we have now (Jiri Olsa)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> perf tools: Search for more options when passing args to -h
>
> Dima Kogan (2):
> perf symbols: Fix type error when reading a build-id
> perf symbols: we can now read separate debug-info files based on a build ID
>
> Jiri Olsa (4):
> perf evsel: Move id_offset out of struct perf_evsel union member
> perf cpu_map: Add cpu_map__empty_new function
> perf stat: Cache aggregated map entries in extra cpumap
> perf symbols: Fix endless loop in dso__split_kallsyms_for_kcore
>
> Namhyung Kim (4):
> perf tools: Improve ambiguous option help message
> perf report: Rename to --show-cpu-utilization
> perf tools: Setup pager when printing usage and help
> perf tools: Introduce usage_with_options_msg()
>
> Wang Nan (1):
> perf tools: Enable pre-event inherit setting by config terms
>
> tools/perf/Documentation/perf-report.txt | 2 +-
> tools/perf/builtin-evlist.c | 4 +--
> tools/perf/builtin-probe.c | 20 ++++++-----
> tools/perf/builtin-record.c | 11 +++---
> tools/perf/builtin-report.c | 4 ++-
> tools/perf/builtin-sched.c | 4 +--
> tools/perf/builtin-script.c | 8 ++---
> tools/perf/builtin-stat.c | 59 +++++++++++++++++++++++++++---
> tools/perf/util/cpumap.c | 17 +++++++++
> tools/perf/util/cpumap.h | 1 +
> tools/perf/util/evsel.c | 9 +++++
> tools/perf/util/evsel.h | 4 ++-
> tools/perf/util/parse-events.c | 14 ++++++++
> tools/perf/util/parse-events.h | 2 ++
> tools/perf/util/parse-events.l | 2 ++
> tools/perf/util/parse-options.c | 62 +++++++++++++++++++++++++-------
> tools/perf/util/parse-options.h | 5 +++
> tools/perf/util/strbuf.c | 22 ++++++++----
> tools/perf/util/strbuf.h | 2 ++
> tools/perf/util/symbol-minimal.c | 2 +-
> tools/perf/util/symbol.c | 11 +++++-
> 21 files changed, 216 insertions(+), 49 deletions(-)

Pulled, thanks a lot Arnaldo!

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/