Re: [Xen-devel] Re: [GIT PATCH v2 0/14] xen: events: cleanups +ween off nr_irqs

From: Konrad Rzeszutek Wilk
Date: Fri Mar 11 2011 - 09:30:27 EST


> > > > 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...
> > >
> > > Thanks, I'll take a look. Did you mean "legacy IRQ" as in <16 or as in
> > > not-MSI(-X)?

not-MSI(-X) ones. I've this fancy LSI 1030 controller that sits at GSI 46 on this
SuperMicro board and it is quite confused.
> >
> > Works for me in a PV guest, at least under the second interpretation (I
> > don't have any useful devices IRQ < 16). This is with your pciback 0.5.

OK. Let me boot up that machine and see what /proc/interrupts look like. Maybe
the xen-pciback.hide=() throws a lot of things out of whack.
> >
> > I see something like what you describe under HVM, although pciback is
> > not used in that case. xc_physdev_map_pirq is used but not with
> > the /sys/.../bdf node AFAICT.
> >
> > More digging required I guess...
>
> If I just pass through the EHCI device it doesn't work. However if I
> also pass-through the associated UHCI controller then I do see the
> usb-storage device, interrupts and all. The EHCI controller still
> doesn't work though. Note that with a PV guest passing-through the EHCI
> controller by itself does work.
>
> The issue I'm seeing seems to have more to do with accessing the memory
> mapped BAR than IRQs though:

>
> ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> PHYSDEVOP_map_pirq mapped gsi 46 to pirq 18
> xen_allocate_pirq_gsi for gsi 46, pirq 18 "ioapic-level"
> xen: --> irq=46, pirq=18
> ehci_hcd 0000:00:07.0: PCI INT C -> GSI 46 (level, low) -> IRQ 46
> ehci: remapped rsrc 0xf3021000 to c8064000

<scratch> If you hit the 'i' in the debug console is this
BAR visible there? That is f3021?
> ehci_hcd 0000:00:07.0: setting latency timer to 64
> ehci_hcd 0000:00:07.0: EHCI Host Controller
> ehci_hcd 0000:00:07.0: new USB bus registered, assigned bus number 1
> ehci_reset: handshake failed with -19. regs c80640ff
> ehci_hcd 0000:00:07.0: Enabling legacy PCI PM
> __startup_pirq: irq46 bound to evtchn 19
> ehci_hcd 0000:00:07.0: irq 46, io mem 0xf3021000
> ehci_reset: handshake failed with -19. regs c80640ff
> ehci_run: ehci_reset failed with -19
> ehci_hcd 0000:00:07.0: startup error -19
> ehci_hcd 0000:00:07.0: USB bus 1 deregistered
> ehci_hcd 0000:00:07.0: PCI INT C disabled
> ehci_hcd 0000:00:07.0: init 0000:00:07.0 fail, -19
>
> The -19 is -ENODEV from driver/usb/host/ehci-hcd.c:handshake() which is
> a readl with nothing to do with IRQs.

<nods>
>
> Ian.
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/