[Bug 42636] New: PCI passthrough does not work with AMD iommu for PCI device

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

 



https://bugzilla.kernel.org/show_bug.cgi?id=42636

           Summary: PCI passthrough does not work with AMD iommu for PCI
                    device
           Product: Virtualization
           Version: unspecified
    Kernel Version: 3.1
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: kvm
        AssignedTo: virtualization_kvm@xxxxxxxxxxxxxxxxxxxx
        ReportedBy: kmueller@xxxxxxxxxxx
        Regression: No


I want to passthrough this PCI deivce to a kvm guest:

05:07.0 Network controller: RaLink RT2800 802.11n PCI
        Subsystem: Linksys Device 0067
        Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV+ VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 21
        Region 0: Memory at fdae0000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-

Unfortunately, I'm always getting an error during virsh start guest:

Failed to assign device "hostdev0" : Device or resource busy.
qemu-kvm: -device
pci-assign,host=05:06.0,id=hostdev0,configfd=20,bus=pci.0,addr=0x4: Device
'pci-assign' could not be initialized.

If I'm adding this device (05:06.0) to the guest, too, I'm getting the exactly
same error again. Of course, I unloaded the module of this additional device
before trying to passthrough it to the guest.

lspci -vvs 05:06.0
05:06.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100
(rev 0c)
        Subsystem: Intel Corporation EtherExpress PRO/100 S Desktop Adapter
        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-
        Latency: 64 (2000ns min, 14000ns max), Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 20
        Region 0: Memory at fdaff000 (32-bit, non-prefetchable) [size=4K]
        Region 1: I/O ports at af00 [size=64]
        Region 2: Memory at fdaa0000 (32-bit, non-prefetchable) [size=128K]
        [virtual] Expansion ROM at fd900000 [disabled] [size=64K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-


lspci -vt
-[0000:00]-+-00.0  ATI Technologies Inc RD890 PCI to PCI bridge (external gfx0
port B)
           +-00.2  ATI Technologies Inc Device 5a23
           +-02.0-[01]--+-00.0  ATI Technologies Inc NI Turks [AMD Radeon HD
6500]
           |            \-00.1  ATI Technologies Inc Device aa90
           +-04.0-[02]----00.0  Device 1b6f:7023
           +-09.0-[03]----00.0  Realtek Semiconductor Co., Ltd. RTL8111/8168B
PCI Express Gigabit Ethernet controller
           +-0a.0-[04]----00.0  Device 1b6f:7023
           +-11.0  ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode]
           +-12.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
           +-12.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller
           +-13.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
           +-13.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller
           +-14.0  ATI Technologies Inc SBx00 SMBus Controller
           +-14.1  ATI Technologies Inc SB700/SB800 IDE Controller
           +-14.2  ATI Technologies Inc SBx00 Azalia (Intel HDA)
           +-14.3  ATI Technologies Inc SB700/SB800 LPC host controller
           +-14.4-[05]--+-06.0  Intel Corporation 82557/8/9/0/1 Ethernet Pro
100
           |            \-07.0  RaLink RT2800 802.11n PCI
           +-14.5  ATI Technologies Inc SB700/SB800 USB OHCI2 Controller
           +-15.0-[06]--
           +-16.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
           +-16.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller
           +-18.0  Advanced Micro Devices [AMD] Device 1600
           +-18.1  Advanced Micro Devices [AMD] Device 1601
           +-18.2  Advanced Micro Devices [AMD] Device 1602
           +-18.3  Advanced Micro Devices [AMD] Device 1603
           +-18.4  Advanced Micro Devices [AMD] Device 1604
           \-18.5  Advanced Micro Devices [AMD] Device 1605

dmesg | grep AMD-Vi
[    0.610182] AMD-Vi: device: 00:00.2 cap: 0040 seg: 0 flags: 3e info 1300
[    0.610184] AMD-Vi:        mmio-addr: 00000000fec30000
[    0.610359] AMD-Vi:   DEV_SELECT_RANGE_START  devid: 00:00.0 flags: 00
[    0.610360] AMD-Vi:   DEV_RANGE_END           devid: 00:00.2
[    0.610362] AMD-Vi:   DEV_SELECT                      devid: 00:02.0 flags:
00
[    0.610363] AMD-Vi:   DEV_SELECT_RANGE_START  devid: 01:00.0 flags: 00
[    0.610364] AMD-Vi:   DEV_RANGE_END           devid: 01:00.1
[    0.610366] AMD-Vi:   DEV_SELECT                      devid: 00:04.0 flags:
00
[    0.610367] AMD-Vi:   DEV_SELECT                      devid: 02:00.0 flags:
00
[    0.610368] AMD-Vi:   DEV_SELECT                      devid: 00:09.0 flags:
00
[    0.610369] AMD-Vi:   DEV_SELECT                      devid: 03:00.0 flags:
00
[    0.610370] AMD-Vi:   DEV_SELECT                      devid: 00:0a.0 flags:
00
[    0.610371] AMD-Vi:   DEV_SELECT                      devid: 04:00.0 flags:
00
[    0.610372] AMD-Vi:   DEV_SELECT                      devid: 00:11.0 flags:
00
[    0.610373] AMD-Vi:   DEV_SELECT_RANGE_START  devid: 00:12.0 flags: 00
[    0.610374] AMD-Vi:   DEV_RANGE_END           devid: 00:12.2
[    0.610376] AMD-Vi:   DEV_SELECT_RANGE_START  devid: 00:13.0 flags: 00
[    0.610377] AMD-Vi:   DEV_RANGE_END           devid: 00:13.2
[    0.610378] AMD-Vi:   DEV_SELECT                      devid: 00:14.0 flags:
d7
[    0.610379] AMD-Vi:   DEV_SELECT                      devid: 00:14.1 flags:
00
[    0.610380] AMD-Vi:   DEV_SELECT                      devid: 00:14.2 flags:
00
[    0.610381] AMD-Vi:   DEV_SELECT                      devid: 00:14.3 flags:
00
[    0.610382] AMD-Vi:   DEV_SELECT                      devid: 00:14.4 flags:
00
[    0.610384] AMD-Vi:   DEV_ALIAS_RANGE                 devid: 05:00.0 flags:
00 devid_to: 00:14.4
[    0.610385] AMD-Vi:   DEV_RANGE_END           devid: 05:1f.7
[    0.610391] AMD-Vi:   DEV_SELECT                      devid: 00:14.5 flags:
00
[    0.610392] AMD-Vi:   DEV_SELECT                      devid: 00:15.0 flags:
00
[    0.610393] AMD-Vi:   DEV_SELECT_RANGE_START  devid: 06:00.0 flags: 00
[    0.610394] AMD-Vi:   DEV_RANGE_END           devid: 06:1f.7
[    0.610398] AMD-Vi:   DEV_SELECT_RANGE_START  devid: 00:16.0 flags: 00
[    0.610399] AMD-Vi:   DEV_RANGE_END           devid: 00:16.2
[    0.610531] AMD-Vi: Enabling IOMMU at 0000:00:00.2 cap 0x40
[    0.669479] AMD-Vi: Lazy IO/TLB flushing enabled

kernel is 3.1
kvm is 1.0
board is GA-990XA-UD3

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux