On Tue, 2019-01-08 at 11:31:21 UTC, Breno Leitao wrote: > 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 <lei...@debian.org>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/a65329aa7d613288626275546074f1aa cheers