PCI Passthrough

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

 



Hi,

I'm trying to passthrough legacy PCI ISDN controller to a KVM based
virtual machine:

<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
    <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
  </source>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
</hostdev>

This only worked once. (The device disappeared from the lspci autoput
the host and was listed on the guest.)

After shutting down the virtual maschine it refused to start again. Even
rebooting the host did not help:

Failed to assign irq for "hostdev0": Input/output error
Perhaps you are assigning a device that shares an IRQ with another device?

lspci -t

-[0000:00]-+-00.0
           +-19.0
           +-1a.0
           +-1c.0-[01]----00.0
           +-1c.4-[02]----00.0
           +-1c.5-[03]----00.0
           +-1d.0
           +-1e.0-[04]----00.0
           +-1f.0
           +-1f.2
           \-1f.3

lspci -vv |grep IRQ
        Interrupt: pin A routed to IRQ 44
        Interrupt: pin B routed to IRQ 22
        Interrupt: pin A routed to IRQ 20
        Interrupt: pin B routed to IRQ 48
        Interrupt: pin D routed to IRQ 22
        Interrupt: pin A routed to IRQ 16
        Interrupt: pin A routed to IRQ 16
        Interrupt: pin A routed to IRQ 3
        Interrupt: pin A routed to IRQ 16

The last line "pin A routed to IRQ 16" belongs to my device:

04:00.0 Communication controller: Tiger Jet Network Inc. Tiger100APC
ISDN chipset
        Subsystem: Device 0054:0001
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 16
        Region 0: I/O ports at 2000 [size=256]
        Region 1: Memory at e2600000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 1
                Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA
PME(D0+,D1-,D2+,D3hot+,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-


Note: After rebooting the host lscpi claims that "pin A is routed to
interrupt 255" for that device. The invocation to virsh start <vm>
changes that to 16.

Nearly every document about PCI passthrough claims that unshared
interrupts are required. But how can this be achieved? (My BIOS supports
interrupt remapping for VT-d. This setting is enabled.)

Thanks in advance

Michael

-- 
EDV-Serviceteam Annika & Michael Hierweck GbR
Egerstraße 53, 44225 Dortmund (Germany)
http://www.edv-serviceteam.net

_______________________________________________
libvirt-users mailing list
libvirt-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvirt-users



[Index of Archives]     [Virt Tools]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux