Kajol Jain <kj...@linux.ibm.com> writes: > Patch series extends the perf interface selftests > to cover scenarios for event code checking, > group constraints, and also thresholding/branch related > interface tests in sampling area.
There are build failures in CI: https://github.com/ruscur/linux-ci/actions/runs/2317863271 If you follow the instructions here: https://github.com/linuxppc/wiki/wiki/Testing-with-GitHub-Actions You can have the same tests run against your own tree before you post to the list. cheers > In this series, patches 1 to 14 adds additional tests under > "powerpc/sampling_tests". These adds support for handling > sample type PERF_SAMPLE_BRANCH_STACK along with interrupt regs. > It adds utility functions and test for thresh_cmp and branch > filters programmed in control register. Some of the tests needs > to be skipped for "Generic Compat PMU" environment. Hence utility > functions are added in "include/utils.c" and "sampling_tests/misc.h" > to detect platform based on "auxv" entries. > > Currently in other architectures (like x86), the pmu_name is > exposed via sysfs caps folder ie: > "sys/bus/event_source/devices/<pmu>/caps". But in powerpc, > "caps" is not supported. So, though the approach for detecting > compat mode currently uses auxv, patchset adds an > utility function considering a possibility of > getting "caps" added for powerpc. > > Link to the patch to add support for caps under sysfs in powerpc: > http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=297293 > > Patches 15 to 35 covers test related to group constraints and event codes. > These new set of changes are added under new folder: > "selftests/powerpc/pmu/event_code_tests" > > Patch 15 covers changes required for new folder with Makefile changes. > The other patches add tests for perf interface to check the event > group constraints, valid/invalid event codes, blacklisted events etc. > Also add required utility functions under header file "misc.h" > in sampling_tests folder. > > Patch 33 and 34 depend upon thresh_cmp group constraint fix patches > sent in upstream mailing list. > > Link to the thresh_cmp fix patchset: > http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=298742 > > Patch 13 of the patchset add selftest for mmcr1 pmcxsel/unit/cache fields, > which was initially dropeed from sampling test patchset (patch number: 16) > > Link to the patch: > http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220127072012.662451-17-kj...@linux.ibm.com/ > > Athira Rajeev (20): > testing/selftests/powerpc: Add support to fetch "platform" and "base > platform" from auxv to detect platform. > selftest/powerpc/pmu: Refactor the platform check and add macros to > find array size/PVR > selftest/powerpc/pmu: Add selftest to check branch stack enablement > will not crash on any platforms > selftest/powerpc/pmu: Add selftest to check PERF_SAMPLE_REGS_INTR > option will not crash on any platforms > selftest/powerpc/pmu: Add selftest for checking valid and invalid bhrb > filter maps > selftest/powerpc/pmu: Add selftest for mmcr1 pmcxsel/unit/cache fields > selftest/powerpc/pmu: Add support for perf event code tests > selftest/powerpc/pmu: Add selftest for group constraint check for PMC5 > and PMC6 > selftest/powerpc/pmu: Add selftest to check PMC5/6 is excluded from > some constraint checks > selftest/powerpc/pmu: Add selftest to check constraint for number of > counters in use. > selftest/powerpc/pmu: Add selftest for group constraint check when > using same PMC > selftest/powerpc/pmu: Add selftest for group constraint check for > radix_scope_qual field > selftest/powerpc/pmu: Add selftest for group constraint for MMCRA > Sampling Mode field > selftest/powerpc/pmu: Add selftest for group constraint check MMCRA > sample bits > selftest/powerpc/pmu: Add selftest for checking invalid bits in event > code > selftest/powerpc/pmu: Add selftest for reserved bit check for MMCRA > thresh_ctl field > selftest/powerpc/pmu: Add selftest for blacklist events check in > power9 > selftest/powerpc/pmu: Add selftest for event alternatives for power9 > selftest/powerpc/pmu: Add selftest for event alternatives for power10 > selftest/powerpc/pmu: Add selftest for PERF_TYPE_HARDWARE events valid > check > > Kajol Jain (15): > selftest/powerpc/pmu: Add mask/shift bits for extracting threshold > compare field > selftest/powerpc/pmu: Add interface test for mmcra_thresh_cmp fields > selftest/powerpc/pmu: Add support for branch sampling in get_intr_regs > function > selftest/powerpc/pmu: Add interface test for mmcra_ifm field of > indirect call type > selftest/powerpc/pmu: Add interface test for mmcra_ifm field for any > branch type > selftest/powerpc/pmu: Add interface test for mmcra_ifm field for > conditional branch type > selftest/powerpc/pmu: Add interface test for bhrb disable field > selftest/powerpc/pmu: Add interface test for bhrb disable field for > non-branch samples > selftest/powerpc/pmu: Add selftest for group constraint check for > MMCR0 l2l3_sel bits > selftest/powerpc/pmu: Add selftest for group constraint check for > MMCR1 cache bits > selftest/powerpc/pmu: Add selftest for group constraint check for > MMCRA thresh_cmp field > selftest/powerpc/pmu: Add selftest for group constraint for unit and > pmc field in p9 > selftest/powerpc/pmu: Add selftest for group constraint check for > MMCRA thresh_ctl field > selftest/powerpc/pmu: Add selftest for group constraint check for > MMCRA thresh_sel field > selftest/powerpc/pmu: Add test for hardware cache events > > tools/testing/selftests/powerpc/include/reg.h | 4 + > .../testing/selftests/powerpc/include/utils.h | 10 ++ > tools/testing/selftests/powerpc/pmu/Makefile | 11 +- > .../selftests/powerpc/pmu/branch_loops.S | 28 ++++ > .../powerpc/pmu/event_code_tests/Makefile | 15 ++ > .../blacklisted_events_test.c | 132 +++++++++++++++++ > .../event_alternatives_tests_p10.c | 109 ++++++++++++++ > .../event_alternatives_tests_p9.c | 116 +++++++++++++++ > .../generic_events_valid_test.c | 130 +++++++++++++++++ > .../group_constraint_cache_test.c | 60 ++++++++ > .../group_constraint_l2l3_sel_test.c | 64 +++++++++ > .../group_constraint_mmcra_sample_test.c | 54 +++++++ > .../group_constraint_pmc56_test.c | 63 ++++++++ > .../group_constraint_pmc_count_test.c | 70 +++++++++ > .../group_constraint_radix_scope_qual_test.c | 56 ++++++++ > .../group_constraint_repeat_test.c | 56 ++++++++ > .../group_constraint_thresh_cmp_test.c | 96 +++++++++++++ > .../group_constraint_thresh_ctl_test.c | 64 +++++++++ > .../group_constraint_thresh_sel_test.c | 63 ++++++++ > .../group_constraint_unit_test.c | 74 ++++++++++ > .../group_pmc56_exclude_constraints_test.c | 64 +++++++++ > .../hw_cache_event_type_test.c | 88 ++++++++++++ > .../invalid_event_code_test.c | 67 +++++++++ > ...eserved_bits_mmcra_sample_elig_mode_test.c | 77 ++++++++++ > .../reserved_bits_mmcra_thresh_ctl_test.c | 44 ++++++ > .../powerpc/pmu/sampling_tests/Makefile | 7 +- > .../pmu/sampling_tests/bhrb_filter_map_test.c | 115 +++++++++++++++ > .../bhrb_no_crash_wo_pmu_test.c | 59 ++++++++ > .../intr_regs_no_crash_wo_pmu_test.c | 57 ++++++++ > .../powerpc/pmu/sampling_tests/misc.c | 135 +++++++++++++++++- > .../powerpc/pmu/sampling_tests/misc.h | 9 +- > .../mmcr1_sel_unit_cache_test.c | 77 ++++++++++ > .../pmu/sampling_tests/mmcra_bhrb_any_test.c | 65 +++++++++ > .../pmu/sampling_tests/mmcra_bhrb_cond_test.c | 69 +++++++++ > .../mmcra_bhrb_disable_no_branch_test.c | 64 +++++++++ > .../sampling_tests/mmcra_bhrb_disable_test.c | 66 +++++++++ > .../sampling_tests/mmcra_bhrb_ind_call_test.c | 69 +++++++++ > .../sampling_tests/mmcra_thresh_cmp_test.c | 74 ++++++++++ > 38 files changed, 2471 insertions(+), 10 deletions(-) > create mode 100644 tools/testing/selftests/powerpc/pmu/branch_loops.S > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/Makefile > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/blacklisted_events_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/event_alternatives_tests_p10.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/event_alternatives_tests_p9.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/generic_events_valid_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_cache_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_l2l3_sel_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_mmcra_sample_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_pmc56_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_pmc_count_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_radix_scope_qual_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_repeat_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_cmp_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_ctl_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_sel_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_unit_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/group_pmc56_exclude_constraints_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/hw_cache_event_type_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/invalid_event_code_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/reserved_bits_mmcra_sample_elig_mode_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/event_code_tests/reserved_bits_mmcra_thresh_ctl_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/bhrb_filter_map_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/bhrb_no_crash_wo_pmu_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/intr_regs_no_crash_wo_pmu_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/mmcr1_sel_unit_cache_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_any_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_cond_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_disable_no_branch_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_disable_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_ind_call_test.c > create mode 100644 > tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_thresh_cmp_test.c > > -- > 2.31.1