aboutsummaryrefslogtreecommitdiff
path: root/arch/tile/lib
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2011-02-28 13:24:37 -0500
committerChris Metcalf <cmetcalf@tilera.com>2011-03-01 16:20:10 -0500
commitb2ce2bdaf942172914a9a39b26065ff7aacdf962 (patch)
treeb91ee72c1bd0b4586ebf69ee7889b82c9c5963b3 /arch/tile/lib
parent13371731487896a6ef158b1cd74297f40a3da4bb (diff)
arch/tile: stop disabling INTCTRL_1 interrupts during hypervisor downcalls
The problem was that this could lead to IPIs being disabled during the softirq processing after a hypervisor downcall (e.g. for I/O), since both IPI and device interrupts use the INCTRL_1 downcall mechanism. When this happened at the wrong time, it could lead to deadlock. Luckily, we were already maintaining the per-interrupt state we need, and using it in the proper way in the hypervisor, so all we had to do was to change Linux to stop blocking downcall interrupts for the entire length of the downcall. (Now they're blocked while we're executing the downcall routine itself, but not while we're executing any subsequent softirq routines.) The hypervisor is doing a very small amount of work it no longer needs to do (masking INTCTRL_1 on entry to the client interrupt routine), but doing so means that older versions of Tile Linux will continue to work with a current hypervisor, so that seems reasonable. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/lib')
0 files changed, 0 insertions, 0 deletions