Re: [PATCH 0/6 v1] perf test attr: Fix the re-enabled test

From: Namhyung Kim

Date: Tue Oct 06 2026 - 20:22:32 EST


On Tue, Oct 06, 2026 at 05:00:26PM -0700, Namhyung Kim wrote:
> On Tue, Oct 06, 2026 at 06:13:03PM +0200, Arnaldo Carvalho de Melo wrote:
> > From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> >
> > Hello all,
> >
> > This series fixes the "Perf attribute expectations test" (perf test 82,
> > formerly "Setup struct perf_event_attr").
> >
> > Patches 1-2 are Michael Petlan's prerequisite fixes that make the shell
> > wrapper propagate attr.py's return value and correct the
> > perf_event_attr size expectation after struct config4 was added. They
> > are included at the start of the series so that it applies cleanly on
> > the current perf-tools-next (and for the review bots to verify the new
> > patches); the new fixes are patches 3-6.
> >
> > With the test reporting failures again, several stale expectations
> > surfaced and are addressed here:
> >
> > - test-record-graph-dwarf still expected PERF_SAMPLE_ADDR and
> > PERF_SAMPLE_DATA_SRC for --call-graph dwarf. Those were dropped by
> > bdd051e249141c79 ("perf record: Split --data-mmap option"), which
> > decoupled data MMAP recording from the sample address bits.
> >
> > - The record and stat group tests expected cache-misses and
> > instructions to be the legacy PERF_TYPE_HARDWARE events, but since
> > b1c5efbfd92eb84d ("perf parse-events: Remove hard coded legacy
> > hardware and cache parsing") they resolve to the core PMU sysfs/JSON
> > events, so request the legacy encodings explicitly with the
> > legacy-hardware-config term.
> >
> > - The perf stat default metrics open their events in groups and the
> > raw encodings of instructions, branch-misses, cpu-cycles and
> > stalled-cycles-frontend/backend differ between Intel and AMD, so
> > base-stat now accepts the standalone and group variants and
> > test-stat-default/detailed-{1,2,3} gained the per-vendor raw
> > encodings.
> >
> > - attr.py no longer requires a recorded event to be in a group when
> > the matching expectation does not declare one, allowing the stat
> > tests to verify event attributes without encoding the metric
> > grouping. Expectations that declare a group are still verified in
> > both directions.
> >
> > The test passes with 'perf test -vv attribute' on x86_64. The AMD
> > encodings come from the amd_pmu_event_map tables in
> > arch/x86/events/amd/core.c.
>
> On my machine, the current tmp.perf-tools-next which contains these
> changes fails like this.
>
> $ tools/perf/perf test -v 82
> ---- start ----
> test child forked, pid 931585
> /home/namhyung/project/linux/tools/perf/tests/shell/attr.sh: line 20: python: command not found
> ---- end(-1) ----
> 82: Perf attribute expectations test : FAILED!
>
> === Test Summary ===
> Passed main tests : 0
> Passed subtests : 0
> Skipped tests : 0
> Failed tests : 1
> List of failed tests:
> 82: Perf attribute expectations test
>
> The below patch fixes the problem.

Hmm.. even with the fix, it failed like this.

Thanks,
Namhyung


$ tools/perf/perf test -v 82
---- start ----
...
expected mmap=1, got 0
expected comm=1, got 0
expected freq=1, got 0
expected enable_on_exec=1, got 0
expected task=1, got 0
expected sample_id_all=1, got 0
expected branch_sample_type=16, got 0
FAILED '/home/namhyung/project/linux/tools/perf/tests/shell/attr/test-record-branch-filter-any_call' - match failure
---- end(-1) ----
82: Perf attribute expectations test : FAILED!

=== Test Summary ===
Passed main tests : 0
Passed subtests : 0
Skipped tests : 0
Failed tests : 1
List of failed tests:
82: Perf attribute expectations test