[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [GIT PATCH v2 0/14] xen: events: cleanups + ween off nr_irqs
On Thu, 2011-03-10 at 23:23 +0000, Konrad Rzeszutek Wilk wrote: > > > 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 not necessarily. PIRQs (at least as used here) are also an internal Xen concept which shouldn't be exposed outside of the lowlevel event handling. > or should > we provide another piece of code to extract info->u.pirq.gsi? I think we've got one already. But I'll need to have a think about what the correct return is here. > 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. Hmm, yes. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |