linux/tools/testing/selftests
Sam bobroff b4b56f9eca powerpc/tm: Abort syscalls in active transactions
This patch changes the syscall handler to doom (tabort) active
transactions when a syscall is made and return very early without
performing the syscall and keeping side effects to a minimum (no CPU
accounting or system call tracing is performed). Also included is a
new HWCAP2 bit, PPC_FEATURE2_HTM_NOSC, to indicate this
behaviour to userspace.

Currently, the system call instruction automatically suspends an
active transaction which causes side effects to persist when an active
transaction fails.

This does change the kernel's behaviour, but in a way that was
documented as unsupported.  It doesn't reduce functionality as
syscalls will still be performed after tsuspend; it just requires that
the transaction be explicitly suspended.  It also provides a
consistent interface and makes the behaviour of user code
substantially the same across powerpc and platforms that do not
support suspended transactions (e.g. x86 and s390).

Performance measurements using
http://ozlabs.org/~anton/junkcode/null_syscall.c indicate the cost of
a normal (non-aborted) system call increases by about 0.25%.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-06-19 17:10:28 +10:00
..
breakpoints selftests: Introduce minimal shared logic for running tests 2015-03-13 15:13:40 -06:00
cpu-hotplug selftests: change cpu on-off-test.sh name to be unique 2015-04-01 10:32:52 -06:00
efivarfs selftests: Set CC using CROSS_COMPILE once in lib.mk 2015-03-19 15:16:51 -06:00
exec linux-kselftest-4.1-rc1 2015-04-13 08:59:21 -07:00
firmware selftests: Introduce minimal shared logic for running tests 2015-03-13 15:13:40 -06:00
ftrace ftracetest: Do not use usleep directly 2015-04-03 09:16:32 -06:00
ipc selftest/ipc: enable cross compilation 2015-04-02 12:41:52 -06:00
kcmp selftests: Set CC using CROSS_COMPILE once in lib.mk 2015-03-19 15:16:51 -06:00
memfd selftest/memfd: include default header install path 2015-04-02 12:41:03 -06:00
memory-hotplug selftests: Change memory on-off-test.sh name to be unique 2015-04-01 10:33:02 -06:00
mount selftest/mount: enable cross compilation 2015-04-02 12:40:48 -06:00
mqueue selftest/mqueue: enable cross compilation 2015-04-02 12:41:58 -06:00
net selftests: Set CC using CROSS_COMPILE once in lib.mk 2015-03-19 15:16:51 -06:00
powerpc powerpc/tm: Abort syscalls in active transactions 2015-06-19 17:10:28 +10:00
ptrace selftests: Introduce minimal shared logic for running tests 2015-03-13 15:13:40 -06:00
rcutorture Merge branches 'doc.2015.02.26a', 'earlycb.2015.03.03a', 'fixes.2015.03.03a', 'gpexp.2015.02.26a', 'hotplug.2015.03.20a', 'sysidle.2015.02.26b' and 'tiny.2015.02.26a' into HEAD 2015-03-20 08:31:01 -07:00
size selftests: Set CC using CROSS_COMPILE once in lib.mk 2015-03-19 15:16:51 -06:00
sysctl selftests: Add install target 2015-03-13 15:21:56 -06:00
timers kselftests: timers: Make set-timer-lat fail more gracefully for !CAP_WAKE_ALARM 2015-04-02 10:32:33 -06:00
user selftests: Introduce minimal shared logic for running tests 2015-03-13 15:13:40 -06:00
vm mm, selftests: test return value of munmap for MAP_HUGETLB memory 2015-04-15 16:35:19 -07:00
x86 x86, selftests: Add single_step_syscall test 2015-04-16 12:41:49 +02:00
gen_kselftest_tar.sh selftests: Add tool to generate kselftest tar archive 2015-03-24 08:43:19 -06:00
kselftest_install.sh selftests: Add kselftest install tool 2015-03-24 08:43:05 -06:00
kselftest.h selftests: add kselftest framework for uniform test reporting 2014-11-17 10:38:56 -07:00
lib.mk selftests: Set CC using CROSS_COMPILE once in lib.mk 2015-03-19 15:16:51 -06:00
Makefile Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-04-13 13:16:36 -07:00