Hello everyone. I have been trying to get GPU passthru to work for quite some time. It would be the ultimate system
for me. But like many others I have been having troubles. I am hoping I can find a bit of guidance with this task.
First off my system, it is a bit old but still highly functional ....
System Specs:
MotherBoard: ASRock Z68 Pro Gen3
Bus Clock: 100 mhz
UEFI: American Megatrends Inc P1.30 08/15/2011
32 Gigs of system ram
CPU
Intel Core I7 2600
256 kb primary memory cache
1024 KB secondary memory cache
8192 KB tertiary memory cache
64-bit ready
Multi-Core (4 total)
Hyper-threaded: (8 total)
Video:
Onboard Intel 2000 HD graphics (primary GPU device)
NVIDIA GTX 980ti (GPU passed thru to windows VM)
So I have been running DUAL boot for quite awhile and have always wanted to get GPU passthru working. I have messed around with various hardwares to get to this point. So I finally have all the hardware in place and am attempting to GPU passthru to a Windows VM following this excellent guide.
First I have IO_MMU enabled:
[ 0.000000] ACPI: DMAR 0x000000006EDC4AC8 0000E8 (v01 ALASKA A M I 00000001 INTL 00000001)
[ 0.000000] DMAR: IOMMU enabled
[ 0.018500] DMAR: Host address width 36
[ 0.018501] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[ 0.018507] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c0000020e60262 ecap f0101a
[ 0.018508] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[ 0.018511] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap c9008020660262 ecap f0105a
[ 0.018511] DMAR: RMRR base: 0x0000006edd9000 end: 0x0000006edecfff
[ 0.018512] DMAR: RMRR base: 0x0000006f800000 end: 0x0000007f9fffff
[ 0.018514] DMAR-IR: IOAPIC id 0 under DRHD base 0xfed91000 IOMMU 1
[ 0.018515] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[ 0.018516] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.018794] DMAR-IR: Enabled IRQ remapping in x2apic mode
[ 1.034203] DMAR: No ATSR found
[ 1.034815] DMAR: dmar0: Using Queued invalidation
[ 1.034821] DMAR: dmar1: Using Queued invalidation
[ 1.035068] DMAR: Setting RMRR:
[ 1.035109] DMAR: Setting identity map for device 0000:00:02.0 [0x6f800000 - 0x7f9fffff]
[ 1.036268] DMAR: Setting identity map for device 0000:00:1a.0 [0x6edd9000 - 0x6edecfff]
[ 1.036302] DMAR: Setting identity map for device 0000:00:1d.0 [0x6edd9000 - 0x6edecfff]
[ 1.036310] DMAR: Prepare 0-16MiB unity mapping for LPC
[ 1.036349] DMAR: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[ 1.036617]
DMAR: Intel(R) Virtualization Technology for Directed I/O
[ 1.509917] [drm] DMAR active, disabling use of stolen memory
Next according to this guide, and where I am currently stuck, is to look at IO_MMU groups. According to this guide GPU passthru will not work unless my GPU and Sound card are in their own group. Of course on my system this is not the case. A bit of poking around shows me that Group one is where my Video card is (GTX 980ti).
My Groups:
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/10/devices/0000:00:1d.0
/sys/kernel/iommu_groups/11/devices/0000:00:1f.3
/sys/kernel/iommu_groups/11/devices/0000:00:1f.2
/sys/kernel/iommu_groups/11/devices/0000:00:1f.0
/sys/kernel/iommu_groups/12/devices/0000:03:00.0
/sys/kernel/iommu_groups/13/devices/0000:04:00.0
/sys/kernel/iommu_groups/14/devices/0000:05:00.0
/sys/kernel/iommu_groups/15/devices/0000:06:01.0
/sys/kernel/iommu_groups/16/devices/0000:06:04.0
/sys/kernel/iommu_groups/17/devices/0000:06:05.0
/sys/kernel/iommu_groups/18/devices/0000:06:06.0
/sys/kernel/iommu_groups/19/devices/0000:06:07.0
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/20/devices/0000:06:08.0
/sys/kernel/iommu_groups/21/devices/0000:06:09.0
/sys/kernel/iommu_groups/22/devices/0000:07:00.0
/sys/kernel/iommu_groups/23/devices/0000:08:00.0
/sys/kernel/iommu_groups/24/devices/0000:0a:00.0
/sys/kernel/iommu_groups/25/devices/0000:0b:00.0
/sys/kernel/iommu_groups/26/devices/0000:0c:00.0
/sys/kernel/iommu_groups/27/devices/0000:0d:00.0
/sys/kernel/iommu_groups/28/devices/0000:0e:00.1
/sys/kernel/iommu_groups/28/devices/0000:0e:00.0
/sys/kernel/iommu_groups/3/devices/0000:00:16.0
/sys/kernel/iommu_groups/4/devices/0000:00:1a.0
/sys/kernel/iommu_groups/5/devices/0000:00:1b.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.4
/sys/kernel/iommu_groups/8/devices/0000:00:1c.6
/sys/kernel/iommu_groups/9/devices/0000:00:1c.7
My Video Card is in Group One
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1b06] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10ef] (rev a1)
Along with this device:
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port [8086:01
01] (rev 09)
This guide says my video card MUST be in a separate group in order to work, but as you can see I have another device present in group one along with my Video card. It is a system Root Port. How do I get around this? I have tried moving the card to another PCI slot but it just adds that slot to Group one actually making things worse. This hardware combination SHOULD work but I still seem to have some configuration issues. Any ideas as to how I can isolate my video card in a separate group? Is it perhaps safe to ignore the Root device and proceed with the guide? I have been trying to get this to work FOREVER, so far this is the first time I have managed to get IO_MMU successfully enabled, but I digress…..
Any response is GREATLY APPRECIATED !
Thanx
Doc