linux/tools/perf/tests
Ian Rogers 13d62dcae9 perf test: Avoid uncore_imc/clockticks in uniquification test
[ Upstream commit edaeb4bcf1 ]

The detection of uncore_imc may happen for free running PMUs and the
clockticks event may be present on uncore_clock. Rewrite the test to
detect duplicated/deduplicated events from perf list, not hardcoded to
uncore_imc.

If perf stat fails then assume it is permissions and skip the test.

Committer testing:

Before:

  root@x1:~# perf test -vv uniquifyi
   96: perf stat events uniquifying:
  --- start ---
  test child forked, pid 220851
  stat event uniquifying test
  grep: Unmatched [, [^, [:, [., or [=
  Event is not uniquified [Failed]
  perf stat -e clockticks -A -o /tmp/__perf_test.stat_output.X7ChD -- true
  # started on Fri Sep 19 16:48:38 2025

   Performance counter stats for 'system wide':

  CPU0            2,310,956      uncore_clock/clockticks/

         0.001746771 seconds time elapsed

  ---- end(-1) ----
   96: perf stat events uniquifying                                    : FAILED!
  root@x1:~#

After:

  root@x1:~# perf test -vv uniquifyi
   96: perf stat events uniquifying:
  --- start ---
  test child forked, pid 222366
  Uniquification of PMU sysfs events test
  Testing event uncore_imc_free_running/data_read/ is uniquified to uncore_imc_free_running_0/data_read/
  Testing event uncore_imc_free_running/data_total/ is uniquified to uncore_imc_free_running_0/data_total/
  Testing event uncore_imc_free_running/data_write/ is uniquified to uncore_imc_free_running_0/data_write/
  Testing event uncore_imc_free_running/data_read/ is uniquified to uncore_imc_free_running_1/data_read/
  Testing event uncore_imc_free_running/data_total/ is uniquified to uncore_imc_free_running_1/data_total/
  Testing event uncore_imc_free_running/data_write/ is uniquified to uncore_imc_free_running_1/data_write/
  ---- end(0) ----
   96: perf stat events uniquifying                                    : Ok
  root@x1:~#

Fixes: 070b315333 ("perf test: Restrict uniquifying test to machines with 'uncore_imc'")
Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Athira Rajeev <atrajeev@linux.ibm.com>
Cc: Chun-Tse Shao <ctshao@google.com>
Cc: Howard Chu <howardchu95@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@linaro.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-10-19 16:37:05 +02:00
..
config-fragments perf tools: Enable configs required for test_uprobe_from_different_cu.sh 2024-04-17 12:21:39 -03:00
shell perf test: Avoid uncore_imc/clockticks in uniquification test 2025-10-19 16:37:05 +02:00
workloads perf test: Name the noploop process 2025-07-01 15:37:22 -07:00
api-io.c perf tests api-io: Use zfree() to reduce chances of use after free 2023-04-12 10:14:58 -03:00
backward-ring-buffer.c perf target: Remove uid from target 2025-06-09 11:18:18 -07:00
bitmap.c perf cpumap: Use perf_cpu_map__for_each_cpu when possible 2024-03-21 10:41:28 -03:00
bp_account.c perf tests bp_account: Fix leaked file descriptor 2025-07-11 12:05:02 -07:00
bp_signal.c perf parse-events: Add default_breakpoint_len helper 2024-09-04 09:49:09 -03:00
bp_signal_overflow.c perf parse-events: Add default_breakpoint_len helper 2024-09-04 09:49:09 -03:00
Build perf test: Add libsubcmd help tests 2025-07-01 15:51:55 -07:00
builtin-test.c perf test: In forked mode add check that fds aren't leaked 2025-07-02 19:11:13 -07:00
code-reading.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
cpumap.c perf test cpumap: Avoid use-after-free following merge 2025-01-08 17:40:05 -03:00
demangle-java-test.c perf test demangle-java: Don't segv if demangling fails 2025-05-28 10:12:47 -03:00
demangle-ocaml-test.c perf test demangle-ocaml: Switch to using dso__demangle_sym() 2025-05-09 17:03:09 -03:00
demangle-rust-v0-test.c perf test demangle-rust: Add Rust demangling test 2025-05-09 17:01:57 -03:00
dlfilter-test.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
dso-data.c perf test dso-data: Correctly free test file in read test 2025-03-17 22:07:18 -07:00
dwarf-unwind.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
event-times.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
event_groups.c perf test: Update event_groups test to use instructions 2025-01-18 10:32:57 -08:00
event_update.c libperf evsel: Rename own_cpus to pmu_cpus 2025-07-24 13:41:35 -07:00
evsel-roundtrip-name.c perf evsel: Use evsel__name_is() helper 2024-04-03 11:48:56 -03:00
evsel-tp-sched.c perf build: Include libtraceevent headers directly indicated by pkg-config 2024-11-08 22:42:57 -08:00
expand-cgroup.c perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
expr.c perf test expr: Fix system_tsc_freq for only x86 2024-12-11 09:19:44 -08:00
fdarray.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
genelf.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
hists_common.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
hists_common.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hists_cumulate.c perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
hists_filter.c perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
hists_link.c perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
hists_output.c perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
hwmon_pmu.c perf hwmon_pmu: Hold path rather than fd 2025-07-02 19:05:26 -07:00
is_printable_array.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
keep-tracking.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
kmod-path.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
make perf tests make: Add NO_LIBDW=1 to minimal and add standalone test 2025-07-03 11:22:48 -07:00
maps.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
mem.c perf mem-info: Add reference count checking 2024-05-07 18:06:44 -03:00
mem2node.c perf tools: Use dedicated non-atomic clear/set bit helpers 2022-12-05 09:29:06 -03:00
mmap-basic.c perf test: Expand user space event reading (rdpmc) tests 2025-06-20 13:14:07 -07:00
mmap-thread-lookup.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
openat-syscall-all-cpus.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
openat-syscall-tp-fields.c perf target: Remove uid from target 2025-06-09 11:18:18 -07:00
openat-syscall.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
parse-events.c perf parse-events: Fix missing slots for Intel topdown metric events 2025-07-24 13:41:35 -07:00
parse-metric.c perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
parse-no-sample-id-all.c perf sample: Make user_regs and intr_regs optional 2025-02-12 20:06:11 -08:00
pe-file-parsing.c perf tests: Fix "PE file support" test build 2025-09-03 10:50:55 -07:00
pe-file.c perf tests: Add test for PE binary format support 2020-09-04 14:38:15 -03:00
pe-file.exe perf tests: Add test for PE binary format support 2020-09-04 14:38:15 -03:00
pe-file.exe.debug perf tests: Add test for PE binary format support 2020-09-04 14:38:15 -03:00
perf-hooks.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
perf-record.c perf test: Don't leak workload gopipe in PERF_RECORD_* 2025-10-19 16:37:04 +02:00
perf-targz-src-pkg perf test: Change all remaining #!/bin/sh to #!/bin/bash 2025-06-26 10:31:05 -07:00
perf-time-to-tsc.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
pfm.c perf evlist: Remove nr_groups 2023-03-13 17:42:27 -03:00
pmu-events.c perf jevents: If the long_desc and desc are identical then drop the long_desc 2025-07-11 12:36:40 -07:00
pmu.c perf pmu: Rename name matching for no suffix or wildcard variants 2025-02-04 21:28:46 -08:00
python-use.c perf test python: Put perf python at start of sys.path 2023-05-27 09:35:14 -03:00
sample-parsing.c perf test: Move PERF_SAMPLE_WEIGHT_STRUCT parsing to common test 2025-07-25 10:37:58 -07:00
sdt.c perf symbol: Add blocking argument to filename__read_build_id 2025-08-25 15:07:18 -07:00
sigtrap.c perf btf: Make the sigtrap test helper to find a member by name widely available 2024-12-09 17:52:41 -03:00
stat.c perf stat: Move stat_config into config.c 2024-12-18 16:24:32 -03:00
subcmd-help.c perf test: Add libsubcmd help tests 2025-07-01 15:51:55 -07:00
sw-clock.c perf sample: Make user_regs and intr_regs optional 2025-02-12 20:06:11 -08:00
switch-tracking.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
symbols.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
task-exit.c perf target: Remove uid from target 2025-06-09 11:18:18 -07:00
tests-scripts.c perf test: Change all remaining #!/bin/sh to #!/bin/bash 2025-06-26 10:31:05 -07:00
tests-scripts.h perf tests: Run time generate shell test suites 2024-02-22 09:13:06 -08:00
tests.h perf test: Add libsubcmd help tests 2025-07-01 15:51:55 -07:00
thread-map.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
thread-maps-share.c perf maps: Hide maps internals 2024-02-12 12:35:41 -08:00
time-utils-test.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
tool_pmu.c perf tests: Fix Tool PMU test segfault 2025-02-12 19:34:56 -08:00
topology.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
unit_number__scnprintf.c perf test: Rename struct test to test_suite 2021-11-13 10:32:22 -03:00
util.c perf util: add a basic SHA-1 implementation 2025-06-26 10:51:40 -07:00
vmlinux-kallsyms.c perf map: API clean up 2024-08-19 14:49:53 -03:00
wp.c perf test: Make watchpoint data 32-bits on i386 2024-09-03 11:26:53 -03:00