summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/nmi.c
diff options
context:
space:
mode:
authorSteven Rostedt2011-08-16 15:57:10 +0200
committerSteven Rostedt2012-04-28 03:10:44 +0200
commit08d636b6d4fb80647fe8869ea1cd97b2c26a4751 (patch)
treeeb85c37e3a67e1c21df9b82e2d302d5d1899343a /arch/x86/kernel/nmi.c
parentring-buffer: Add per_cpu ring buffer control files (diff)
downloadkernel-qcow2-linux-08d636b6d4fb80647fe8869ea1cd97b2c26a4751.tar.gz
kernel-qcow2-linux-08d636b6d4fb80647fe8869ea1cd97b2c26a4751.tar.xz
kernel-qcow2-linux-08d636b6d4fb80647fe8869ea1cd97b2c26a4751.zip
ftrace/x86: Have arch x86_64 use breakpoints instead of stop machine
This method changes x86 to add a breakpoint to the mcount locations instead of calling stop machine. Now that iret can be handled by NMIs, we perform the following to update code: 1) Add a breakpoint to all locations that will be modified 2) Sync all cores 3) Update all locations to be either a nop or call (except breakpoint op) 4) Sync all cores 5) Remove the breakpoint with the new code. 6) Sync all cores [ Added updates that Masami suggested: Use unlikely(modifying_ftrace_code) in int3 trap to keep kprobes efficient. Don't use NOTIFY_* in ftrace handler in int3 as it is not a notifier. ] Cc: H. Peter Anvin <hpa@zytor.com> Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'arch/x86/kernel/nmi.c')
0 files changed, 0 insertions, 0 deletions