From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v3 0/6] interrupt handling fixes Date: Tue, 10 Dec 2013 22:09:05 +0000 Message-ID: <52A79101.8080305@linaro.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Stefano Stabellini , xen-devel@lists.xensource.com Cc: Julien Grall , Ian Campbell List-Id: xen-devel@lists.xenproject.org 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 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@lists.xen.org > http://lists.xen.org/xen-devel > -- Julien Grall