mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
a65329aa7d
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> |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile | ||
tm-exec.c | ||
tm-fork.c | ||
tm-resched-dscr.c | ||
tm-signal-context-chk-fpu.c | ||
tm-signal-context-chk-gpr.c | ||
tm-signal-context-chk-vmx.c | ||
tm-signal-context-chk-vsx.c | ||
tm-signal-context-force-tm.c | ||
tm-signal-msr-resv.c | ||
tm-signal-sigreturn-nt.c | ||
tm-signal-stack.c | ||
tm-signal.S | ||
tm-sigreturn.c | ||
tm-syscall-asm.S | ||
tm-syscall.c | ||
tm-tar.c | ||
tm-tmspr.c | ||
tm-trap.c | ||
tm-unavailable.c | ||
tm-vmx-unavail.c | ||
tm-vmxcopy.c | ||
tm.h |