From: Masayoshi Mizuma <msys.mizuma@gmail.com> To: Rob Herring <robh@kernel.org> Cc: Will Deacon <will@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Arnaldo Carvalho de Melo <acme@kernel.org>, Jiri Olsa <jolsa@redhat.com>, Mark Rutland <mark.rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>, Zachary.Leaf@arm.com, Raphael Gault <raphael.gault@arm.com>, Jonathan Cameron <Jonathan.Cameron@huawei.com>, Namhyung Kim <namhyung@kernel.org>, Itaru Kitayama <itaru.kitayama@gmail.com>, linux-arm-kernel <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v7 7/9] perf: arm64: Add test for userspace counter access on heterogeneous systems Date: Fri, 30 Apr 2021 16:16:25 -0400 [thread overview] Message-ID: <20210430201625.mpxeop6niyxnnvbk@gabell> (raw) In-Reply-To: <CAL_JsqLvHh5Ekpmb_au8Y9a7zF4w_izgaVnhzi9255XuqQUjrQ@mail.gmail.com> On Fri, Apr 30, 2021 at 01:20:58PM -0500, Rob Herring wrote: > On Fri, Apr 30, 2021 at 1:17 PM Rob Herring <robh@kernel.org> wrote: > > > > On Fri, Apr 30, 2021 at 11:46 AM Masayoshi Mizuma <msys.mizuma@gmail.com> wrote: > > > > > > On Mon, Apr 19, 2021 at 10:15:09PM -0500, Rob Herring wrote: > > > > Userspace counter access only works on heterogeneous systems with some > > > > restrictions. The userspace process must be pinned to a homogeneous > > > > subset of CPUs and must open the corresponding PMU for those CPUs. This > > > > commit adds a test implementing these requirements. > > > > > > > > Signed-off-by: Rob Herring <robh@kernel.org> > > > > --- > > > > v6: > > > > - Add a check on cap_user_rdpmc > > > > v5: > > > > - Adapt to libperf mmap API changes > > > > v4: > > > > - Update perf_evsel__mmap params > > > > v2: > > > > - Drop all but heterogeneous test as others covered by libperf tests > > > > - Rework to use libperf > > > > --- > > > > tools/perf/arch/arm64/include/arch-tests.h | 7 + > > > > tools/perf/arch/arm64/tests/Build | 1 + > > > > tools/perf/arch/arm64/tests/arch-tests.c | 4 + > > > > tools/perf/arch/arm64/tests/user-events.c | 177 +++++++++++++++++++++ > > > > 4 files changed, 189 insertions(+) > > > > create mode 100644 tools/perf/arch/arm64/tests/user-events.c > > > > > > > > diff --git a/tools/perf/arch/arm64/include/arch-tests.h b/tools/perf/arch/arm64/include/arch-tests.h > > > > index 90ec4c8cb880..380ad34a3f09 100644 > > > > --- a/tools/perf/arch/arm64/include/arch-tests.h > > > > +++ b/tools/perf/arch/arm64/include/arch-tests.h > > > > @@ -2,11 +2,18 @@ > > > > #ifndef ARCH_TESTS_H > > > > #define ARCH_TESTS_H > > > > > > > > +#include <linux/compiler.h> > > > > + > > > > #ifdef HAVE_DWARF_UNWIND_SUPPORT > > > > struct thread; > > > > struct perf_sample; > > > > +int test__arch_unwind_sample(struct perf_sample *sample, > > > > + struct thread *thread); > > > > #endif > > > > > > Hello, > > > > > > I got the following compile error with aarch64 on Fedora33. > > > > > > # make tools/perf > > > ... > > > In file included from arch/arm64/tests/arch-tests.c:4: > > > /root//libperf_v7/tools/perf/arch/arm64/include/arch-tests.h:10:5: error: redundant redeclaration of ‘test__arch_unwind_sample’ [-Werror=redundant-decls] > > > 10 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > In file included from arch/arm64/tests/arch-tests.c:3: > > > /root//libperf_v7/tools/perf/tests/tests.h:140:5: note: previous declaration of ‘test__arch_unwind_sample’ was here > > > 140 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > cc1: all warnings being treated as errors > > > make[8]: *** [/root//libperf_v7/tools/build/Makefile.build:97: /root/libperf_v7/tools/perf/arch/arm64/tests/arch-tests.o] Error 1 > > > make[8]: *** Waiting for unfinished jobs.... > > > In file included from arch/arm64/tests/user-events.c:13: > > > /root//libperf_v7/tools/perf/arch/arm64/include/arch-tests.h:10:5: error: redundant redeclaration of ‘test__arch_unwind_sample’ [-Werror=redundant-decls] > > > 10 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > In file included from arch/arm64/tests/user-events.c:12: > > > /root//libperf_v7/tools/perf/tests/tests.h:140:5: note: previous declaration of ‘test__arch_unwind_sample’ was here > > > 140 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > cc1: all warnings being treated as errors > > > ... > > > > > > The error is gone after the following patch is applied. > > > > Thanks. Honestly, I'm not sure why it was there in the first place. > > Looking at the git history and this series history doesn't give any > > clues. > > Well, except that both x86 and powerpc have the same hunk in their > arch-tests.h. Do you see errors on those arches? I didn't see the errors on x86_64. It seems that the errors happen on aarch64 because test__arch_unwind_sample() is defined only if the arch is arm or arm64 in tools/perf/tests/tests.h: #if defined(__arm__) || defined(__aarch64__) #ifdef HAVE_DWARF_UNWIND_SUPPORT struct thread; struct perf_sample; int test__arch_unwind_sample(struct perf_sample *sample, struct thread *thread); #endif #endif The following patch may be another solution which is same way as commit d8b167f9d8af ("perf tests: Move x86 tests into arch directory"). --- tools/perf/arch/arm64/tests/dwarf-unwind.c | 1 + tools/perf/tests/dwarf-unwind.c | 2 +- tools/perf/tests/tests.h | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/perf/arch/arm64/tests/dwarf-unwind.c b/tools/perf/arch/arm64/tests/dwarf-unwind.c index 46147a483..02ba87f2b 100644 --- a/tools/perf/arch/arm64/tests/dwarf-unwind.c +++ b/tools/perf/arch/arm64/tests/dwarf-unwind.c @@ -7,6 +7,7 @@ #include "event.h" #include "debug.h" #include "tests/tests.h" +#include "arch-tests.h" #define STACK_SIZE 8192 diff --git a/tools/perf/tests/dwarf-unwind.c b/tools/perf/tests/dwarf-unwind.c index 83638097c..daffe2d66 100644 --- a/tools/perf/tests/dwarf-unwind.c +++ b/tools/perf/tests/dwarf-unwind.c @@ -17,7 +17,7 @@ #include "callchain.h" #include "util/synthetic-events.h" -#if defined (__x86_64__) || defined (__i386__) || defined (__powerpc__) +#if defined (__x86_64__) || defined (__i386__) || defined (__powerpc__) || defined(__aarch64__) #include "arch-tests.h" #endif diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h index b85f00530..40cbdfa46 100644 --- a/tools/perf/tests/tests.h +++ b/tools/perf/tests/tests.h @@ -133,7 +133,7 @@ bool test__bp_account_is_supported(void); bool test__wp_is_supported(void); bool test__tsc_is_supported(void); -#if defined(__arm__) || defined(__aarch64__) +#if defined(__arm__) #ifdef HAVE_DWARF_UNWIND_SUPPORT struct thread; struct perf_sample; -- Thanks, Masa
WARNING: multiple messages have this Message-ID (diff)
From: Masayoshi Mizuma <msys.mizuma@gmail.com> To: Rob Herring <robh@kernel.org> Cc: Will Deacon <will@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Arnaldo Carvalho de Melo <acme@kernel.org>, Jiri Olsa <jolsa@redhat.com>, Mark Rutland <mark.rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>, Zachary.Leaf@arm.com, Raphael Gault <raphael.gault@arm.com>, Jonathan Cameron <Jonathan.Cameron@huawei.com>, Namhyung Kim <namhyung@kernel.org>, Itaru Kitayama <itaru.kitayama@gmail.com>, linux-arm-kernel <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v7 7/9] perf: arm64: Add test for userspace counter access on heterogeneous systems Date: Fri, 30 Apr 2021 16:16:25 -0400 [thread overview] Message-ID: <20210430201625.mpxeop6niyxnnvbk@gabell> (raw) In-Reply-To: <CAL_JsqLvHh5Ekpmb_au8Y9a7zF4w_izgaVnhzi9255XuqQUjrQ@mail.gmail.com> On Fri, Apr 30, 2021 at 01:20:58PM -0500, Rob Herring wrote: > On Fri, Apr 30, 2021 at 1:17 PM Rob Herring <robh@kernel.org> wrote: > > > > On Fri, Apr 30, 2021 at 11:46 AM Masayoshi Mizuma <msys.mizuma@gmail.com> wrote: > > > > > > On Mon, Apr 19, 2021 at 10:15:09PM -0500, Rob Herring wrote: > > > > Userspace counter access only works on heterogeneous systems with some > > > > restrictions. The userspace process must be pinned to a homogeneous > > > > subset of CPUs and must open the corresponding PMU for those CPUs. This > > > > commit adds a test implementing these requirements. > > > > > > > > Signed-off-by: Rob Herring <robh@kernel.org> > > > > --- > > > > v6: > > > > - Add a check on cap_user_rdpmc > > > > v5: > > > > - Adapt to libperf mmap API changes > > > > v4: > > > > - Update perf_evsel__mmap params > > > > v2: > > > > - Drop all but heterogeneous test as others covered by libperf tests > > > > - Rework to use libperf > > > > --- > > > > tools/perf/arch/arm64/include/arch-tests.h | 7 + > > > > tools/perf/arch/arm64/tests/Build | 1 + > > > > tools/perf/arch/arm64/tests/arch-tests.c | 4 + > > > > tools/perf/arch/arm64/tests/user-events.c | 177 +++++++++++++++++++++ > > > > 4 files changed, 189 insertions(+) > > > > create mode 100644 tools/perf/arch/arm64/tests/user-events.c > > > > > > > > diff --git a/tools/perf/arch/arm64/include/arch-tests.h b/tools/perf/arch/arm64/include/arch-tests.h > > > > index 90ec4c8cb880..380ad34a3f09 100644 > > > > --- a/tools/perf/arch/arm64/include/arch-tests.h > > > > +++ b/tools/perf/arch/arm64/include/arch-tests.h > > > > @@ -2,11 +2,18 @@ > > > > #ifndef ARCH_TESTS_H > > > > #define ARCH_TESTS_H > > > > > > > > +#include <linux/compiler.h> > > > > + > > > > #ifdef HAVE_DWARF_UNWIND_SUPPORT > > > > struct thread; > > > > struct perf_sample; > > > > +int test__arch_unwind_sample(struct perf_sample *sample, > > > > + struct thread *thread); > > > > #endif > > > > > > Hello, > > > > > > I got the following compile error with aarch64 on Fedora33. > > > > > > # make tools/perf > > > ... > > > In file included from arch/arm64/tests/arch-tests.c:4: > > > /root//libperf_v7/tools/perf/arch/arm64/include/arch-tests.h:10:5: error: redundant redeclaration of ‘test__arch_unwind_sample’ [-Werror=redundant-decls] > > > 10 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > In file included from arch/arm64/tests/arch-tests.c:3: > > > /root//libperf_v7/tools/perf/tests/tests.h:140:5: note: previous declaration of ‘test__arch_unwind_sample’ was here > > > 140 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > cc1: all warnings being treated as errors > > > make[8]: *** [/root//libperf_v7/tools/build/Makefile.build:97: /root/libperf_v7/tools/perf/arch/arm64/tests/arch-tests.o] Error 1 > > > make[8]: *** Waiting for unfinished jobs.... > > > In file included from arch/arm64/tests/user-events.c:13: > > > /root//libperf_v7/tools/perf/arch/arm64/include/arch-tests.h:10:5: error: redundant redeclaration of ‘test__arch_unwind_sample’ [-Werror=redundant-decls] > > > 10 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > In file included from arch/arm64/tests/user-events.c:12: > > > /root//libperf_v7/tools/perf/tests/tests.h:140:5: note: previous declaration of ‘test__arch_unwind_sample’ was here > > > 140 | int test__arch_unwind_sample(struct perf_sample *sample, > > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > cc1: all warnings being treated as errors > > > ... > > > > > > The error is gone after the following patch is applied. > > > > Thanks. Honestly, I'm not sure why it was there in the first place. > > Looking at the git history and this series history doesn't give any > > clues. > > Well, except that both x86 and powerpc have the same hunk in their > arch-tests.h. Do you see errors on those arches? I didn't see the errors on x86_64. It seems that the errors happen on aarch64 because test__arch_unwind_sample() is defined only if the arch is arm or arm64 in tools/perf/tests/tests.h: #if defined(__arm__) || defined(__aarch64__) #ifdef HAVE_DWARF_UNWIND_SUPPORT struct thread; struct perf_sample; int test__arch_unwind_sample(struct perf_sample *sample, struct thread *thread); #endif #endif The following patch may be another solution which is same way as commit d8b167f9d8af ("perf tests: Move x86 tests into arch directory"). --- tools/perf/arch/arm64/tests/dwarf-unwind.c | 1 + tools/perf/tests/dwarf-unwind.c | 2 +- tools/perf/tests/tests.h | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/perf/arch/arm64/tests/dwarf-unwind.c b/tools/perf/arch/arm64/tests/dwarf-unwind.c index 46147a483..02ba87f2b 100644 --- a/tools/perf/arch/arm64/tests/dwarf-unwind.c +++ b/tools/perf/arch/arm64/tests/dwarf-unwind.c @@ -7,6 +7,7 @@ #include "event.h" #include "debug.h" #include "tests/tests.h" +#include "arch-tests.h" #define STACK_SIZE 8192 diff --git a/tools/perf/tests/dwarf-unwind.c b/tools/perf/tests/dwarf-unwind.c index 83638097c..daffe2d66 100644 --- a/tools/perf/tests/dwarf-unwind.c +++ b/tools/perf/tests/dwarf-unwind.c @@ -17,7 +17,7 @@ #include "callchain.h" #include "util/synthetic-events.h" -#if defined (__x86_64__) || defined (__i386__) || defined (__powerpc__) +#if defined (__x86_64__) || defined (__i386__) || defined (__powerpc__) || defined(__aarch64__) #include "arch-tests.h" #endif diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h index b85f00530..40cbdfa46 100644 --- a/tools/perf/tests/tests.h +++ b/tools/perf/tests/tests.h @@ -133,7 +133,7 @@ bool test__bp_account_is_supported(void); bool test__wp_is_supported(void); bool test__tsc_is_supported(void); -#if defined(__arm__) || defined(__aarch64__) +#if defined(__arm__) #ifdef HAVE_DWARF_UNWIND_SUPPORT struct thread; struct perf_sample; -- Thanks, Masa _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-04-30 20:16 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-20 3:15 [PATCH v7 0/9] arm64 userspace counter access support Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 1/9] arm64: Restrict undef hook for cpufeature registers Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 2/9] arm64: pmu: Add function implementation to update event index in userpage Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 3/9] arm64: perf: Enable PMU counter direct access for perf event Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 4/9] drivers/perf: arm_pmu: Export the per_cpu cpu_armpmu Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 5/9] arm64: perf: Add userspace counter access disable switch Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 6/9] libperf: Add arm64 support to perf_mmap__read_self() Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 7/9] perf: arm64: Add test for userspace counter access on heterogeneous systems Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-30 16:46 ` Masayoshi Mizuma 2021-04-30 16:46 ` Masayoshi Mizuma 2021-04-30 18:17 ` Rob Herring 2021-04-30 18:17 ` Rob Herring 2021-04-30 18:20 ` Rob Herring 2021-04-30 18:20 ` Rob Herring 2021-04-30 20:16 ` Masayoshi Mizuma [this message] 2021-04-30 20:16 ` Masayoshi Mizuma 2021-05-13 9:05 ` nakamura.shun 2021-05-13 9:05 ` nakamura.shun 2021-05-13 12:37 ` Rob Herring 2021-05-13 12:37 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 8/9] perf: arm64: Add tests for 32-bit and 64-bit counter size userspace access Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-20 3:15 ` [PATCH v7 9/9] Documentation: arm64: Document PMU counters access from userspace Rob Herring 2021-04-20 3:15 ` Rob Herring 2021-04-30 18:59 ` [PATCH v7 0/9] arm64 userspace counter access support Arnaldo Carvalho de Melo 2021-04-30 18:59 ` Arnaldo Carvalho de Melo 2021-05-03 14:56 ` Rob Herring 2021-05-03 14:56 ` Rob Herring
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210430201625.mpxeop6niyxnnvbk@gabell \ --to=msys.mizuma@gmail.com \ --cc=Jonathan.Cameron@huawei.com \ --cc=Zachary.Leaf@arm.com \ --cc=acme@kernel.org \ --cc=alexander.shishkin@linux.intel.com \ --cc=catalin.marinas@arm.com \ --cc=honnappa.nagarahalli@arm.com \ --cc=itaru.kitayama@gmail.com \ --cc=jolsa@redhat.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=mingo@redhat.com \ --cc=namhyung@kernel.org \ --cc=peterz@infradead.org \ --cc=raphael.gault@arm.com \ --cc=robh@kernel.org \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.