linux/arch/powerpc
Sam bobroff feba40362b 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 immediately without
performing the syscall.

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 because
syscalls will still be performed after tsuspend. 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 system call increases by about 0.5%.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
Acked-By: Michael Neuling <mikey@neuling.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-04-11 20:49:19 +10:00
..
boot powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
configs powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
crypto crypto: add missing crypto module aliases 2015-01-13 22:29:11 +11:00
include powerpc/tm: Abort syscalls in active transactions 2015-04-11 20:49:19 +10:00
kernel powerpc/tm: Abort syscalls in active transactions 2015-04-11 20:49:19 +10:00
kvm Merge branch 'next-remove-ldst' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc into next 2015-04-07 13:25:14 +10:00
lib powerpc: Replace mem_init_done with slab_is_available() 2015-04-10 20:02:48 +10:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm powerpc: Replace mem_init_done with slab_is_available() 2015-04-10 20:02:48 +10:00
net module: remove mod arg from module_free, rename module_memfree(). 2015-01-20 11:38:33 +10:30
oprofile powerpc updates for 3.19 2014-12-11 17:48:14 -08:00
perf powerpc/perf: add missing put_cpu_var in power_pmu_event_init 2015-03-27 20:07:01 +11:00
platforms powerpc/cell: Move controller ops from ppc_md to controller_ops 2015-04-11 20:49:17 +10:00
sysdev powerpc: dart_iommu: Remove check for controller_ops == NULL case 2015-04-11 20:49:19 +10:00
xmon powerpc updates for 3.20 2015-02-11 18:15:38 -08:00
Kconfig powerpc: kill PPC_OF 2015-03-17 20:04:32 +11:00
Kconfig.debug powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
Makefile powerpc: Convert relocs_check to a shell script using grep 2015-03-23 14:47:39 +11:00
relocs_check.sh powerpc: Convert relocs_check to a shell script using grep 2015-03-23 14:47:39 +11:00