On 18/06/16 16:42, Alex Williamson wrote:
On Sat, Jun 18, 2016 at 9:11 AM, Samuel Holland <sam...@sholland.org
<mailto:sam...@sholland.org>> wrote:
On 06/17/2016 02:00 PM, Kajim Shanti wrote:
If i decide to replace the mobo, which one would you reccommend as
giving the least problems for devices passthrough?
ASRock generally has a good reputation for not breaking VT-d. Be aware
that any motherboard you buy with multiple PCIe x16 ports will
have them
all in the same IOMMU group.
This is why the continuous recommendations for High End Desktop
Processors and Xeon E5, where this is not the case. Just be aware
that standard Core-i3/5/7 are going to group all the processor root
ports together, which either limits your configurations or requires
the acs override patch. The latter, I don't consider supportable.
There are plenty of usable configurations available for Core
processors, but for more than one discrete GPU, you're going to need
to use PCH-based root ports.
_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users
I'd actually vote for cheaper variants of skylake hardware for consumer
use as you aren't likely to get the x16 port grouping and there won't be
lots of extra controllers with hardwired groups. The grouping problem
for the x16 ports goes away because these cheaper boards don't offer
sharing of the 16 CPU lanes but instead sub-divide the lanes between
separate bridges as you add cards (i.e. 1 x16 card or 2 x8, etc.). The
intel spec. says the host port will offer full isolation if there is no
inter-device data sharing that doesn't go through the host port which
your root bridges can either guarantee for you .. or in the cheaper case
which you get for free by not letting them share lanes and grouping
exceptions manually. For normal hardware this usually means you didn't
plug the same device into multiple ports - or connect devices with a
cable. ACS does offer optional services to cope even with those cases
but simpler boards will tend to have isolation by that rule and Mine
even has ACS registers that explicitly say it's isolated and give some
optional services I've no idea about.
The exception is if you are running multiple Gen2 legacy devices that
need x16 to hit their maximum throughput or naturally for SLI which is
the only consumer use case I can think of that can hope to even saturate
a single x8 Gen 3 port. SLI devices are clearly in the same IOMMU group
so unless that's your intent don't buy the Z77 type boards.
I have little trouble from running two Vms with a different radeon card
passed to each and the IGD on the host using no ACS isolation patches
and qemu 2.6 / 4.7 kernel as well as a couple of minimal server VMs that
run 24/7 but are low load. The board is an ASUS Z170 Pro (I forget which
variant) with an i5 6600k with the IGD running on the host but no X.
This is all firmly in the upper lower end of consumer grade territory
and is only consistent with minimal VM use but it's great if you don't
need scalability or high availability under all workloads. I don't see
many crashes outside the Win10 VM and those never take other VMs with
them. The IGD crashes the host a lot if you use it for accelerated X -
which is why I don't. I'd turn it off if I could use a less cutting edge
kernel.
For reference .. these are my IOMMU groupings and the relevant devices.
If you want more specific information I can provide working examples
from my hardware. I suspect it may vary a lot between the cheaper boards
as only the first PEG port is in any way standardised.
IOMMU / Device
0 00:00.0 Host bridge [0600]: Intel Corporation Skylake Host
Bridge/DRAM Registers [8086:191f] (rev 07)
1 00:01.0 PCI bridge [0604]: Intel Corporation Skylake PCIe
Controller (x16) [8086:1901] (rev 07)
2 00:02.0 VGA compatible controller [0300]: Intel Corporation HD
Graphics 530 [8086:1912] (rev 06)
3 00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H
USB 3.0 xHCI Controller [8086:a12f] (rev 31)
4 00:16.0 Communication controller [0780]: Intel Corporation Sunrise
Point-H CSME HECI #1 [8086:a13a] (rev 31)
5 00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H
SATA controller [AHCI mode] [8086:a102] (rev 31)
6 00:1b.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI
Root Port #17 [8086:a167] (rev f1)
7 00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI
Express Root Port #1 [8086:a110] (rev f1)
8 00:1c.4 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI
Express Root Port #5 [8086:a114] (rev f1)
9 00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI
Express Root Port #9 [8086:a118] (rev f1)
10 00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC
Controller [8086:a145] (rev 31)
10 00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H
PMC [8086:a121] (rev 31)
10 00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD
Audio [8086:a170] (rev 31)
10 00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus
[8086:a123] (rev 31)
10 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet
Connection (2) I219-V [8086:15b8] (rev 31)
1 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices,
Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] [1002:6798]
1 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI]
Tahiti XT HDMI Audio [Radeon HD 7970 Series] [1002:aaa0]
12 03:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1142 USB
3.1 Host Controller [1b21:1242]
13 04:00.0 VGA compatible controller [0300]: Advanced Micro Devices,
Inc. [AMD/ATI] Cayman XT [Radeon HD 6970] [1002:6718]
13 04:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI]
Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] [1002:aa80]
_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users