Searched hist:"4 d576b57" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/arch/x86/xen/ |
H A D | spinlock.c | 4d576b57 Wed Sep 09 14:33:51 CDT 2009 Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> 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> 4d576b57 Wed Sep 09 14:33:51 CDT 2009 Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> 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>
|