lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP-5=fUsMcGH_OqOwgUA488LgqQtUeRJf8kVF=P9V8w_eqdouw@mail.gmail.com>
Date: Tue, 3 Feb 2026 08:33:49 -0800
From: Ian Rogers <irogers@...gle.com>
To: Arnaldo Carvalho de Melo <acme@...nel.org>
Cc: Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>, 
	Namhyung Kim <namhyung@...nel.org>, 
	Alexander Shishkin <alexander.shishkin@...ux.intel.com>, Jiri Olsa <jolsa@...nel.org>, 
	Adrian Hunter <adrian.hunter@...el.com>, James Clark <james.clark@...aro.org>, 
	Leo Yan <leo.yan@....com>, linux-perf-users@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] perf build: Reduce pmu-events related copying and mkdirs

On Tue, Feb 3, 2026 at 6:50 AM Arnaldo Carvalho de Melo <acme@...nel.org> wrote:
>
> On Mon, Feb 02, 2026 at 10:27:25PM -0800, Ian Rogers wrote:
> > On Mon, Feb 2, 2026 at 9:13 PM Ian Rogers <irogers@...gle.com> wrote:
> > >
> > > When building to an output directory the previous code would remove
> > > files and then copy the source files over. Each source file copy would
> > > have a rule to make its directory. All json for every architecture was
> > > considered a source file. This led to unnecessary copying as a file
> > > would be deleted and then the same file copied again, unnecessary
> > > directory making, and copying of files not used in the build. A
> > > side-effect would be a lot of build messages.
> > >
> > > This change makes it so that all computed output files are created and
> > > then compared to all files in the OUTPUT directory. By filtering out
> > > the files that would be copied, unnecessary files can be determined
> > > and then deleted - note, this is a phony target which would remake the
> > > pmu-events.c if always depended upon, and so the dependency is
> > > conditional on there being files to remove. This has some overhead as
> > > the $(OUTPUT)/pmu-events is "find" over rather than just "rm -fr", but
> > > the savings from unnecessary copying, etc. should make up for this new
> > > make overhead. The copy target just does copying but has a dependency
> > > on the directory it needs being built, avoiding repetitive mkdirs. The
> > > source files for copying only consider the JEVENTS_ARCH unless the
> > > JEVENTS_ARCH is all. The metric json is only generated if appropriate,
> > > rather than always being generated and jevents.py deciding whether or
> > > not to use the files. The mypy and pylint targets are fixed as
> > > variable names had changed but the rules not updated.
> > >
> > > The line count of a build with "make -C tools/perf O=/tmp/perf clean all"
> > > prior to this change was 2181 lines, after this change it is 1596
> > > lines. This is a reduction of 585 lines or about 27%.
> > >
> > > The generated pmu-events.c for JEVENTS_ARCH "x86" and "all" were
> > > validated as being identical after this change.
> > >
> > > Signed-off-by: Ian Rogers <irogers@...gle.com>
> >
> > I just wanted to add a note on testing this change. You can see the
> > rules run by say building JEVENTS_ARCH=arm64 and then switching to
> > JEVENTS_ARCH=x86. The first build will copy the arm64 json to the
> > OUTPUT directory, the second will find the arm64 json shouldn't be in
> > the OUTPUT directory and remove it while copying/generating in all the
> > x86 json.
>
> I'm getting this warning even after a 'make -C tools/ clean':
>
> pmu-events/Build:136: warning: overriding recipe for target '/tmp/build/perf-tools-next/pmu-events/arch/common/common/legacy-cache.json'
> pmu-events/Build:44: warning: ignoring old recipe for target '/tmp/build/perf-tools-next/pmu-events/arch/common/common/legacy-cache.json'
>
>
> Everytime I build with:
>
> ⬢ [acme@...lbx perf-tools-next]$ alias m
> alias m='rm -rf ~/libexec/perf-core/ ; make CORESIGHT=1 -k O=/tmp/build/$(basename $PWD)/ -C tools/perf install-bin && perf test import && cat /tmp/build/$(basename $PWD)/feature/test-all.make.output'
> ⬢ [acme@...lbx perf-tools-next]$

Thanks, the issue is that there is a find to create SRC_JSON:
```
SRC_DIR := pmu-events/arch
ifeq ($(JEVENTS_ARCH),all)
SRC_JSON := $(shell find $(SRC_DIR) -name '*.json' -o -name '*.csv')
else
SRC_JSON := $(shell find $(SRC_DIR)/common $(SRC_DIR)/test
$(SRC_DIR)/$(JEVENTS_ARCH) -name '*.json' -o -name '*.csv')
endif
```
which will pick up generated json from a build in the tools/perf
directory. Doing "cd tools/perf; make clean" will resolve this. The
problem happens as we generate a copy rule for every file in SRC_JSON
and for generated files the target names match:
```
define COPY_RULE
$(2): $(1) | $(3)
$$(Q)$$(call echo-cmd,cp)cp $(1) $(2)
endef
$(foreach src,$(SRC_JSON), \
    $(eval dest := $(patsubst $(SRC_DIR)/%,$(OUT_DIR)/%,$(src))) \
    $(eval ddir := $(patsubst %/,%,$(dir $(dest)))) \
    $(eval $(call COPY_RULE,$(src),$(dest),$(ddir))) \
)
```
I've created a v2 patch that avoids generating a copy rule if the
destination matches something in GEN_JSON, which does the right thing
wrt generating rather than copying, and it also avoids the warning.

Thanks,
Ian

> - Arnaldo
>
>
> > ```
> > $ make -C tools/perf O=/tmp/perf3 JEVENTS_ARCH=arm64 clean all
> > ...
> >  MKDIR   /tmp/perf3/pmu-events/arch/common/common
> >  MKDIR   /tmp/perf3/pmu-events/arch/test/test_soc/sys
> >  MKDIR   /tmp/perf3/pmu-events/arch/test/test_soc/cpu
> >  COPY    /tmp/perf3/ <- pmu-events/arch/test/arch-std-events.json
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64/hisilicon/hip08
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64/hisilicon/hip09/sys
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64/cavium/thunderx2
> >  COPY    /tmp/perf3/ <- pmu-events/arch/arm64/recommended.json
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64/thead/yitian710/sys
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64/ampere/emag
> >  MKDIR   /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex
> > ...
> >  GEN     /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57-a72/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/extra-metrics.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/common/common/legacy-hardware.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/test/test_soc/sys/uncore.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/test/test_soc/cpu/metrics.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/test/test_soc/cpu/uncore.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/test/test_soc/cpu/other.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/test/test_soc/cpu/cache.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/test/test_soc/cpu/branch.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/arm64/mapfile.csv
> >  COPY    /tmp/perf3/ <- pmu-events/arch/arm64/hisilicon/hip08/uncore-ddrc.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
> >  ...
> >  TEST    /tmp/perf3/pmu-events/empty-pmu-events.log
> >  GEN     /tmp/perf3/pmu-events/pmu-events.c
> > ...
> > $ make -C tools/perf O=/tmp/perf3 JEVENTS_ARCH=x86 all
> >  MKDIR   /tmp/perf3/pmu-events/arch/x86
> >  MKDIR   /tmp/perf3/pmu-events/arch/x86/elkhartlake
> >  MKDIR   /tmp/perf3/pmu-events/arch/x86/rocketlake
> >  MKDIR   /tmp/perf3/pmu-events/arch/x86/broadwellde
> > ...
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen1/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen2/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen3/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen4/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen5/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen6/extra-metrics.json
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen1/extra-metricgroups.json
> >  GEN     /tmp/perf3/pmu-events/arch/x86/amdzen2/extra-metricgroups.json
> > ...
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/mapfile.csv
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/elkhartlake/ehl-metrics.json
> >  RM      /tmp/perf3/pmu-events/arch/arm64/mapfile.csv
> > /tmp/perf3/pmu-events/arch/arm64/sbsa.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json
> > /tmp/per
> > f3/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx93/sys/ddrc.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx93/sy
> > s/metrics.json /tmp/perf3/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
> > /tmp/perf3/pmu-events/arch/
> > arm64/freescale/imx8mn/sys/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx94/sys/ddrc.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx94/sys/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx91/sys/ddrc.json /tmp/
> > perf3/pmu-events/arch/arm64/freescale/imx91/sys/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx95/sys/ddrc.json
> > /tmp/perf3/pmu-events/arch/arm64/freescale/imx95/sys/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a53
> > /branch.json /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a53/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a53/other.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-
> > a53/bus.json /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a53/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a53/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a53/extra-metrics.json
> > /tmp/perf3/pmu-events/arc
> > h/arm64/arm/cortex-a73/etm.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/instruction.json
> > /tmp/perf3/pmu-events
> > /arch/arm64/arm/cortex-a73/mmu.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/memory.json
> > /tmp/perf3/pmu-events/
> > arch/arm64/arm/cortex-a73/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a73/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/ll_cache
> > .json /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/spec_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/l3_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/stall.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/ne
> > overse-v1/tlb.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/general.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/retired.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64
> > /arm/neoverse-v1/spe.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/l1i_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/fp_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/bus.json
> > /tmp/perf3/pmu-events/
> > arch/arm64/arm/neoverse-v1/l1d_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/sve.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/exception.json
> > /tmp/perf3/p
> > mu-events/arch/arm64/arm/neoverse-v1/l2_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v1/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a
> > 75/etm.json /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cort
> > ex-a75/mmu.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/corte
> > x-a75/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a75/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/branch.json
> > /tmp/perf3/pmu
> > -events/arch/arm64/arm/cortex-a65-e1/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/ifu.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/pipeline.j
> > son /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-
> > a65-e1/dpu.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a65-e1/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cmn/sys/cmn.json
> > /tmp/perf3/pmu-events/
> > arch/arm64/arm/cmn/sys/metric.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/pipeline.json
> > /tmp/perf3/p
> > mu-events/arch/arm64/arm/cortex-a510/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/trace.json /tmp/perf3
> > /pmu-events/arch/arm64/arm/cortex-a510/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a510/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neove
> > rse-v3/ll_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/spec_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/stall.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/general.json
> > /tmp/perf3/pmu-events/arc
> > h/arm64/arm/neoverse-v3/tlb.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/retired.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/brbe.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/metrics.json
> > /tmp/perf3/pmu-events
> > /arch/arm64/arm/neoverse-v3/spe.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/l1i_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/fp_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/bus.json /tmp/perf3/
> > pmu-events/arch/arm64/arm/neoverse-v3/l1d_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/sve.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/exception.json /
> > tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/l2_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-v3/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/a
> > rm/cortex-a77/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a77/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a77/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a77/pipeline.json
> > /tmp/perf3/pmu-events/arc
> > h/arm64/arm/cortex-a77/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a77/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a77/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a77/extra-metricgroups.json
> > /tmp/perf3
> > /pmu-events/arch/arm64/arm/cortex-a77/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57-a72/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57-a72/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57
> > -a72/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57-a72/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57-a72/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57-a72/exception.json
> > /tmp/perf3/pmu-events/arch/ar
> > m64/arm/cortex-a57-a72/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a57-a72/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/ll_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/spec_op
> > eration.json /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/l3_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/stall.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/tlb.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neover
> > se-n1/general.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/retired.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/spe.json
> > /tmp/perf3/pmu-events/arch/arm64/arm
> > /neoverse-n1/l1i_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/l1d_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/memory.json
> > /tmp/perf3/pmu-events/arch
> > /arm64/arm/neoverse-n1/l2_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n1/extra-metrics.
> > json /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/ll_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/l3_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/spec_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/
> > neoverse-n3/stall.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/tlb.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/general.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/retired.json
> > /tmp/perf3/pmu-events/arch/arm64
> > /arm/neoverse-n3/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/spe.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/l1i_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/fp_operation.json
> > /tmp/perf3/pmu-eve
> > nts/arch/arm64/arm/neoverse-n3/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/l1d_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/sve.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/trace.json
> > /tmp/perf3/pmu-
> > events/arch/arm64/arm/neoverse-n3/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/l2_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/extra-metricgro
> > ups.json /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n3/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x1/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x1/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/
> > cortex-x1/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x1/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x1/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x1/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cor
> > tex-x1/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x1/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x1/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x2/branch.json
> > /tmp/perf3/pmu-even
> > ts/arch/arm64/arm/cortex-x2/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x2/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x2/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x2/bus.json
> > /tmp/perf3/pmu-ev
> > ents/arch/arm64/arm/cortex-x2/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x2/trace.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x2/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-x2/extra-metricgroups.json
> > /tmp
> > /perf3/pmu-events/arch/arm64/arm/cortex-x2/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/ca
> > che.json /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/
> > extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a34/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/instruction.json
> > /tmp/perf3/pmu-events
> > /arch/arm64/arm/cortex-a55/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/bus.json
> > /tmp/perf3/pmu-event
> > s/arch/arm64/arm/cortex-a55/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a55/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/spe
> > c_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/ll_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/l3_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/stall.json
> > /tmp/perf3/pmu-events/arc
> > h/arm64/arm/neoverse-n2-v2/tlb.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/general.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/retired.json
> > /tmp/p
> > erf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/spe.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/l1i_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/fp_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse
> > -n2-v2/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/l1d_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/sve.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/trace.json
> > /tmp/perf3/pmu-events/arch/arm
> > 64/arm/neoverse-n2-v2/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/l2_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/extra-metricgroups
> > .json /tmp/perf3/pmu-events/arch/arm64/arm/neoverse-n2-v2/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a35/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a35/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/ar
> > m/cortex-a35/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a35/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a35/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a35/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/
> > arm/cortex-a35/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a35/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/instruction.json /tmp
> > /perf3/pmu-events/arch/arm64/arm/cortex-a710/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/trace.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a710/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/co
> > rtex-a710/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a76/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a76/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a76/cache.json
> > /tmp/perf3/pmu-events/ar
> > ch/arm64/arm/cortex-a76/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a76/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a76/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a76/memory.json
> > /tmp/perf3/pmu-even
> > ts/arch/arm64/arm/cortex-a76/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a76/extra-metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/instructi
> > on.json /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/mem
> > ory.json /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/extra-metricgroups.json
> > /tmp/perf3/pmu-events/arch/arm64/arm/cortex-a78/extra-metrics.json
> > /tmp/perf3/pmu-events/arch
> > /arm64/fujitsu/a64fx/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/a64fx/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/a64fx/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/a64fx/other.json
> > /tmp/perf3/pmu-events/ar
> > ch/arm64/fujitsu/a64fx/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/a64fx/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/a64fx/sve.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/a64fx/cycle.json
> > /tmp/perf3/pmu-events/arch/arm
> > 64/fujitsu/a64fx/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/a64fx/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/ll_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/spec_operation.json
> > /tmp/perf3/pmu-e
> > vents/arch/arm64/fujitsu/monaka/l3_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/stall.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/tlb.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/general.json
> > /tmp/perf3/pmu
> > -events/arch/arm64/fujitsu/monaka/retired.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/gcycle.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/cycle_accounting.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/pipeline.jso
> > n /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/l1i_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/fp_operation.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/core-imp-def.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu
> > /monaka/l1d_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/sve.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/trace.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/energy.json
> > /tmp/perf3/pmu-events/arch/arm64/fujit
> > su/monaka/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/l2_cache.json
> > /tmp/perf3/pmu-events/arch/arm64/fujitsu/monaka/hwpf.json
> > /tmp/perf3/pmu-events/arch/arm64
> > /common-and-microarch.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/cache.json
> > /tmp/perf3/pmu-ev
> > ents/arch/arm64/ampere/ampereonex/mmu.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/intrinsic.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/spe.json /tmp
> > /perf3/pmu-events/arch/arm64/ampere/ampereonex/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/core-imp-def.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/bus.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereo
> > nex/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereonex/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/emag/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/emag/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/amp
> > ere/emag/clock.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/emag/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/emag/intrinsic.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/emag/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/em
> > ag/bus.json /tmp/perf3/pmu-events/arch/arm64/ampere/emag/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/emag/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/branch.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampere
> > one/instruction.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/cache.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/intrinsic.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/metrics.json
> > /tmp/perf3/pmu-events/arch/
> > arm64/ampere/ampereone/spe.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/pipeline.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/core-imp-def.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/bus.json
> > /tmp/perf3/pmu
> > -events/arch/arm64/ampere/ampereone/memory.json
> > /tmp/perf3/pmu-events/arch/arm64/ampere/ampereone/exception.json
> > /tmp/perf3/pmu-events/arch/arm64/thead/yitian710/sys/ali_drw.json
> > /tmp/perf3/pmu-events/arch/arm64/thead/yitian710/sys/metri
> > cs.json /tmp/perf3/pmu-events/arch/arm64/recommended.json
> > /tmp/perf3/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
> > /tmp/perf3/pmu-events/arch/arm64/hisilicon/hip09/sys/uncore-cpa.json
> > /tmp/perf3/pmu-events/arch/arm64/hisilicon
> > /hip08/uncore-l3c.json
> > /tmp/perf3/pmu-events/arch/arm64/hisilicon/hip08/metrics.json
> > /tmp/perf3/pmu-events/arch/arm64/hisilicon/hip08/uncore-hha.json
> > /tmp/perf3/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
> > /tmp/perf3/pmu-event
> > s/arch/arm64/hisilicon/hip08/uncore-ddrc.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/elkhartlake/memory.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/elkhartlake/frontend.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/elkhartlake/virtual-memory.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/elkhartlake/pipeline.json
> > ...
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/knightslanding/uncore-cache.json
> >  COPY    /tmp/perf3/ <- pmu-events/arch/x86/knightslanding/cache.json
> >  GEN     /tmp/perf3/pmu-events/test-empty-pmu-events.c
> >  TEST    /tmp/perf3/pmu-events/empty-pmu-events.log
> >  GEN     /tmp/perf3/pmu-events/pmu-events.c
> >  CC      /tmp/perf3/pmu-events/pmu-events.o
> >  LD      /tmp/perf3/pmu-events/pmu-events-in.o
> > ...
> > ```
> >
> > Thanks,
> > Ian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ