* [PATCH] perf: arm64: Fix build with refcount checking
@ 2023-05-04 16:08 James Clark
2023-05-04 16:28 ` Ian Rogers
0 siblings, 1 reply; 3+ messages in thread
From: James Clark @ 2023-05-04 16:08 UTC (permalink / raw)
To: linux-perf-users
Cc: James Clark, John Garry, Will Deacon, Mike Leach, Leo Yan,
Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
Ian Rogers, Adrian Hunter, linux-arm-kernel, linux-kernel
With EXTRA_CFLAGS=-DREFCNT_CHECKING=1 and build-test, some unwrapped
map accesses appear. Wrap it in the new accessor to fix the error:
error: 'struct perf_cpu_map' has no member named 'map'
Signed-off-by: James Clark <james.clark@arm.com>
---
| 4 ++--
tools/perf/arch/arm64/util/pmu.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
--git a/tools/perf/arch/arm64/util/header.c b/tools/perf/arch/arm64/util/header.c
index d730666ab95d..80b9f6287fe2 100644
--- a/tools/perf/arch/arm64/util/header.c
+++ b/tools/perf/arch/arm64/util/header.c
@@ -29,8 +29,8 @@ static int _get_cpuid(char *buf, size_t sz, struct perf_cpu_map *cpus)
char path[PATH_MAX];
FILE *file;
- scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d"MIDR,
- sysfs, cpus->map[cpu]);
+ scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d" MIDR,
+ sysfs, RC_CHK_ACCESS(cpus)->map[cpu].cpu);
file = fopen(path, "r");
if (!file) {
diff --git a/tools/perf/arch/arm64/util/pmu.c b/tools/perf/arch/arm64/util/pmu.c
index fa143acb4c8d..ef1ed645097c 100644
--- a/tools/perf/arch/arm64/util/pmu.c
+++ b/tools/perf/arch/arm64/util/pmu.c
@@ -18,7 +18,7 @@ static struct perf_pmu *pmu__find_core_pmu(void)
* The cpumap should cover all CPUs. Otherwise, some CPUs may
* not support some events or have different event IDs.
*/
- if (pmu->cpus->nr != cpu__max_cpu().cpu)
+ if (RC_CHK_ACCESS(pmu->cpus)->nr != cpu__max_cpu().cpu)
return NULL;
return pmu;
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] perf: arm64: Fix build with refcount checking
2023-05-04 16:08 [PATCH] perf: arm64: Fix build with refcount checking James Clark
@ 2023-05-04 16:28 ` Ian Rogers
2023-05-10 17:39 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 3+ messages in thread
From: Ian Rogers @ 2023-05-04 16:28 UTC (permalink / raw)
To: James Clark
Cc: linux-perf-users, John Garry, Will Deacon, Mike Leach, Leo Yan,
Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
Adrian Hunter, linux-arm-kernel, linux-kernel
On Thu, May 4, 2023 at 9:09 AM James Clark <james.clark@arm.com> wrote:
>
> With EXTRA_CFLAGS=-DREFCNT_CHECKING=1 and build-test, some unwrapped
> map accesses appear. Wrap it in the new accessor to fix the error:
>
> error: 'struct perf_cpu_map' has no member named 'map'
>
> Signed-off-by: James Clark <james.clark@arm.com>
Thanks James and sorry for the breakage!
Acked-by: Ian Rogers <irogers@google.com>
Ian
> ---
> tools/perf/arch/arm64/util/header.c | 4 ++--
> tools/perf/arch/arm64/util/pmu.c | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tools/perf/arch/arm64/util/header.c b/tools/perf/arch/arm64/util/header.c
> index d730666ab95d..80b9f6287fe2 100644
> --- a/tools/perf/arch/arm64/util/header.c
> +++ b/tools/perf/arch/arm64/util/header.c
> @@ -29,8 +29,8 @@ static int _get_cpuid(char *buf, size_t sz, struct perf_cpu_map *cpus)
> char path[PATH_MAX];
> FILE *file;
>
> - scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d"MIDR,
> - sysfs, cpus->map[cpu]);
> + scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d" MIDR,
> + sysfs, RC_CHK_ACCESS(cpus)->map[cpu].cpu);
>
> file = fopen(path, "r");
> if (!file) {
> diff --git a/tools/perf/arch/arm64/util/pmu.c b/tools/perf/arch/arm64/util/pmu.c
> index fa143acb4c8d..ef1ed645097c 100644
> --- a/tools/perf/arch/arm64/util/pmu.c
> +++ b/tools/perf/arch/arm64/util/pmu.c
> @@ -18,7 +18,7 @@ static struct perf_pmu *pmu__find_core_pmu(void)
> * The cpumap should cover all CPUs. Otherwise, some CPUs may
> * not support some events or have different event IDs.
> */
> - if (pmu->cpus->nr != cpu__max_cpu().cpu)
> + if (RC_CHK_ACCESS(pmu->cpus)->nr != cpu__max_cpu().cpu)
> return NULL;
>
> return pmu;
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] perf: arm64: Fix build with refcount checking
2023-05-04 16:28 ` Ian Rogers
@ 2023-05-10 17:39 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2023-05-10 17:39 UTC (permalink / raw)
To: Ian Rogers
Cc: James Clark, linux-perf-users, John Garry, Will Deacon,
Mike Leach, Leo Yan, Peter Zijlstra, Ingo Molnar, Mark Rutland,
Alexander Shishkin, Jiri Olsa, Namhyung Kim, Adrian Hunter,
linux-arm-kernel, linux-kernel
Em Thu, May 04, 2023 at 09:28:21AM -0700, Ian Rogers escreveu:
> On Thu, May 4, 2023 at 9:09 AM James Clark <james.clark@arm.com> wrote:
> >
> > With EXTRA_CFLAGS=-DREFCNT_CHECKING=1 and build-test, some unwrapped
> > map accesses appear. Wrap it in the new accessor to fix the error:
> >
> > error: 'struct perf_cpu_map' has no member named 'map'
> >
> > Signed-off-by: James Clark <james.clark@arm.com>
>
> Thanks James and sorry for the breakage!
> Acked-by: Ian Rogers <irogers@google.com>
Thanks, applied.
- Arnaldo
> Ian
>
> > ---
> > tools/perf/arch/arm64/util/header.c | 4 ++--
> > tools/perf/arch/arm64/util/pmu.c | 2 +-
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/tools/perf/arch/arm64/util/header.c b/tools/perf/arch/arm64/util/header.c
> > index d730666ab95d..80b9f6287fe2 100644
> > --- a/tools/perf/arch/arm64/util/header.c
> > +++ b/tools/perf/arch/arm64/util/header.c
> > @@ -29,8 +29,8 @@ static int _get_cpuid(char *buf, size_t sz, struct perf_cpu_map *cpus)
> > char path[PATH_MAX];
> > FILE *file;
> >
> > - scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d"MIDR,
> > - sysfs, cpus->map[cpu]);
> > + scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d" MIDR,
> > + sysfs, RC_CHK_ACCESS(cpus)->map[cpu].cpu);
> >
> > file = fopen(path, "r");
> > if (!file) {
> > diff --git a/tools/perf/arch/arm64/util/pmu.c b/tools/perf/arch/arm64/util/pmu.c
> > index fa143acb4c8d..ef1ed645097c 100644
> > --- a/tools/perf/arch/arm64/util/pmu.c
> > +++ b/tools/perf/arch/arm64/util/pmu.c
> > @@ -18,7 +18,7 @@ static struct perf_pmu *pmu__find_core_pmu(void)
> > * The cpumap should cover all CPUs. Otherwise, some CPUs may
> > * not support some events or have different event IDs.
> > */
> > - if (pmu->cpus->nr != cpu__max_cpu().cpu)
> > + if (RC_CHK_ACCESS(pmu->cpus)->nr != cpu__max_cpu().cpu)
> > return NULL;
> >
> > return pmu;
> > --
> > 2.34.1
> >
--
- Arnaldo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-05-10 17:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-04 16:08 [PATCH] perf: arm64: Fix build with refcount checking James Clark
2023-05-04 16:28 ` Ian Rogers
2023-05-10 17:39 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).