Friday, October 23, 2015

Intel processors with ACS support

If you've been keeping up with this blog then you understand a bit about IOMMU groups and device isolation.  In my howto series I describe the limitations of the Xeon E3 processor that I use in my example system and recommend Xeon E5 or higher processors to provide the best case device isolation for those looking to build a system.  Well, thanks to the vfio-users mailing list, it has come to my attention that there are in fact Core i7 processors with PCIe Access Control Services (ACS) support on the processor root ports.

Intel lists these processors as High End Desktop Processors, they include Socket 2011-v3 Haswell E processors, Socket 2011 Ivy Bridge E processors, and Socket 2011 Sandy Bridge E processors.  The linked datasheets for each family clearly lists ACS register capabilities.  Current listings for these processors include:

Haswell-E (LGA2011-v3)
i7-5960X (8-core, 3/3.5GHz)
i7-5930K (6-core, 3.2/3.8GHz)
i7-5820K (6-core, 3.3/3.6GHz)

Ivy Bridge-E (LGA2011)
i7-4960X (6-core, 3.6/4GHz)
i7-4930K (6-core, 3.4/3.6GHz)
i7-4820K (4-core, 3.7/3.9GHz)

Sandy Bridge-E (LGA2011)
i7-3960X (6-core, 3.3/3.9GHz)
i7-3970X (6-core, 3.5/4GHz)
i7-3930K (6-core, 3.2/3.8GHz)
i7-3820 (4-core, 3.6/3.8GHz)

These also appear to be the only Intel Core processors compatible with Socket 2011 and 2011-v3 found on X79 and X99 motherboards, so basing your platform around these chipsets will hopefully lead to success.  My recommendation is based only on published specs, not first hand experience though, so your mileage may vary.

Unfortunately there are not yet any Skylake based "High End Desktop Processors" and from what we've seen on the mailing list, Skylake does not implement ACS on processor root ports, nor do we have quirks to enable isolation on the Z170 PCH root ports (which include a read-only ACS capability, effectively confirming lack of isolation), and integrated I/O devices on the motherboard exhibit poor grouping with system management components (aside from the onboard I219 LOM, which we do have quirked).  This makes the currently available Skylake platforms a really bad choice for doing device assignment.

Based on this new data, I'll revise my recommendation for Intel platforms to include Xeon E5 and higher processors or Core i7 High End Desktop Processors (as listed by Intel).  Of course there are combinations where regular Core i5, i7 and Xeon E3 processors will work well, we simply need to be aware of their limitations and factor that into our system design.

EDIT (Oct 30 04:18 UTC 2015): A more subtle feature also found in these E series processors is support for IOMMU super pages.  The datasheets for the E5 Xeons and these High End Desktop Processors indicate support for 2MB and 1GB IOMMU pages while the standard Core i5 and i7 only support 4KB pages.  This means less space wasted for the IOMMU page tables, more efficient table walks by the hardware, and less thrashing of the I/O TLB under I/O load resulting in I/O stalls.  Will you notice it?  Maybe.  VFIO will take advantage of IOMMU super pages any time we find a sufficiently sized range of contiguous pages.  To help insure this happens, make use of hugepages in the VM.

EDIT (Oct 15 18:20 UTC 2016): Intel Broadwell-E processors have been out for some time and as we'd expect, the datasheets do indicate that ACS is supported.  So add to the list above:

Broadwell-E (LGA2011-v3)
i7-6950X (10-core, 3.0/3.5GHz)
i7-6900K (8-core, 3.2/3.7GHz)
i7-6850K (6-core, 3.6/3.8GHz)
i7-6800K (6-core, 3.4/3.6GHz)

19 comments:

  1. Further interesting comments on the mailing list: https://www.redhat.com/archives/vfio-users/2015-October/msg00209.html

    ReplyDelete
  2. I'd like to build a virtualized HTPC - with Linux host optimized for running a single guest at a time that would have passthrough access to media hardware (GPU, sound, possibly optical drive and USB storage devices). As size, noise and thermal performance are all major considerations, the server CPUs appear to be a bad fit. I was able to find a single X99 based mini-ITX board but cooling it and the 140W hog of an i7-5820K look like a steep challenge. Is building such a system on a consumer processor architecture (counting on the ACS patch) an entirely unwise proposition, or is it par for the course for non-critical uses? Are there CPU/chipset/m-b combinations that are already known to work well? I am starting from complete blank slate and budget is not [yet] a major issue.

    ReplyDelete
    Replies
    1. Let's go back to why should you care about ACS on processor root ports. The processor root ports generally provide the x16 graphics slots. On typical consumer grade Core i5/i7 processors these slots are not isolated from each other meaning that unintended peer-to-peer DMA between slots can occur causing problems with your VMs. However, if you do not intend to run more than one VM at a time or split processor root ports between host and guest, you can get by just fine with a lesser processor. If you're looking at mini-ITX systems there's generally only one slot anyway, so as long as the onboard I/O isn't using processor root ports, you're generally fine. Look at the example system I use in the howto guides, it works for me because I'm not attempting to install anything other than a single GPU in the processor root ports. ACS is only a requirement if you want/need ultimate flexibility for using every slot in the system independently.

      Delete
  3. Hello. Can you explain what is exectly bad with skylake? I have now skylake 6600k and asus z170k, and looks like i have problems with passthrough. I tried different patches and kernels, and have no success at all. Here is my dmesg:
    http://pastebin.com/5453evRH

    loki@loki:~/src$ cat /proc/iomem
    00000000-00000fff : reserved
    00001000-0009c7ff : System RAM
    0009c800-0009ffff : reserved
    000a0000-000bffff : PCI Bus 0000:00
    000c0000-000cf9ff : Video ROM
    000e0000-000fffff : reserved
    000f0000-000fffff : System ROM
    00100000-67968fff : System RAM
    01000000-01951c66 : Kernel code
    01951c67-01f23fff : Kernel data
    02029000-020fbfff : Kernel bss
    67969000-67969fff : ACPI Non-volatile Storage
    6796a000-67993fff : reserved
    67994000-679d0fff : System RAM
    679d1000-67ef1fff : reserved
    67ef2000-6c8a0fff : System RAM
    6c8a1000-6dd77fff : reserved
    6dd78000-6ddaffff : ACPI Tables
    6ddb0000-6e706fff : ACPI Non-volatile Storage
    6e707000-6f3fefff : reserved
    6f3ff000-6f3fffff : System RAM
    6f400000-6fffffff : RAM buffer
    70000000-8fffffff : reserved
    90000000-dfffffff : PCI Bus 0000:00
    90000000-901fffff : PCI Bus 0000:07
    90200000-903fffff : PCI Bus 0000:07
    c0000000-cfffffff : 0000:00:02.0
    c0000000-c07e8fff : BOOTFB
    d0000000-db0fffff : PCI Bus 0000:01
    d0000000-d7ffffff : 0000:01:00.0
    d8000000-d9ffffff : 0000:01:00.0
    da000000-daffffff : 0000:01:00.0
    db000000-db07ffff : 0000:01:00.0
    db080000-db083fff : 0000:01:00.1
    dc000000-dcffffff : 0000:00:02.0
    dd000000-dd0fffff : PCI Bus 0000:06
    dd000000-dd003fff : 0000:06:00.0
    dd000000-dd003fff : r8169
    dd004000-dd004fff : 0000:06:00.0
    dd004000-dd004fff : r8169
    dd100000-dd1fffff : PCI Bus 0000:03
    dd100000-dd107fff : 0000:03:00.0
    dd100000-dd107fff : xhci-hcd
    dd200000-dd20ffff : 0000:00:1f.3
    dd200000-dd20ffff : ICH HD audio
    dd210000-dd21ffff : 0000:00:14.0
    dd210000-dd21ffff : xhci-hcd
    dd220000-dd223fff : 0000:00:1f.3
    dd220000-dd223fff : ICH HD audio
    dd224000-dd227fff : 0000:00:1f.2
    dd228000-dd229fff : 0000:00:17.0
    dd228000-dd229fff : ahci
    dd22a000-dd22a0ff : 0000:00:1f.4
    dd22b000-dd22b7ff : 0000:00:17.0
    dd22b000-dd22b7ff : ahci
    dd22c000-dd22c0ff : 0000:00:17.0
    dd22c000-dd22c0ff : ahci
    dd22d000-dd22dfff : 0000:00:16.0
    dffc0000-dffdffff : pnp 00:07
    e0000000-efffffff : PCI MMCONFIG 0000 [bus 00-ff]
    e0000000-efffffff : reserved
    e0000000-efffffff : pnp 00:07
    fd000000-fe7fffff : PCI Bus 0000:00
    fd000000-fdabffff : pnp 00:08
    fdac0000-fdacffff : pnp 00:09
    fdad0000-fdadffff : pnp 00:08
    fdae0000-fdaeffff : pnp 00:09
    fdaf0000-fdafffff : pnp 00:09
    fdb00000-fdffffff : pnp 00:08
    fe000000-fe010fff : reserved
    fe036000-fe03bfff : pnp 00:08
    fe03d000-fe3fffff : pnp 00:08
    fe410000-fe7fffff : pnp 00:08
    fec00000-fec00fff : reserved
    fec00000-fec003ff : IOAPIC 0
    fed00000-fed003ff : HPET 0
    fed00000-fed003ff : PNP0103:00
    fed10000-fed17fff : pnp 00:07
    fed18000-fed18fff : pnp 00:07
    fed19000-fed19fff : pnp 00:07
    fed20000-fed3ffff : pnp 00:07
    fed45000-fed8ffff : pnp 00:07
    fed90000-fed90fff : dmar0
    fed91000-fed91fff : dmar1
    fee00000-fee00fff : Local APIC
    fee00000-fee00fff : reserved
    ff000000-ffffffff : reserved
    ff000000-ffffffff : INT0800:00
    ff000000-ffffffff : pnp 00:07
    100000000-46effffff : System RAM
    46f000000-46fffffff : RAM buffer

    ReplyDelete
    Replies
    1. lspci and /sys/kernel/iommu_groups/ is far more interesting than /proc/iomem. Here's what we can see from your dmesg though:

      iommu: Adding device 0000:00:00.0 to group 0
      This is your root bridge, groups is a don't care

      iommu: Adding device 0000:00:01.0 to group 1
      iommu: Adding device 0000:00:02.0 to group 2
      These are your processor root ports. It is good that they're separate PCI slots addresses, that means that even if they allow redirection, the physical slots are isolated from one another.

      iommu: Adding device 0000:00:14.0 to group 3
      iommu: Adding device 0000:00:16.0 to group 4
      iommu: Adding device 0000:00:17.0 to group 5
      iommu: Adding device 0000:00:1b.0 to group 6
      iommu: Adding device 0000:00:1d.0 to group 8
      If these are anything worth assigning, you're lucky they're showing up at separate PCI slot addresses, typically Skylake uses multifunction devices where the function are not isolated, so assigning any separate function requires unbinding motherboard controllers from their host drivers.

      iommu: Adding device 0000:00:1c.0 to group 7
      iommu: Adding device 0000:00:1c.2 to group 7
      iommu: Adding device 0000:00:1c.3 to group 7
      iommu: Adding device 0000:03:00.0 to group 7
      iommu: Adding device 0000:04:00.0 to group 7
      iommu: Adding device 0000:06:00.0 to group 7
      This is a problem. It's unfortunately typical for the PCH root ports to lack ACS, but we've been lucky that Intel has provided quirks for other chipsets to enable isolation, allowing these devices to be separated. On Z170, the PCH root ports do include ACS, but the control register is read-only, implying that exactly the kind of peer-to-peer that we're trying to prevent is indeed possible. There is no ETA whatsoever or guarantee that we can ever split these devices.

      iommu: Adding device 0000:00:1f.0 to group 9
      iommu: Adding device 0000:00:1f.2 to group 9
      iommu: Adding device 0000:00:1f.3 to group 9
      iommu: Adding device 0000:00:1f.4 to group 9
      Here's one of those sets of multifunction devices that might have something you like to assigned co-mingled with motherboard components that you best not unbind from their host driver.

      iommu: Adding device 0000:01:00.0 to group 10
      iommu: Adding device 0000:01:00.1 to group 10
      This is surprising, I assume this is your GPU. Are you using the ACS override patch or otherwise hacking in fake ACS? I would expect to see these grouped with either 01.0 or 02.0 above since you don't have one of the recommended processors known to support ACS.

      Delete
    2. Hello, i read carefully vfio-users. maybe it is better to create topic there?

      Delete
  4. My find /sys/kernel/iommu_groups/ http://pastebin.com/rmnFtVGP
    lspci
    http://pastebin.com/Prkn2YpY

    How i try to start my virtual machine:
    qemu-system-x86_64 \
    -enable-kvm \
    -m 2048 \
    -cpu host,kvm=off \
    -vga none \
    -device vfio-pci,host=01:00.0 \
    -device vfio-pci,host=01:00.1 \
    -drive if=pflash,format=raw,readonly,file=./usr/share/edk2.git/ovmf-x64/OVMF-pure-efi.fd \
    -drive if=pflash,format=raw,file=./usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd

    It launches fine, but no any output on vga of my nvdia 660gtx. Also i tried with i915 VGA arbitration and seabios. I have patched with override_for_missing_acs_capabilities.patch too.

    Maybe it is cost something... i found pretty old radeon 3870 and tried same with it, when i start my virtual machine with seabios, cooler on radeon getting laud, like when i use it as primary video adapter. Is this mean something?

    ReplyDelete
    Replies
    1. Your GPU is now grouped with the processor root port as I'd expect and I see you say you are/were using the override, so that makes sense. You should not need the i915 patch using OVMF, but you do need a GPU ROM that supports UEFI. I'd suggest follow-up to the vfio-users list.

      Delete
    2. My 660 have uefi support it is not enough? And can you explain my chances to getting passthrough working?

      Delete
    3. Take it to the mailing list please.

      Delete
    4. It is working! Yeah!!! Thank you very much! Follow up you mean i need create my own topic? I am not good at maillists.

      Delete
    5. Yes, on mailing lists you generally want to start a new thread with a new subject rather than continue an existing one for a new issue. If everything is working now though, maybe there's nothing left to followup with on the mailing list.

      Delete
  5. The Intel Xeon E3-1200 v3 series of processors support superpages of 2MB and 1GB sizes according to the Intel datasheet (http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e3-1200v3-vol-1-datasheet.pdf page 43) while the "v1" and v2 series do not.

    Here are the datasheets for the v1 and v2 series.
    http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e3-1200-family-vol-1-datasheet.pdf
    http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e3-1200v2-vol-1-datasheet.pdf
    Look at page 39 for both of the above.

    You should update the article accordingly.

    ReplyDelete
  6. Also regarding Skylake device assignment, Wendell from TekSyndicate has managed to get it working on Arch Linux and he also explains how in a video and also a forum link.

    Here is the video
    https://www.youtube.com/watch?v=16dbAUrtMX4

    ReplyDelete
  7. At first it seemed to be a tough story. But it came light to the end.

    ReplyDelete
  8. Hmm. I have the Intel i5-4570S CPU and my x16 (3.0) graphics slot is completely isolated so my CPU root ports must have ACS?

    On the contrary, my second x16 (2.0) (with x4 lanes) graphics slot is grouped with the two x1 pci-e slots and the bridge to PCI too.

    Also, ALL of my CPU related devices are isolated (integrated graphics, audio, etc) it's almost like the CPU is the only part of the system which DOES have ACS.

    Sorry for the huge post but unless I mis-understood your post, I thought you'd find it interesting.

    Oh btw, AsRock Z97 Pro 4 - they seem pretty good for IOMMU - just a shame that I can't separate the second gfx card from the x1 slots as I run an ethernet card there for my pfSense firewall :(

    Here's my IOMMU groups and PCI id's
    /sys/kernel/iommu_groups/0/devices/0000:00:00.0
    /sys/kernel/iommu_groups/1/devices/0000:00:01.0
    /sys/kernel/iommu_groups/1/devices/0000:01:00.0
    /sys/kernel/iommu_groups/1/devices/0000:01:00.1
    /sys/kernel/iommu_groups/2/devices/0000:00:02.0
    /sys/kernel/iommu_groups/3/devices/0000:00:03.0
    /sys/kernel/iommu_groups/4/devices/0000:00:14.0
    /sys/kernel/iommu_groups/5/devices/0000:00:16.0
    /sys/kernel/iommu_groups/6/devices/0000:00:19.0
    /sys/kernel/iommu_groups/7/devices/0000:00:1a.0
    /sys/kernel/iommu_groups/8/devices/0000:00:1b.0
    /sys/kernel/iommu_groups/9/devices/0000:00:1c.0
    /sys/kernel/iommu_groups/9/devices/0000:00:1c.2
    /sys/kernel/iommu_groups/9/devices/0000:00:1c.4
    /sys/kernel/iommu_groups/9/devices/0000:00:1c.6
    /sys/kernel/iommu_groups/9/devices/0000:03:00.0
    /sys/kernel/iommu_groups/9/devices/0000:05:00.0
    /sys/kernel/iommu_groups/9/devices/0000:05:00.1
    /sys/kernel/iommu_groups/9/devices/0000:06:00.0
    /sys/kernel/iommu_groups/10/devices/0000:00:1d.0
    /sys/kernel/iommu_groups/11/devices/0000:00:1f.0
    /sys/kernel/iommu_groups/11/devices/0000:00:1f.2
    /sys/kernel/iommu_groups/11/devices/0000:00:1f.3

    00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
    00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
    00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
    00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
    00:14.0 USB controller: Intel Corporation 9 Series Chipset Family USB xHCI Controller
    00:16.0 Communication controller: Intel Corporation 9 Series Chipset Family ME Interface #1
    00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
    00:1a.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2
    00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller
    00:1c.0 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 (rev d0)
    00:1c.2 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d0)
    00:1c.4 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 (rev d0)
    00:1c.6 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 7 (rev d0)
    00:1d.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1
    00:1f.0 ISA bridge: Intel Corporation 9 Series Chipset Family Z97 LPC Controller
    00:1f.2 SATA controller: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode]
    00:1f.3 SMBus: Intel Corporation 9 Series Chipset Family SMBus Controller
    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire XTX [Radeon R7 260X]
    01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aac0
    03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03)
    05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series]
    05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300 Series]
    06:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)

    ReplyDelete
    Replies
    1. Oh - I actually removed the x1 Ethernet card to see if that impacted the groupings at all - just incase anyone spotted that it was missing. It would have been something like:

      /sys/kernel/iommu_groups/9/devices/0000:07:00.0

      and

      07:00.0 Ethernet controller: Intel Gigabit Ethernet

      Just for clarification :)

      Also I thought it would be worth noting that my manual explains if there is a PCI-e device connected to either of the x1 ports, it will reduce the PCI-e 2.0 x16 (secondary) graphics from x4 mode to x2 mode - that probably explains why they are all grouped together.

      It's nice when everything comes together and shows the whole picture.

      Thanks for your time writing the post.

      Harry

      Delete
  9. Your system is 100% typical. The processor does not support ACS on the root port, as evidenced by the fact that the root port at 00:01.0 is grouped with the graphics card at 01:00.[01]. The integrated graphics and audio are at independent PCI slot addresses and therefore not grouped together. If you were running a v4.2 or newer kernel, the PCH root ports would expose ACS equivalent isolation since we have quirks for the 9-series chipset starting with that kernel.

    ReplyDelete
  10. You are completely right. I upgraded the kernel to 4.3 and look at these lovely groups!!

    The x16 GPU is still grouped with the CPU root port though - is that a problem?

    Thanks for the info, very helpful

    harry@debian:~$ find /sys/kernel/iommu_groups/ -type l
    /sys/kernel/iommu_groups/0/devices/0000:00:00.0
    /sys/kernel/iommu_groups/1/devices/0000:00:01.0
    /sys/kernel/iommu_groups/1/devices/0000:01:00.0
    /sys/kernel/iommu_groups/1/devices/0000:01:00.1
    /sys/kernel/iommu_groups/2/devices/0000:00:02.0
    /sys/kernel/iommu_groups/3/devices/0000:00:03.0
    /sys/kernel/iommu_groups/4/devices/0000:00:14.0
    /sys/kernel/iommu_groups/5/devices/0000:00:16.0
    /sys/kernel/iommu_groups/6/devices/0000:00:19.0
    /sys/kernel/iommu_groups/7/devices/0000:00:1a.0
    /sys/kernel/iommu_groups/8/devices/0000:00:1b.0
    /sys/kernel/iommu_groups/9/devices/0000:00:1c.0
    /sys/kernel/iommu_groups/10/devices/0000:00:1c.2
    /sys/kernel/iommu_groups/10/devices/0000:03:00.0
    /sys/kernel/iommu_groups/11/devices/0000:00:1c.4
    /sys/kernel/iommu_groups/12/devices/0000:00:1c.6
    /sys/kernel/iommu_groups/13/devices/0000:00:1d.0
    /sys/kernel/iommu_groups/14/devices/0000:00:1f.0
    /sys/kernel/iommu_groups/14/devices/0000:00:1f.2
    /sys/kernel/iommu_groups/14/devices/0000:00:1f.3
    /sys/kernel/iommu_groups/15/devices/0000:05:00.0
    /sys/kernel/iommu_groups/15/devices/0000:05:00.1
    /sys/kernel/iommu_groups/16/devices/0000:06:00.0
    harry@debian:~$ lspci
    00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
    00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
    00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
    00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
    00:14.0 USB controller: Intel Corporation 9 Series Chipset Family USB xHCI Controller
    00:16.0 Communication controller: Intel Corporation 9 Series Chipset Family ME Interface #1
    00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
    00:1a.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2
    00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller
    00:1c.0 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 (rev d0)
    00:1c.2 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d0)
    00:1c.4 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 (rev d0)
    00:1c.6 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 7 (rev d0)
    00:1d.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1
    00:1f.0 ISA bridge: Intel Corporation 9 Series Chipset Family Z97 LPC Controller
    00:1f.2 SATA controller: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode]
    00:1f.3 SMBus: Intel Corporation 9 Series Chipset Family SMBus Controller
    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire XTX [Radeon R7 260X]
    01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aac0
    03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03)
    05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series]
    05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300 Series]
    06:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)

    ReplyDelete

Comments are not a support forum. For help with problems, please try the vfio-users mailing list (https://www.redhat.com/mailman/listinfo/vfio-users)