[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 0/6] interrupt handling fixes





On 12/10/2013 06:49 PM, Stefano Stabellini wrote:
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.

The 2 last issues was found on the versatile express. I gave a try with this patch series and it works fine.

For the versatile express:

Tested-by: Julien Grall <julien.grall@xxxxxxxxxx>

I will give a try to the first bug on the Arndale tomorrow.

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(-)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.