Re: [PATCH v3 0/10] libperf and arm64 userspace counter access support

From: Rob Herring
Date: Tue Sep 22 2020 - 11:24:12 EST


On Sat, Sep 19, 2020 at 1:22 AM Itaru Kitayama <itaru.kitayama@xxxxxxxxx> wrote:
>
> Rob,
> V3 fails to build on ThunderX2:
>
> $ make
> BUILD: Doing 'make -j224' parallel build
>
> Auto-detecting system features:
> ... dwarf: [ on ]
> ... dwarf_getlocations: [ on ]
> ... glibc: [ on ]
> ... gtk2: [ OFF ]
> ... libbfd: [ on ]
> ... libcap: [ on ]
> ... libelf: [ on ]
> ... libnuma: [ on ]
> ... numa_num_possible_cpus: [ on ]
> ... libperl: [ on ]
> ... libpython: [ on ]
> ... libcrypto: [ on ]
> ... libunwind: [ OFF ]
> ... libdw-dwarf-unwind: [ on ]
> ... zlib: [ on ]
> ... lzma: [ on ]
> ... get_cpuid: [ OFF ]
> ... bpf: [ on ]
> ... libaio: [ on ]
> ... libzstd: [ on ]
> ... disassembler-four-args: [ on ]
>
> Makefile.config:604: No libunwind found. Please install

I believe this is an existing problem with your setup?

> libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR
> Makefile.config:730: GTK2 not found, disables GTK2 support. Please
> install gtk2-devel or libgtk2.0-dev
> Makefile.config:965: No libbabeltrace found, disables 'perf data' CTF
> format support, please install
> libbabeltrace-dev[el]/libbabeltrace-ctf-dev
> Makefile.config:1009: No openjdk development package found, please
> install JDK package, e.g. openjdk-8-jdk, java-1.8.0-openjdk-devel
> CC arch/arm64/tests/user-events.o
> CC arch/arm64/tests/arch-tests.o
> In file included from arch/arm64/tests/arch-tests.c:4:
> /home/users/itaru.kitayama/projects/linux/tools/perf/arch/arm64/include/arch-tests.h:10:5:
> error: redundant redeclaration of ‘test__arch_unwind_sample’
> [-Werror=redundant-decls]
> int test__arch_unwind_sample(struct perf_sample *sample,
> ^~~~~~~~~~~~~~~~~~~~~~~~
> In file included from arch/arm64/tests/arch-tests.c:3:
> /home/users/itaru.kitayama/projects/linux/tools/perf/tests/tests.h:134:5:
> note: previous declaration of ‘test__arch_unwind_sample’ was here
> int test__arch_unwind_sample(struct perf_sample *sample,
> ^~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> make[6]: *** [/home/users/itaru.kitayama/projects/linux/tools/build/Makefile.build:97:
> arch/arm64/tests/arch-tests.o] Error 1
> make[6]: *** Waiting for unfinished jobs....
> In file included from arch/arm64/tests/user-events.c:13:
> /home/users/itaru.kitayama/projects/linux/tools/perf/arch/arm64/include/arch-tests.h:10:5:
> error: redundant redeclaration of ‘test__arch_unwind_sample’
> [-Werror=redundant-decls]
> int test__arch_unwind_sample(struct perf_sample *sample,
> ^~~~~~~~~~~~~~~~~~~~~~~~
> In file included from arch/arm64/tests/user-events.c:12:
> /home/users/itaru.kitayama/projects/linux/tools/perf/tests/tests.h:134:5:
> note: previous declaration of ‘test__arch_unwind_sample’ was here
> int test__arch_unwind_sample(struct perf_sample *sample,
> ^~~~~~~~~~~~~~~~~~~~~~~~

These are due to the above issue.

> arch/arm64/tests/user-events.c: In function ‘perf_init’:
> arch/arm64/tests/user-events.c:106:7: error: too few arguments to
> function ‘perf_evsel__mmap’
> if (!perf_evsel__mmap(evsel)) {

I forgot to update this test. Should be 'perf_evsel__mmap(evsel,
SZ_4K)' here, but that's going to change to 'perf_evsel__mmap(evsel,
0)' with it changing from bytes to pages (minus 1).

Rob