xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] interrupt handling fixes
@ 2013-12-10 18:49 Stefano Stabellini
  2013-12-10 18:50 ` [PATCH v3 1/6] xen/arm: Physical IRQ is not always equal to virtual IRQ Stefano Stabellini
                   ` (6 more replies)
  0 siblings, 7 replies; 21+ messages in thread
From: Stefano Stabellini @ 2013-12-10 18:49 UTC (permalink / raw)
  To: xen-devel; +Cc: Julien Grall, Ian Campbell, Stefano Stabellini

Hi all,
this series is a reworked version of "Fix multiple issues with the
interrupts on ARM":

http://marc.info/?l=xen-devel&m=137211515720144

It fixes a few different issues that affect interrupt handling in Xen on
ARM today:

- the guest looses a vtimer interrupt notification when it sets a
deadline in the past from the guest vtimer interrupt handler, before
EOIing the interrupt;

- Xen adds a guest irq to the LR registers twice if the guest disables
and renables an interrupt before EOIing it;

- Xen enables interrupts corresponding to devices assigned to dom0
before booting dom0, resulting in the possibility of receiving an
interrupt and not knowing what to do with it.


Changes in v3:
- do not set the GUEST_PENDING bit for evtchn_irq if the irq is already
guest visible.

Changes in v2:
- remove eoi variable and check on p->desc != NULL instead;
- use atomic operations to modify the pending_irq status bits, remove
the now unnecessary locks;
- make status unsigned long;
- in maintenance_interrupt only stops injecting interrupts if no new
interrupts have been added to the LRs;
- add a state to keep track whether the guest irq is enabled at the
vgicd level;
- no need to read the current GICD_ISENABLER before writing it;
- protect startup and shutdown with gic and desc locks;
- disable IRQs that were previously disabled.


Julien Grall (2):
      xen/arm: Physical IRQ is not always equal to virtual IRQ
      xen/arm: Only enable physical IRQs when the guest asks

Stefano Stabellini (4):
      xen/arm: track the state of guest IRQs
      xen/arm: do not add a second irq to the LRs if one is already present
      xen/arm: implement gic_irq_enable and gic_irq_disable
      xen/arm: disable a physical IRQ when the guest disables the corresponding IRQ

 xen/arch/arm/gic.c           |  130 +++++++++++++++++++++++++-----------------
 xen/arch/arm/vgic.c          |   43 +++++++++++---
 xen/include/asm-arm/domain.h |   40 +++++++++++++
 3 files changed, 154 insertions(+), 59 deletions(-)

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-12-12 14:55 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-10 18:49 [PATCH v3 0/6] interrupt handling fixes Stefano Stabellini
2013-12-10 18:50 ` [PATCH v3 1/6] xen/arm: Physical IRQ is not always equal to virtual IRQ Stefano Stabellini
2013-12-10 18:50 ` [PATCH v3 2/6] xen/arm: track the state of guest IRQs Stefano Stabellini
2013-12-11 14:38   ` Ian Campbell
2013-12-11 19:00     ` Stefano Stabellini
2013-12-12 11:55       ` Ian Campbell
2013-12-12 14:55         ` Stefano Stabellini
2013-12-10 18:50 ` [PATCH v3 3/6] xen/arm: do not add a second irq to the LRs if one is already present Stefano Stabellini
2013-12-10 22:06   ` Julien Grall
2013-12-10 18:50 ` [PATCH v3 4/6] xen/arm: implement gic_irq_enable and gic_irq_disable Stefano Stabellini
2013-12-10 21:30   ` Julien Grall
2013-12-10 18:50 ` [PATCH v3 5/6] xen/arm: Only enable physical IRQs when the guest asks Stefano Stabellini
2013-12-10 21:11   ` Julien Grall
2013-12-11 12:50     ` Stefano Stabellini
2013-12-11 13:34       ` Julien Grall
2013-12-11 13:38   ` Julien Grall
2013-12-11 17:25     ` Stefano Stabellini
2013-12-10 18:50 ` [PATCH v3 6/6] xen/arm: disable a physical IRQ when the guest disables the corresponding IRQ Stefano Stabellini
2013-12-10 22:05   ` Julien Grall
2013-12-10 22:09 ` [PATCH v3 0/6] interrupt handling fixes Julien Grall
2013-12-11 14:19   ` Ian Campbell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).