linux/arch/x86/kernel
Jason Wessel 8097551d9a kgdb,x86: do not set kgdb_single_step on x86
On an SMP system the kgdb_single_step flag has the possibility to
indefinitely hang the system in the case.  Consider the case where,
CPU 1 has the schedule lock and CPU 0 is set to single step, there is
no way for CPU 0 to run another task.

The easy way to observe the problem is to make 2 cpus busy, and run
the kgdb test suite.  You will see that it hangs the system very
quickly.

while [ 1 ] ; do find /proc > /dev/null 2>&1 ; done &
while [ 1 ] ; do find /proc > /dev/null 2>&1 ; done &
echo V1 > /sys/module/kgdbts/parameters/kgdbts

The side effect of this patch is that there is the possibility
to miss a breakpoint in the case that a single step operation
was executed to step over a breakpoint in common code.

The trade off of the missed breakpoint is preferred to
hanging the kernel.  This can be fixed in the future by
using kprobes or another strategy to step over planted
breakpoints with out of line execution.

CC: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2009-12-11 08:43:18 -06:00
..
acpi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
apic Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 19:27:08 -08:00
cpu Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-12-09 19:57:06 -08:00
.gitignore
alternative.c
amd_iommu_init.c x86/amd-iommu: Remove amd_iommu_pd_table 2009-11-27 14:20:37 +01:00
amd_iommu.c Merge branch 'for-next' into for-linus 2009-12-07 18:36:35 +01:00
aperture_64.c x86: Handle HW IOMMU initialization failure gracefully 2009-11-10 12:32:07 +01:00
apm_32.c x86: Remove BKL from apm_32 2009-10-14 17:04:48 +02:00
asm-offsets_32.c
asm-offsets_64.c
asm-offsets.c
audit_64.c
bios_uv.c
bootflag.c
check.c
cpuid.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-05 15:32:35 -08:00
crash_dump_32.c x86: crash_dump: Fix non-pae kdump kernel memory accesses 2009-10-26 12:38:59 +01:00
crash_dump_64.c
crash.c x86: Use x86_platform for iommu_shutdown 2009-11-08 13:12:26 +01:00
doublefault_32.c
ds_selftest.c
ds_selftest.h
ds.c
dumpstack_32.c x86: dumpstack: Clean up the x86_stack_ids[][] initalization and other details 2009-11-26 08:24:33 +01:00
dumpstack_64.c x86: dumpstack, 64-bit: Disable preemption when walking the IRQ/exception stacks 2009-11-26 08:29:10 +01:00
dumpstack.c x86: use kernel_stack_pointer() in dumpstack.c 2009-10-12 14:19:34 -07:00
dumpstack.h
e820.c pci: increase alignment to make more space for hidden code 2009-10-11 14:43:36 -07:00
early_printk.c x86: earlyprintk: Fix regression to handle serial,ttySn as 1 arg 2009-10-01 10:34:16 +02:00
early-quirks.c
efi_32.c
efi_64.c
efi_stub_32.S
efi_stub_64.S
efi.c x86: Make EFI RTC function depend on 32bit again 2009-10-27 12:35:48 +01:00
entry_32.S Merge branch 'perf/core' into perf/probes 2009-10-23 08:23:20 +02:00
entry_64.S Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:38:21 -08:00
ftrace.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
geode_32.c
head32.c
head64.c
head_32.S x86-32: Use symbolic constants, safer CPUID when enabling EFER.NX 2009-11-16 13:44:56 -08:00
head_64.S Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
head.c
hpet.c x86: hpet: Make WARN_ON understandable 2009-11-27 20:37:41 +01:00
hw_breakpoint.c x86/hw-breakpoints: Don't lose GE flag while disabling a breakpoint 2009-11-26 09:29:22 +01:00
i386_ksyms_32.c
i387.c
i8237.c
i8253.c
i8259.c
init_task.c
io_delay.c
ioport.c
irq_32.c x86: Unify fixup_irqs() for 32-bit and 64-bit kernels 2009-11-02 15:56:34 +01:00
irq_64.c x86: Unify fixup_irqs() for 32-bit and 64-bit kernels 2009-11-02 15:56:34 +01:00
irq.c Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:38:21 -08:00
irqinit.c x86: UV RTC: Rename generic_interrupt to x86_platform_ipi 2009-10-14 18:27:11 +02:00
k8.c
kdebugfs.c
kgdb.c kgdb,x86: do not set kgdb_single_step on x86 2009-12-11 08:43:18 -06:00
kprobes.c Merge branch 'for-next' into for-linus 2009-12-07 18:36:35 +01:00
kvm.c
kvmclock.c
ldt.c
machine_kexec_32.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
machine_kexec_64.c
Makefile Merge commit 'perf/core' into perf/hw-breakpoint 2009-10-18 01:12:33 +02:00
mca_32.c
mfgpt_32.c
microcode_amd.c x86: ucode-amd: Move family check to microcde_amd.c's init function 2009-11-17 10:10:40 +01:00
microcode_core.c Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:25:10 -08:00
microcode_intel.c
mmconf-fam10h_64.c
module.c
mpparse.c x86: Move find_smp_config() earlier and avoid bootmem usage 2009-11-24 12:10:51 +01:00
mrst.c
msr.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-05 15:32:35 -08:00
olpc.c
paravirt_patch_32.c
paravirt_patch_64.c
paravirt-spinlocks.c
paravirt.c
pci-calgary_64.c x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking up the PCI tree 2009-12-03 11:44:05 +01:00
pci-dma.c x86: Kill bad_dma_address variable 2009-11-17 07:53:21 +01:00
pci-gart_64.c x86: gart: Clean up the code a bit 2009-11-17 07:57:00 +01:00
pci-nommu.c x86: Kill bad_dma_address variable 2009-11-17 07:53:21 +01:00
pci-swiotlb.c x86: Fix iommu=soft boot option 2009-11-25 10:12:51 +01:00
pcspeaker.c
pmtimer_64.c
probe_roms_32.c
process_32.c Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-05 15:33:27 -08:00
process_64.c Merge branch 'x86-process-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:34:53 -08:00
process.c Merge branch 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2009-12-08 08:02:38 -08:00
ptrace.c hw-breakpoints: Keep track of user disabled breakpoints 2009-12-02 09:59:03 +01:00
pvclock.c
quirks.c x86: AMD Northbridge: Verify NB's node is online 2009-11-16 15:43:05 +01:00
reboot_fixups_32.c x86/reboot: Add pci_dev_put in reboot_fixup_32.c for consistency 2009-12-03 12:17:55 +01:00
reboot.c x86: Use x86_platform for iommu_shutdown 2009-11-08 13:12:26 +01:00
relocate_kernel_32.S
relocate_kernel_64.S
rtc.c
scx200_32.c
setup_percpu.c
setup.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
sfi.c
signal.c Merge branch 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2009-12-08 08:02:38 -08:00
smp.c Revert "x86, timers: Check for pending timers after (device) interrupts" 2009-10-09 15:58:20 +02:00
smpboot.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2009-12-10 09:35:44 -08:00
stacktrace.c
step.c
sys_i386_32.c
sys_x86_64.c
syscall_64.c
syscall_table_32.S net: Introduce recvmmsg socket syscall 2009-10-12 23:40:10 -07:00
tboot.c
tce_64.c
test_nx.c
test_rodata.c
time.c x86: fix kernel panic on 32 bits when profiling 2009-10-12 11:53:51 -07:00
tlb_uv.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
tls.c
tls.h
topology.c
trampoline_32.S
trampoline_64.S x86: Fix Suspend to RAM freeze on Acer Aspire 1511Lmi laptop 2009-10-12 18:06:48 +02:00
trampoline.c x86: Fix Suspend to RAM freeze on Acer Aspire 1511Lmi laptop 2009-10-12 18:06:48 +02:00
traps.c Merge commit 'perf/core' into perf/hw-breakpoint 2009-10-18 01:12:33 +02:00
tsc_sync.c x86: Limit number of per cpu TSC sync messages 2009-11-26 10:17:45 +01:00
tsc.c
uv_irq.c x86, apic: Move SGI UV functionality out of generic IO-APIC code 2009-10-14 09:17:09 +02:00
uv_sysfs.c
uv_time.c x86: UV RTC: Always enable RTC clocksource 2009-11-23 19:41:30 +01:00
verify_cpu_64.S
visws_quirks.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
vm86_32.c
vmi_32.c x86, vmi: Mark VMI deprecated and schedule it for removal 2009-10-08 22:27:55 +02:00
vmiclock_32.c x86: vmiclock: Fix printk format 2009-11-18 12:31:06 +01:00
vmlinux.lds.S Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
vsmp_64.c
vsyscall_64.c Merge branch 'timers-for-linus-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 19:28:09 -08:00
x86_init.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
x8664_ksyms_64.c x86: Add missing might_fault() checks to copy_{to,from}_user() 2009-11-16 16:09:52 +01:00
xsave.c