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

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



> > > > 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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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