DZMM Posted November 15, 2018 Share Posted November 15, 2018 I've got two identical USB controllers in different IOMMU groups. When I passthrough the device ID both of them get passed through. Is there a way to (i) passthough only one, or (ii) pass each one to seperate VMs? My preference is for (i) as otherwise I lose all my rear USB 3 ports, although it'd be nice to know if (ii) is possible. IOMMU group 19: [1022:145f] 0c:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] USB 3.0 Host controller IOMMU group 40: [1022:145f] 44:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] USB 3.0 Host controller I've also got 2 in the IOMMU group - is it possible to split these? IOMMU group 14: [1022:43ba] 01:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset USB 3.1 xHCI Controller (rev 02) [1022:43b6] 01:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset SATA Controller (rev 02) [1022:43b1] 01:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset PCIe Bridge (rev 02) [1022:43b4] 02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) [1022:43b4] 02:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) [1022:43b4] 02:03.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) [1022:43b4] 02:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) [1022:43b4] 02:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) [1022:43b4] 02:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) [1022:43b4] 02:07.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) [1b21:2142] 03:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller [544d:6178] 05:00.0 Multimedia controller: TBS Technologies DVB Tuner PCIe Card [8086:1539] 08:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) Thanks Quote Link to comment
saarg Posted November 15, 2018 Share Posted November 15, 2018 Use xen-pciback.hide=(0c:00.3)(44:00.3) in your syslinux.cfg. You have to add the pass through tags in the xml manually though. Quote Link to comment
DZMM Posted November 15, 2018 Author Share Posted November 15, 2018 3 minutes ago, saarg said: Use xen-pciback.hide=(0c:00.3)(44:00.3) in your syslinux.cfg. You have to add the pass through tags in the xml manually though. I just tried googling xen-pciback.hide and I can't figure out what it does? I've just realised I can already passthrough the controllers to different VMs, so does this allow me to only passthrough one and leave the other for unRAID? Is it possible to split the controllers in IOMMU 14? Quote Link to comment
saarg Posted November 16, 2018 Share Posted November 16, 2018 On 11/15/2018 at 5:32 PM, DZMM said: I just tried googling xen-pciback.hide and I can't figure out what it does? I've just realised I can already passthrough the controllers to different VMs, so does this allow me to only passthrough one and leave the other for unRAID? Is it possible to split the controllers in IOMMU 14? It does the same as stubbing devices, but uses the PCI device address ins tead of vendor ID. If they are in different groups you can pass the through to different VM's. You have enabled ACS override? Quote Link to comment
DZMM Posted November 17, 2018 Author Share Posted November 17, 2018 Thanks. So if I just want to passthrough just the 0c:00.3 controller and not the 44:00.3 controller I add to my syslinux xen-pciback.hide=(0c:00.3) default menu.c32 menu title Highlander Boot Options prompt 0 timeout 80 label unRAID OS (stubbed) menu default kernel /bzimage xen-pciback.hide=(0c:00.3) append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot label unRAID OS GUI Mode (stubbed) kernel /bzimage xen-pciback.hide=(0c:00.3) append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot,/bzroot-gui and to my xml like this: <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x0c' slot='0x00' function='0x3'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </hostdev> ?? 15 hours ago, saarg said: You have enabled ACS override? I've never used ACS as the help warning scared me off - is it safe? Will this potentially split IOMMU group 14 into different groups? Quote Link to comment
saarg Posted November 17, 2018 Share Posted November 17, 2018 1 hour ago, DZMM said: Thanks. So if I just want to passthrough just the 0c:00.3 controller and not the 44:00.3 controller I add to my syslinux xen-pciback.hide=(0c:00.3) default menu.c32 menu title Highlander Boot Options prompt 0 timeout 80 label unRAID OS (stubbed) menu default kernel /bzimage xen-pciback.hide=(0c:00.3) append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot label unRAID OS GUI Mode (stubbed) kernel /bzimage xen-pciback.hide=(0c:00.3) append vfio-pci.ids=8086:1521,10de:1c03,10de:10f1 initrd=/bzroot,/bzroot-gui and to my xml like this: <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x0c' slot='0x00' function='0x3'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </hostdev> ?? I've never used ACS as the help warning scared me off - is it safe? Will this potentially split IOMMU group 14 into different groups? That looks correct. The warning is there cause there is a chance that it might happen, but I have not heard anyone here getting any problems. I would activate it. You don't know if it's going to split the devices until you activate it. Quote Link to comment
DZMM Posted November 17, 2018 Author Share Posted November 17, 2018 Thanks - for ACS do I choose downstream, multi-function or both? @bonienl maybe the ACS text below needs updating, or at least a link to an actual FAQ as the forum search sucks Quote Warning: Use of this setting could cause possible data corruption with certain hardware configurations. Please visit the Lime Technology forums for more information. A reboot will be required for changes to this setting to take affect. Quote Link to comment
saarg Posted November 18, 2018 Share Posted November 18, 2018 22 hours ago, DZMM said: Thanks - for ACS do I choose downstream, multi-function or both? @bonienl maybe the ACS text below needs updating, or at least a link to an actual FAQ as the forum search sucks Try downstream first. Why does the text need to be changed? There still is a chance for corruption. I only said I haven't heard about anyone with an issue. Quote Link to comment
DZMM Posted November 18, 2018 Author Share Posted November 18, 2018 48 minutes ago, saarg said: Try downstream first. Why does the text need to be changed? There still is a chance for corruption. I only said I haven't heard about anyone with an issue. I tried multi-function and my machine didn't explode, and it split group 14 which is what I wanted, so I'll try passing through a controller next time I reboot. By changing the help content, I was suggesting explaining what each option is or linking to a relevant FAQ page. Quote Link to comment
bonienl Posted November 18, 2018 Share Posted November 18, 2018 9 minutes ago, DZMM said: By changing the help content, I was suggesting explaining what each option is or linking to a relevant FAQ page. Can you put that as a bug report (annoyance), so it will be addressed in a future release. 1 Quote Link to comment
Vidamus Posted January 24, 2022 Share Posted January 24, 2022 This thread was helpful to me for getting my first USB controller passed through. All of my USB controllers were on the same device ID even though they were in 2 different IOMMU groups, but using that "xen-pciback.hide" directive I was able to isolate the 2 buses in one IOMMU group from the 6 other busses in the other group, and was then able to successfully add that group the VM using the XML examples given here. Many thanks Quote Link to comment
Squid Posted January 24, 2022 Share Posted January 24, 2022 10 minutes ago, Vidamus said: "xen-pciback.hide You should be using Tools - system devices to isolate devices if at all possible xen-pciback is a Legacy method of doing things and may (or may not) work in the future Quote Link to comment
Recommended Posts
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.