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

Re: [Xen-devel] Driver domain - NEW issue: IRQ handling error

On Wed, Feb 02, 2005 at 02:00:18PM -0400, B.G. Bruce wrote:
> What I've actually found is that if is disable the disabling of the
> interrupt in kernel/irq/spurious.c, everything works fine.  I still get
> the error messages (I didn't comment them out) about every
> 50.000-100.000 packets but I don't drop a packet and everything works as
> it should.  Now obviously I don't want to keep the disabling irq
> disabled, but I'm at a loss for how to fix this otherwise.

I think I understand now what's happening:
- since you have devices on IRQ18 in both dom0 and another domain,
  all IRQ18 interrupts get delivered to both (for loop in
  __do_IRQ_guest in xen/arch/x86/irq.c).
- the ide driver in dom0 will only handle IRQs for the ide controller.
- all e1000 interrupts will be counted as spurious/unhandled.
- if there's hardly any ide interrupts, you can hit the case where
  of 100000 interrupts, 99900 were unhandled and this will cause the
  interrupt to get disabled.

We seem to hit the case mentioned in () above __report_bad_irq.  Not
disabling the interrupt in that case is the correct thing to do, but
the sharing does certainly have a significant performance impact.


This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
Xen-devel mailing list



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