This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Re: [PATCH][FIX] Possible fix for spurious interrupts

To: <Keir.Fraser@xxxxxxxxxxxx>,<xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH][FIX] Possible fix for spurious interrupts
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Fri, 14 Apr 2006 19:42:48 +0200
Cc: vo.sinh@xxxxxxxxx
Delivery-date: Fri, 14 Apr 2006 10:43:16 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
This looks questionable to me (even after your follow-up mails). You are, in 
this mode, ack-ing the interrupt before the
handler even gets invoked. I would expect level triggered interrupts to fire 
again right away then if you don't manage
to run the handling domain before re-enabling interrupts. Of course, I haven't 
seen your later attempts at fixing the
problem, but am I missing something here?

>>> Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> 04/13/06 8:12 PM >>>

Here is a patch that appears to fix the spurious interrupt problems for 
me. This is inspired by Jan's observation that the IO-APIC mask/unmask 
that we do for ISR processing seems to cause corruption of other 
routing entries. So the fix here is to do the same as native Linux -- 
do not mask/unmask, but instead send EOI after doing ISR processing.

To confirm this really was the problem I modified native Linux to do 
the same as Xen currently does (mask before ISR processing; unmask 
after). I then got lots of spurious USB interrupts even on native 
Linux! :-(

Please test... I'll put it in xen-unstable tomorrow if there are no 
complaints and it will be a strong candidate for the next 3.0.2 release 

  -- Keir

Xen-devel mailing list