[vfio-users] vfio, xeon e3s, acs, & gpus -- oh my!
Joshua Hoblitt
josh at hoblitt.com
Fri Mar 31 19:43:56 UTC 2017
Hi Folks,
Long time listener (~2days), first time...
Based on years of pain-free experience with VF NICs, I naively thought
that installing a second GPU in a desktop for VM pass through would be a
straight forward task. This has turned out to be an incorrect
assumption. I have two desktop systems with [unfortunately] the same
basic configuration:
* supermicro x10sae
* "Intel(R) Xeon(R) CPU E3-1276 v3 @ 3.60GHz"
* Fedora 25 / linux 4.10
In one of these systems I have installed 2x nvidia gtx 1070 GPUs:
$ uname -r
4.10.5-200.fc25.x86_64
$ lspci -nn | grep -i vga
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104
[GeForce GTX 1070] [10de:1b81] (rev a1)
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104
[GeForce GTX 1070] [10de:1b81] (rev a1)
$ find /sys/kernel/iommu_groups/ -type l | egrep '0[12]:00'
/sys/kernel/iommu_groups/1/devices/0000:02:00.1
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/1/devices/0000:02:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
and both GPUs are landing in the same vfio group. :( Digging into the
motherboard manual shows that there is some sort of PCIe switch between
the physical PCIe slots and the CPU's root port:
pg 16 - http://www.supermicro.com/manuals/motherboard/C226/MNL-1479.pdf
I have been completely unable to find a datasheet for the ASM1480
"switch". The homepage isn't helpful:
http://www.asmedia.com.tw/eng/e_show_products.php?item=109
I briefly explored the ACS override patch but the second quirks.c hunk
does not apply to vanilla linux 4.9/4.10 sources. I am rather hesitant
to try to forward port as I know nothing about the pci subsystem and the
file has a changed a lot since the patch epoc. I took it as a bad sign
that google can't find a forward port of the patch for current kernels.
However, Google did eventually turn up a BZ post from Alex Williamson
stating that Xeon E3s, at least as of "v3", do not support ACS:
https://bugzilla.redhat.com/show_bug.cgi?id=1113399#c9
https://www-ssl.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e3-1200v3-spec-update.pdf
So it sounds like I'm looking at new hardware to get this working with
stock Fedora kernels?
I prefer E3s for a desktop CPU as they have ECC memory support. It took
forever to dig through Intel's website to find basic CPU datasheets.
The E3-1200 v5 datasheets don't seem to mention ACS and the E3-1200 v6
datasheets (current product generation) haven't been published yet (!).
http://www.intel.com/content/www/us/en/processors/xeon/xeon-technical-resources.html
Does anyone know definitely if the E3-1200 v6 generation supports ACS in
the on-die PCIe controller?
My guess is this is not the case or it would be called out as a "new
security feature" in the marketing material. However, I am still hoping
to stay with an E3-1200 CPU in order to keep costs low. It appears that
the supermicro x11sat-f motherboard has a "PLX8747" switch between the
CPU root port and the physical slots:
pg 18 - http://www.supermicro.com/manuals/motherboard/H4/MNL-1823.pdf
Which I think may be a broadcom "pex 8747":
https://www.broadcom.com/products/pcie-switches-bridges/pcie-switches/pex8747
which does claim ACS support in the overview sheet. Does anyone know if
ACS is indeed working with the "pex 8747" and/or the sm x1?sat series of
motherboards? Alternatively, does anyone know of an E3-1200 motherboard
that does have working ACS with 2x [8x/16x] PCIe slots?
If anyone has followed my rambling this far, thank you for your extreme
patience. I would like to thank Alex Williamson for his vfio blog and
the kvmforum talk up on youtube -- I would be completely lost at this
point without that information.
Cheers,
-Josh
--
More information about the vfio-users
mailing list