linux/arch/s390/kernel
Heiko Carstens a9ca8eb7af s390/ftrace: fix crashes when switching tracers / add notrace to cpu_relax()
With git commit 4d92f50249 ("s390: reintroduce diag 44 calls for
cpu_relax()") I reintroduced a non-trivial cpu_relax() variant on s390.

The difference to the previous variant however is that the new version is
an out-of-line function, which will be traced if function tracing is enabled.

Switching to different tracers includes instruction patching. Therefore this
is done within stop_machine() "context" to prevent that any function tracing
is going on while instructions are being patched.
With the new out-of-line variant of cpu_relax() this is not true anymore,
since cpu_relax() gets called in a busy loop by all waiting cpus within
stop_machine() until function patching is finished.
Therefore cpu_relax() must be marked notrace.

This fixes kernel crashes when frequently switching between "function" and
"function_graph" tracers.

Moving cpu_relax() to a header file again, doesn't work because of header
include order dependencies.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2015-03-02 11:35:53 -08:00
..
vdso32
vdso64 s390/vdso: fix clock_gettime for CLOCK_THREAD_CPUTIME_ID, -2 and -3 2015-02-12 09:37:21 +01:00
.gitignore
asm-offsets.c
audit.c
audit.h
base.S s390: add SMT support 2015-01-22 12:16:01 +01:00
cache.c s390/cacheinfo: coding style changes 2015-02-12 09:37:24 +01:00
compat_audit.c
compat_linux.c
compat_linux.h
compat_ptrace.h
compat_signal.c all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
compat_wrapper.c
cpcmd.c
crash_dump.c
debug.c
diag.c
dis.c s390: add SMT support 2015-01-22 12:16:01 +01:00
dumpstack.c
early.c s390/spinlock: disabled compare-and-delay by default 2015-02-19 18:05:38 +01:00
ebcdic.c
entry64.S
entry.h s390/signal: add sys_sigreturn and sys_rt_sigreturn declarations 2015-01-08 10:02:49 +01:00
entry.S
ftrace.c s390/ftrace: hotpatch support for function tracing 2015-01-29 09:19:25 +01:00
head31.S
head64.S
head_kdump.S
head.S s390: add z13 code generation support 2015-01-22 12:15:57 +01:00
idle.c
ipl.c s390: add SMT support 2015-01-22 12:16:01 +01:00
irq.c
jump_label.c s390/jump label: improve and fix sanity check 2015-02-26 09:24:46 +01:00
kprobes.c s390/ftrace: hotpatch support for function tracing 2015-01-29 09:19:25 +01:00
lgr.c
machine_kexec.c s390: add SMT support 2015-01-22 12:16:01 +01:00
Makefile s390/ftrace: hotpatch support for function tracing 2015-01-29 09:19:25 +01:00
mcount.S s390/ftrace: hotpatch support for function tracing 2015-01-29 09:19:25 +01:00
module.c s390/jump label: add missing jump_label_apply_nops() call 2015-02-26 09:24:45 +01:00
nmi.c
os_info.c
perf_cpum_cf_events.c
perf_cpum_cf.c
perf_cpum_sf.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-12-11 17:30:55 -08:00
perf_event.c
pgm_check.S
process.c s390/process: free vx save area when releasing tasks 2015-02-10 16:39:05 +01:00
processor.c s390/ftrace: fix crashes when switching tracers / add notrace to cpu_relax() 2015-03-02 11:35:53 -08:00
ptrace.c
reipl64.S
reipl.S
relocate_kernel64.S
relocate_kernel.S
runtime_instr.c
s390_ksyms.c
sclp.S s390/sclp: sign extend return value of _sclp_print_early() 2015-01-08 10:02:52 +01:00
setup.c s390/topology: delay initialization of topology cpu masks 2015-02-12 09:37:22 +01:00
signal.c all arches, signal: move restart_block to struct task_struct 2015-02-12 18:54:12 -08:00
smp.c s390/smp: reduce size of struct pcpu 2015-02-12 09:37:23 +01:00
stacktrace.c
suspend.c
swsusp_asm64.S
sys_s390.c
syscalls.S s390: wire up execveat syscall 2014-12-18 13:37:17 +01:00
sysinfo.c Fairly small update, but there are some interesting new features. 2015-02-13 09:55:09 -08:00
time.c
topology.c s390/topology: convert cpu_topology array to per cpu variable 2015-02-12 09:37:22 +01:00
traps.c
uprobes.c s390/uprobes: fix user space PER events 2015-01-12 10:24:58 +01:00
vdso.c
vmlinux.lds.S
vtime.c s390: add SMT support 2015-01-22 12:16:01 +01:00