kernel-ark/arch/x86/xen
Jeremy Fitzhardinge 4d576b57b5 xen: only enable interrupts while actually blocking for spinlock
Where possible we enable interrupts while waiting for a spinlock to
become free, in order to reduce big latency spikes in interrupt handling.

However, at present if we manage to pick up the spinlock just before
blocking, we'll end up holding the lock with interrupts enabled for a
while.  This will cause a deadlock if we recieve an interrupt in that
window, and the interrupt handler tries to take the lock too.

Solve this by shrinking the interrupt-enabled region to just around the
blocking call.

[ Impact: avoid race/deadlock when using Xen PV spinlocks ]

Reported-by: "Yang, Xiaowei" <xiaowei.yang@intel.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
2009-09-09 16:38:11 -07:00
..
debugfs.c
debugfs.h
enlighten.c xen: make -fstack-protector work under Xen 2009-09-09 16:37:39 -07:00
grant-table.c
irq.c xen: use our own eventchannel->irq path 2009-02-09 12:17:30 +01:00
Kconfig x86: remove the Voyager 32-bit subarch 2009-02-23 00:54:01 +01:00
Makefile xen: make -fstack-protector work under Xen 2009-09-09 16:37:39 -07:00
mmu.c Merge branch 'x86-xen-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 16:16:27 -07:00
mmu.h xen: separate p2m allocation from setting 2009-04-08 11:51:44 -07:00
multicalls.c x86, xen: do multicall callbacks with interrupts disabled 2009-02-16 08:56:41 +01:00
multicalls.h Merge commit 'v2.6.29-rc4' into core/percpu 2009-02-09 14:58:11 +01:00
setup.c xen: reserve Xen start_info rather than e820 reserving 2009-05-08 10:51:03 +02:00
smp.c xen: make -fstack-protector work under Xen 2009-09-09 16:37:39 -07:00
spinlock.c xen: only enable interrupts while actually blocking for spinlock 2009-09-09 16:38:11 -07:00
suspend.c
time.c clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
vdso.h
xen-asm_32.S x86: style cleanups for xen assemblies 2009-02-05 20:25:41 +01:00
xen-asm_64.S x86: style cleanups for xen assemblies 2009-02-05 20:25:41 +01:00
xen-asm.h xen: make direct versions of irq_enable/disable/save/restore to common code 2009-02-04 16:59:04 -08:00
xen-asm.S x86: style cleanups for xen assemblies 2009-02-05 20:25:41 +01:00
xen-head.S x86: use _types.h headers in asm where available 2009-02-13 11:35:01 -08:00
xen-ops.h Merge branch 'x86-xen-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 16:16:27 -07:00