From: Eli Cohen <eli@dev.mellanox.co.il>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: Xen interrupts when using passthrough
Date: Tue, 4 Oct 2011 21:00:34 +0200 [thread overview]
Message-ID: <20111004190034.GA19881@mtldesk30> (raw)
In-Reply-To: <4E8B3949.4090803@citrix.com>
Andrew, thanks for your response.
On Tue, Oct 04, 2011 at 05:50:17PM +0100, Andrew Cooper wrote:
>
> Do you mean that it is receiving interrupts for another device, or are
> you trying to pass through multiple interrupts for a device and the
> interrupt is appearing in the wrong event channel?
>
I am not sure I understand your question.
> Could you describe your hardware setup in detail please, especially
> AMD/Intel, IOMMU features in use according to Xen, and the PCI topology
> of the box.
Here's a description. I have a PCI device which supports SRIOV, so
there are several virtual functions besides the primary function. The
device generates interrupts using MSI-X. I bind one of the virtual
functions to the guest. The PCI device driver at the guest requests
msix vectors from kernel and gets two vectors. Then it calls
request_irq for those vectors.
When the device generates msix interrupt using the address/data in
it's msi-x table. However, the guest kernel complains the no handler
is registered for this vector. Specifically, I request_irq for vectors
48 and 49. When the device issues interrupt for vector 49, the guest
complains that it received interrupt for vector 89 which has no
handler routine.
>
> > I am
> > trying to understand how is the guest supposed to recieve the
> > interrupt: Is it handled by dom0 which is using event channels to pass
> > the interrupt to domU, or is handled directly by domU. Please send
> > pointers to the code.
>
> (I am not very familiar with guest IRQs so the following might not be
> accurate)
>
> For a PCI passthrough system, the interrupts should be bound directly to
> domU, with no dom0 interaction. A PIRQ is bound to an event channel
> using the EVTCHNOP_bind_pirq in common/event_channel.c, which should be
> set up by qemu for the relevant domU, when it is interpreting the PCI
> config space reads/writes.
My geust kernel is 2.6.32 based and I can't see any file with the name
event_channel.c.
next prev parent reply other threads:[~2011-10-04 19:00 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-04 16:29 Xen interrupts when using passthrough Eli Cohen
2011-10-04 16:50 ` Andrew Cooper
2011-10-04 19:00 ` Eli Cohen [this message]
2011-10-05 7:27 ` Jan Beulich
2011-10-05 8:26 ` Eli Cohen
2011-10-05 8:51 ` Jan Beulich
2011-10-05 9:00 ` Eli Cohen
2011-10-05 9:09 ` Jan Beulich
2011-10-05 9:45 ` Eli Cohen
2011-10-05 9:54 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111004190034.GA19881@mtldesk30 \
--to=eli@dev.mellanox.co.il \
--cc=andrew.cooper3@citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.