xen-devel
[Xen-devel] Re: [GIT PATCH v2 0/14] xen: events: cleanups + ween off nr_
> > There is no ideal sequencing of this series vs e7bcecb7b1d2 (most should
> > have gone in before, but the penultimate patch really needed to be
> > simultaneous) so I haven't bothered to try and pull anything from tip
> > into this branch -- it should all be resolved during the merge window
> > and bisection won't be too broken since the "eat into GSI space"
> > workaround only appears to be needed on a small number of older
> > platforms (qemu being the main exception).
>
> <nods>
> >
> > I have tested:
> > * Domain 0 on real h/w and under qemu
> > * PV guest, including migration and passthrough of both VF and PF.
> > * PVHVM guest, including migration and passthrough of both VF and
> > PF.
>
> I am having difficulties with passthrough of an USB device. Somehow the
> irq count is not going up at all (both in dom0 and domU) and it looks to
> be doing just simple polling. I've rebased the xen-pciback to be on top
> of your changes and apply cleanly. The whole lot is now in #master
>
> MSI and MSI-X devices work just fine in both Dom0 and DomU case so
> it is something special with the legacy IRQs. Probably forgot something
> simple...
This looks like it would fix the culprit:
[edit: not entirely]
diff --git a/drivers/xen/pciback/conf_space_header.c
b/drivers/xen/pciback/conf_space_header.c
index 22ad0f5..3eeb197 100644
--- a/drivers/xen/pciback/conf_space_header.c
+++ b/drivers/xen/pciback/conf_space_header.c
@@ -6,6 +6,7 @@
#include <linux/kernel.h>
#include <linux/pci.h>
+#include <xen/events.h>
#include "pciback.h"
#include "conf_space.h"
@@ -246,7 +247,7 @@ static int pciback_read_device(struct pci_dev *dev, int
offset,
static int interrupt_read(struct pci_dev *dev, int offset, u8 * value,
void *data)
{
- *value = (u8) dev->irq;
+ *value = (u8) dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
return 0;
}
Thought I am not sure if this is absolutly correct. Are the PIRQs == GSI or
should
we provide another piece of code to extract info->u.pirq.gsi?
I also see this when using xen-pciback.hide=..
pciback 0000:00:1d.7: found PCI INT A -> IRQ 14
pciback 0000:00:1d.7: sharing IRQ 14 with 0000:00:1d.0
pciback 0000:00:1d.0: found PCI INT A -> IRQ 14
pciback 0000:00:1d.0: sharing IRQ 14 with 0000:00:1d.7
pciback 0000:00:1d.1: found PCI INT B -> IRQ 5
pciback 0000:00:1d.1: sharing IRQ 5 with 0000:00:16.3
pciback 0000:00:1d.1: sharing IRQ 5 with 0000:00:16.7
pciback 0000:00:1d.1: sharing IRQ 5 with 0000:00:1a.2
..
.. which are clearly the Linux IRQ's, not the PIRQ/GSI values,
so some other patch for the xen-pciback will be needed as well.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH 08/14] xen: events: turn irq_info constructors into initialiser functions, (continued)
- [Xen-devel] [PATCH 08/14] xen: events: turn irq_info constructors into initialiser functions, Ian Campbell
- [Xen-devel] [PATCH 10/14] xen: events: maintain a list of Xen interrupts, Ian Campbell
- [Xen-devel] [PATCH 11/14] xen: events: dynamically allocate irq info structures, Ian Campbell
- [Xen-devel] [PATCH 09/14] xen: events: push setup of irq<->{evtchn, ipi, virq, pirq} maps into irq_info init functions, Ian Campbell
- [Xen-devel] [PATCH 12/14] xen: events: remove use of nr_irqs as upper bound on number of pirqs, Ian Campbell
- [Xen-devel] [PATCH 13/14] xen: events: do not workaround too-small nr_irqs, Ian Campbell
- [Xen-devel] [PATCH 14/14] xen: events: propagate irq allocation failure instead of panicking, Ian Campbell
- [Xen-devel] Re: [GIT PATCH v2 0/14] xen: events: cleanups + ween off nr_irqs, Konrad Rzeszutek Wilk
- Re: [Xen-devel] Re: [GIT PATCH v2 0/14] xen: events: cleanups + ween off nr_irqs, Konrad Rzeszutek Wilk
|
|
|