linux/arch/x86
Frederic Weisbecker 44234adcdc hw-breakpoints: Modify breakpoints without unregistering them
Currently, when ptrace needs to modify a breakpoint, like disabling
it, changing its address, type or len, it calls
modify_user_hw_breakpoint(). This latter will perform the heavy and
racy task of unregistering the old breakpoint and registering a new
one.

This is racy as someone else might steal the reserved breakpoint
slot under us, which is undesired as the breakpoint is only
supposed to be modified, sometimes in the middle of a debugging
workflow. We don't want our slot to be stolen in the middle.

So instead of unregistering/registering the breakpoint, just
disable it while we modify its breakpoint fields and re-enable it
after if necessary.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Prasad <prasad@linux.vnet.ibm.com>
LKML-Reference: <1260347148-5519-1-git-send-regression-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-12-09 09:48:20 +01:00
..
boot x86: Document linker script ASSERT() quirk 2009-10-16 07:18:46 +02:00
configs tracing: Rename FTRACE_SYSCALLS for tracepoints 2009-08-26 00:17:35 +02:00
crypto crypto: aesni-intel - Fix irq_fpu_usable usage 2009-10-20 16:20:47 +09:00
ia32 x86-64: Fix register leak in 32-bit syscall audting 2009-10-26 16:23:26 +01:00
include/asm Merge branch 'perf/mce' into perf/core 2009-12-03 20:11:06 +01:00
kernel hw-breakpoints: Modify breakpoints without unregistering them 2009-12-09 09:48:20 +01:00
kvm Merge branch 'tracing/hw-breakpoints' into perf/core 2009-11-21 14:07:23 +01:00
lguest lguest: move panic notifier registration to its expected place. 2009-09-23 22:26:44 +09:30
lib x86 insn: Delete empty or incomplete inat-tables.c 2009-12-07 18:33:19 +01:00
math-emu
mm Merge branch 'tracing/hw-breakpoints' into perf/core 2009-11-21 14:07:23 +01:00
oprofile perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
pci const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
power hw-breakpoints: Rewrite the hw-breakpoints layer on top of perf events 2009-11-08 15:34:42 +01:00
tools x86, perf probe: Fix warning in test_get_len() 2009-12-06 12:53:40 +01:00
vdso kbuild: rename ld-option to cc-ldoption 2009-09-20 12:27:42 +02:00
video
xen xen: mask extended topology info in cpuid 2009-11-03 11:09:12 -08:00
Kbuild
Kconfig Merge branch 'tracing/hw-breakpoints' into perf/core 2009-11-21 14:07:23 +01:00
Kconfig.cpu x86: Side-step lguest problem by only building cmpxchg8b_emu for pre-Pentium 2009-10-26 12:33:02 +01:00
Kconfig.debug x86: Compile insn.c and inat.c only for KPROBES 2009-12-07 08:31:28 +01:00
Makefile Merge branch 'perf/core' into perf/probes 2009-11-17 10:17:47 +01:00
Makefile_32.cpu x86: add specific support for Intel Atom architecture 2009-08-23 11:20:02 +02:00