Passthrough VT-d or IOMMU functions to guest - how to?


Recommended Posts

I want/need to pass through the VT-d and/or IOMMU feature to my guest.

 

It is required to be visible/enabled CPU feature for the OS I am installing for it to install - otherwise it complains and refuses to install. I work with a lot of 'demo' guest OS packages so these are not things I can alter (IE to not require that on install). In VMware if this was enabled in a few spots it would just pass on through - I know this is an apples to oranges comparison here but I was hoping for something similar in functionality...

Unraid:
    root@Storage:~# egrep -c '(vmx|svm)' /proc/cpuinfo
    8

Guest (ubuntu): shows 0 (zero) with same command.

 

Hopefully skirting around the questions of why and choose another way; how do I pass that through?

 

1. Do I have to disable/unbind that device/IOMMU group first in UnRaid to do that?

 

2. If it must be unbound  - will it cause any obvious issues?

 

3. Which IOMMU group would carry that? Group 0 and/or possible group 1 seem most likely. If it is 1; I am concerned I am also adding my RAID controller....

IOMMU group 0
	[8086:191f] 00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07)
IOMMU group 1
	[8086:1901] 00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 07)
	[9005:028c] 01:00.0 RAID bus controller: Adaptec Series 7 6G SAS/PCIe 3 (rev 01)
IOMMU group 2
	[8086:1912] 00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
IOMMU group 3
	[8086:a12f] 00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
	[8086:a131] 00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
IOMMU group 4
	[8086:a13a] 00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
IOMMU group 5
	[8086:a102] 00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)
IOMMU group 6
	[8086:a169] 00:1b.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #19 (rev f1)
IOMMU group 7
	[8086:a16a] 00:1b.3 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #20 (rev f1)
IOMMU group 8
	[8086:a112] 00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)
IOMMU group 9
	[8086:a114] 00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)
IOMMU group 10
	[8086:a118] 00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)
IOMMU group 11
	[8086:a145] 00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
	[8086:a121] 00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
	[8086:a170] 00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)
	[8086:a123] 00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
IOMMU group 12
	[8086:15b8] 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V (rev 31)
IOMMU group 13
	[1b21:1242] 02:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller

4. PCI-Stub would help here? Other alternatives?

 

5. What configuration changes need to be made to the guest VM config to do that? Any needed for the host os (unraid)?

 

6. Anything I am not thinking of here?

 

7. Perhaps there is a way I can fake out the Guest VM into thinking it has that when it actually does not? I would prefer to have that functionality present, but as these are demo and not prod I expect it would be acceptable even without it actually being there if I can fake it.

 

Thanks all.

 

Link to comment

I don't think you are looking at passing through any of the groups, or any actual hardware from your main machine. It's more likely you need to look at nested virtualization. I've found different examples on google but can't really say which is right or what is outdated.

 

One example is google Nested virtualization esxi on kvm which would give suggestions on to run a a hypervisor on top of KVM. Similar to your requirement.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.