mbox series

[V3,0/2] selftests/powerpc: Updates to EBB selftest for ISA v3.1

Message ID 1621950703-1532-1-git-send-email-atrajeev@linux.vnet.ibm.com (mailing list archive)
Headers show
Series selftests/powerpc: Updates to EBB selftest for ISA v3.1 | expand

Message

Athira Rajeev May 25, 2021, 1:51 p.m. UTC
The "no_handler_test" in ebb selftests attempts to read the PMU
registers after closing of the event via helper function
"dump_ebb_state". With the MMCR0 control bit (PMCCEXT) in ISA v3.1,
read access to group B registers is restricted when MMCR0 PMCC=0b00.
Hence the call to dump_ebb_state after closing of event will generate
a SIGILL, which is expected.

Test has below in logs:
<<>>
!! child died by signal 4
failure: no_handler_test
<<>>

In other platforms (like power9), the older behaviour works where
group B PMU SPRs are readable. The "dump_ebb_state" is called twice
in the test. The second call after closing of event was done inorder
to dump state of registers when the counters are frozen. But since
the counters should already be frozen by the time first dump is done,
patch1 drops the second call to "dump_ebb_state".

To address the new sigill behaviour in ISA v3.1, patch2 creates
a separate selftest.

Changelog:
v2 -> v3:
	Fixed a space issue in patch2.

v1 -> v2:
        Addressed review comments from Michael Ellerman.
        First version attempted to address the SIGILL
        behaviour in existing "no_handler_test" test itself.
        As per mpe's suggestion, moved that to a separate test
        and removed the second call to "dump_ebb_state" since
        that is actually not needed.

Athira Rajeev (2):
  selftests/powerpc: Fix "no_handler" EBB selftest
  selftests/powerpc: EBB selftest for MMCR0 control for PMU SPRs in ISA
    v3.1

 tools/testing/selftests/powerpc/pmu/ebb/Makefile   |  2 +-
 .../selftests/powerpc/pmu/ebb/no_handler_test.c    |  2 -
 .../powerpc/pmu/ebb/regs_access_pmccext_test.c     | 63 ++++++++++++++++++++++
 3 files changed, 64 insertions(+), 3 deletions(-)
 create mode 100644 tools/testing/selftests/powerpc/pmu/ebb/regs_access_pmccext_test.c

Comments

R Nageswara Sastry May 26, 2021, 7:22 a.m. UTC | #1
> On 25-May-2021, at 7:21 PM, Athira Rajeev <atrajeev@linux.vnet.ibm.com> wrote:
> 
> The "no_handler_test" in ebb selftests attempts to read the PMU
> registers after closing of the event via helper function
> "dump_ebb_state". With the MMCR0 control bit (PMCCEXT) in ISA v3.1,
> read access to group B registers is restricted when MMCR0 PMCC=0b00.
> Hence the call to dump_ebb_state after closing of event will generate
> a SIGILL, which is expected.
> 
> Test has below in logs:
> <<>>
> !! child died by signal 4
> failure: no_handler_test
> <<>>
> 
Tested patches on Power9 and Power10 - PowerVM environment.

Power9 - no_handler_test - with and without patch - success
Power10 - no_handler_test - without patch - failure
Power10 - no_handler_test - with patch - success

Power9 - regs_access_pmccext_test - with patch - success
Power10 - regs_access_pmccext_test - with patch - success

Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com <mailto:rnsastry@linux.ibm.com>>

Thank you.
Michael Ellerman June 18, 2021, 3:51 a.m. UTC | #2
On Tue, 25 May 2021 09:51:41 -0400, Athira Rajeev wrote:
> The "no_handler_test" in ebb selftests attempts to read the PMU
> registers after closing of the event via helper function
> "dump_ebb_state". With the MMCR0 control bit (PMCCEXT) in ISA v3.1,
> read access to group B registers is restricted when MMCR0 PMCC=0b00.
> Hence the call to dump_ebb_state after closing of event will generate
> a SIGILL, which is expected.
> 
> [...]

Applied to powerpc/next.

[1/2] selftests/powerpc: Fix "no_handler" EBB selftest
      https://git.kernel.org/powerpc/c/45677c9aebe926192e59475b35a1ff35ff2d4217
[2/2] selftests/powerpc: EBB selftest for MMCR0 control for PMU SPRs in ISA v3.1
      https://git.kernel.org/powerpc/c/d81090ed44c0d15abf2b07663d5f0b9e5ba51525

cheers