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

Re: [Xen-users] Spurious Interrupts on guest OS



Thanks Stefano. I will try the fix.

Best,
Ashish

> -----Original Message-----
> From: Stefano Stabellini [mailto:stefano.stabellini@xxxxxxxxxxxxx]
> Sent: Monday, June 02, 2014 7:46 AM
> To: Ian Campbell
> Cc: Kapania, Ashish; Stefano Stabellini; xen-users@xxxxxxxxxxxxx
> Subject: Re: [Xen-users] Spurious Interrupts on guest OS
> 
> On Fri, 30 May 2014, Ian Campbell wrote:
> > On Fri, 2014-05-30 at 02:40 +0000, Kapania, Ashish wrote:
> > > Hi All,
> >
> > Copying Stefano who has a series in progress which I have a feeling
> > includes addressing some spurious interrupt issues.
> >
> > >
> > >
> > >
> > > I am trying to run a RTOS as a guest on a OMAP5432 evm and am
> seeing
> > > a spurious interrupt problem when programming the virtual timer
> > > interrupts. My RTOS test case uses the A15 Virtual timer to create
> a
> > > timer instance. Once programmed, the virtual timer interrupt is
> > > injected into my guestâs virtual CPU interface as expected and the
> > > interrupt is also forwarded to my guest. At this point, my RTOSâs
> > > IRQ  service routine is invoked which among other things reads
> > > GICV_IAR register to acknowledge the interrupt and then re-enables
> > > IRQs (to support nested interrupts) before calling the timer
> handler
> > > which is suppose to program the CNTV_CVAL register for the next
> > > tick. I notice that as soon as interrupts are re-enabled, the ISR
> is
> > > interrupted and the IRQ service routine is called again. However,
> > > this time GICV_IAR register returns 1023. Once the ISR detects a
> > > spurious interrupt and returns, it gets interrupted again with
> > > another spurious interrupt. I see that the guest is flooded with
> > > these spurious interrupts and is not able to complete servicing the
> original virtual timer interrupt.
> > >
> > >
> > >
> > > If I disable nesting (i.e. do not re-enable IRQs in my service
> > > routine), everything works as expected which makes me wonder if the
> > > spurious interrupts are related to the virtual timer. I tried
> adding
> > > a debug print in vgic_vcpu_inject_irq to see if xen was injecting
> > > some high priority interrupt but found that xen only injects a
> > > single virtual timer PPI.
> > >
> > >
> > >
> > > Has anyone seen this behavior or has suggestions on how to debug
> > > this problem further ?
> 
> Hi Ashish,
> yes, I have seen this behaviour with a FreeRTOS guest. This patch
> series should fix the issue:
> 
> http://marc.info/?l=xen-devel&m=140076202414100
> 
> A git url is available at the bottom of the email.
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users

 


Rackspace

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