1. 25 8月, 2010 2 次提交
    • J
      xen: handle events as edge-triggered · dffe2e1e
      Jeremy Fitzhardinge 提交于
      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: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Tom Kopec <tek@acm.org>
      Cc: Daniel Stodden <daniel.stodden@citrix.com>
      Cc: Stable Kernel <stable@kernel.org>
      dffe2e1e
    • J
      xen: use percpu interrupts for IPIs and VIRQs · aaca4964
      Jeremy Fitzhardinge 提交于
      IPIs and VIRQs are inherently per-cpu event types, so treat them as such:
       - use a specific percpu irq_chip implementation, and
       - handle them with handle_percpu_irq
      
      This makes the path for delivering these interrupts more efficient
      (no masking/unmasking, no locks), and it avoid problems with attempts
      to migrate them.
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Stable Kernel <stable@kernel.org>
      aaca4964
  2. 23 8月, 2010 5 次提交
  3. 22 8月, 2010 11 次提交
  4. 21 8月, 2010 22 次提交