Re: [GIT PULL 0/7] perf/core improvements and fixes

From: Ingo Molnar
Date: Tue Nov 24 2015 - 03:10:51 EST



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

> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
>
> The following changes since commit b7883a1c4f75edb62fc49da6000c59fb881e3c7b:
>
> perf/x86: Handle multiple umask bits for BDW CYCLE_ACTIVITY.* (2015-11-23 09:58:27 +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 646a6e846c4dc3812c614fd061603b6db5b8d380:
>
> perf callchain: Add missing parent_val initialization (2015-11-23 18:31:25 -0300)
>
> ----------------------------------------------------------------
> perf/core improvements and fixes:
>
> User visible:
>
> - Allow callchain order (caller, callee) to the libdw and libunwind based DWARF
> unwinders (Jiri Olsa)
>
> - Add missing parent_val initialization in the callchain code, fixing a
> SEGFAULT when using callchains with 'perf top' (Jiri Olsa)
>
> - Add initial 'perf config' command, for now just with a --list command to
> show the contents of the configuration file in use and a basic man page
> describing its format, commands for doing edits and detailed documentation
> are being reviewed and proof-read. (Taeung Song)
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> ----------------------------------------------------------------
> Jiri Olsa (5):
> perf callchain: Move initial entry call into get_entries function
> perf callchain: Add order support for libunwind DWARF unwinder
> perf test: Add callchain order setup for DWARF unwinder test
> perf callchain: Add order support for libdw DWARF unwinder
> perf callchain: Add missing parent_val initialization
>
> Taeung Song (2):
> perf tools: Add 'perf config' command
> perf config: Add initial man page
>
> tools/perf/Build | 1 +
> tools/perf/Documentation/perf-config.txt | 103 +++++++++++++++++++++++++++++++
> tools/perf/builtin-config.c | 66 ++++++++++++++++++++
> tools/perf/builtin.h | 1 +
> tools/perf/command-list.txt | 1 +
> tools/perf/perf.c | 1 +
> tools/perf/tests/dwarf-unwind.c | 22 ++++++-
> tools/perf/util/callchain.h | 1 +
> tools/perf/util/unwind-libdw.c | 53 +++++++++++-----
> tools/perf/util/unwind-libdw.h | 2 +
> tools/perf/util/unwind-libunwind.c | 60 +++++++++++-------
> 11 files changed, 272 insertions(+), 39 deletions(-)
> create mode 100644 tools/perf/Documentation/perf-config.txt
> create mode 100644 tools/perf/builtin-config.c

Hm, I noticed something weird - I think it started with this pull request - the
feature detection build messages come mixed with the regular build:

triton:~/tip/tools/perf> make
BUILD: Doing 'make -j12' parallel build

Auto-detecting system features:
... dwarf: [ on ]
... glibc: [ on ]
... gtk2: [ on ]
... libaudit: [ on ]
... libbfd: [ on ]
... libelf: [ on ]
... libnuma: [ on ]
... numa_num_possible_cpus: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libslang: [ on ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ on ]
... zlib: [ on ]
... lzma: [ on ]
... get_cpuid: [ on ]
... bpf: [ on ]

GEN common-cmds.h
CC perf-read-vdso32
CC perf-read-vdsox32
CC ui/gtk/browser.o
CC ui/gtk/hists.o
CC ui/gtk/setup.o
CC ui/gtk/util.o
CC ui/gtk/helpline.o
CC ui/gtk/progress.o
CC ui/gtk/annotate.o
CC util/abspath.o
CC fd/array.o

Auto-detecting system features:
CC event-parse.o
... libelf: [ on ]
PERF_VERSION = 4.4.rc2.g9327ca
... bpf: [ on ]

CC util/alias.o
CC libbpf.o


while normally we'd first do feature detection, then only do the build (knowing
which features to build).

Occasionally it also triggers a build failure:

CC plugin_kvm.o
CC arch/common.o
CC util/db-export.o
LD plugin_kmem-in.o
fixdep: error opening depfile: ./.plugin_kmem.o.d: No such file or directory
/home/mingo/tip/tools/build/Makefile.build:77: recipe for target 'plugin_kmem.o'
failed
make[3]: *** [plugin_kmem.o] Error 2
Makefile:189: recipe for target 'plugin_kmem-in.o' failed
make[2]: *** [plugin_kmem-in.o] Error 2
Makefile.perf:424: recipe for target 'install-traceevent-plugins' failed
make[1]: *** [install-traceevent-plugins] Error 2
make[1]: *** Waiting for unfinished jobs....

that too seems to be a result of unwanted, over-eager parallelism.

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/