diff options
| author | Jeremy Fitzhardinge <[email protected]> | 2010-08-21 02:10:01 +0000 |
|---|---|---|
| committer | Jeremy Fitzhardinge <[email protected]> | 2010-08-24 18:14:12 +0000 |
| commit | dffe2e1e1a1ddb566a76266136c312801c66dcf7 (patch) | |
| tree | 2c78da36fc090fff84ff316899f261d221155136 /net/unix/af_unix.c | |
| parent | xen: use percpu interrupts for IPIs and VIRQs (diff) | |
| download | kernel-dffe2e1e1a1ddb566a76266136c312801c66dcf7.tar.gz kernel-dffe2e1e1a1ddb566a76266136c312801c66dcf7.zip | |
xen: handle events as edge-triggered
Xen events are logically edge triggered, as Xen only calls the event
upcall when an event is newly set, but not continuously as it remains set.
As a result, use handle_edge_irq rather than handle_level_irq.
This has the important side-effect of fixing a long-standing bug of
events getting lost if:
- an event's interrupt handler is running
- the event is migrated to a different vcpu
- the event is re-triggered
The most noticable symptom of these lost events is occasional lockups
of blkfront.
Many thanks to Tom Kopec and Daniel Stodden in tracking this down.
Signed-off-by: Jeremy Fitzhardinge <[email protected]>
Cc: Tom Kopec <[email protected]>
Cc: Daniel Stodden <[email protected]>
Cc: Stable Kernel <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions
