linux_dsm_epyc7002/tools/testing/selftests/powerpc/include
Breno Leitao a65329aa7d selftests/powerpc: New TM signal self test
A new self test that forces MSR[TS] to be set without calling any TM
instruction. This test also tries to cause a page fault at a signal
handler, exactly between MSR[TS] set and tm_recheckpoint(), forcing
thread->texasr to be rewritten with TEXASR[FS] = 0, which will cause a BUG
when tm_recheckpoint() is called.

This test is not deterministic, since it is hard to guarantee that the page
access will cause a page fault. In order to force more page faults at
signal context, the signal handler and the ucontext are being mapped into a
MADV_DONTNEED memory chunks.

Tests have shown that the bug could be exposed with few interactions in a
buggy kernel. This test is configured to loop 5000x, having a good chance
to hit the kernel issue in just one run.  This self test takes less than
two seconds to run.

This test uses set/getcontext because the kernel will recheckpoint
zeroed structures, causing the test to segfault, which is undesired because
the test needs to rerun, so, there is a signal handler for SIGSEGV which
will restart the test.

v2: Uses the MADV_DONTNEED memory advice
v3: Fix memcpy and 32-bits compilation
v4: Does not define unused macros

Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2019-01-15 11:17:09 +11:00
..
basic_asm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fpu_asm.h selftests/powerpc: Move shared headers into new include dir 2016-11-17 17:11:47 +11:00
gpr_asm.h selftests/powerpc: Move shared headers into new include dir 2016-11-17 17:11:47 +11:00
instructions.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
reg.h selftests/powerpc: New TM signal self test 2019-01-15 11:17:09 +11:00
subunit.h selftests/powerpc: Move shared headers into new include dir 2016-11-17 17:11:47 +11:00
utils.h selftests/powerpc: New TM signal self test 2019-01-15 11:17:09 +11:00
vmx_asm.h selftests/powerpc: Move shared headers into new include dir 2016-11-17 17:11:47 +11:00
vsx_asm.h selftests/powerpc: Replace stxvx and lxvx with stxvd2x/lxvd2x 2017-03-09 13:58:00 +11:00