Jump to content

Which one decides the IOMMU Groups? CPU, Motherbord, BIOS, Operating system?

I'm building a NAS on KVM host. And I want to passthrough the SATA controller to the guest.

But after I enable the IOMMU, I found the SATA controller, Pciex4 M.2 connecting to the CPU directly and some other peripherals are divided into the same IOMMU group like this:

image.thumb.png.75ca905f96ac6c46b748cb623d6656c9.png

 

In my thought the M.2 and sata controller use different lanes. M.2 connects to CPU directly, SATA connects to the chipset. Why they are placed in the same group?

If I buy a new motherboard, will things be different?

 

My hardware information:

CPU: AMD-Ryzen 5650ge

Motherboard: ASRock A520M-ITX/ac

Link to comment
Share on other sites

Link to post
Share on other sites

from what i understand of it, it's sort of a 'combination of everything' deal, the motherboard being the most important part ofcourse, because that decides how things are connected.

i havent checked where my onboard sata ports sit on my unraid box, but i'd hazard a guess that trying to pass those trough will break other things.

for passing trough you always best just go for add-in cards, or for parts of the motherboard that are completely separate chipsets wired to pcie (like for example an extra usb chipset may exist)

Link to comment
Share on other sites

Link to post
Share on other sites

The default is the motherboard, BIOS and also actual PCIe layout. Updating to latest Kernel can remedy some weird IOMMU groupings however on most consumer/gaming motherboards IOMMU grouping is on no concern at all and can be done really badly. This is when you have to resort to manual overrides and creating your own groups. I believe this is not hard to do however I've never actually needed to do it myself.

Link to comment
Share on other sites

Link to post
Share on other sites

Its generally determined by the chipset/motherboard and PCIe (electrical connectivity) itself. 

You could try an ACS Override patch on the kernel, but you may or may not have stability issues. 

You could also assign all the devices in the group to the VFIO-PCI driver, and just pass the SATA controller through, assuming you arent trying to passthrough anything else in the group elsewhere. 

 

Heres my ASRock X570 Taichi

 

image.thumb.png.7685055d49a7e1ae4f517b7f0fdf86e5.png

 

 

 

Spoiler

Desktop: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

Server: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM850v2 PSU | Fractal S36 Triple AIO + 4 Additional Venturi 120mm Fans | 14 x 20TB Seagate Exos X22 20TB | 500GB Aorus Gen4 NVMe | 2 x 2TB Samsung 970 Evo Plus NVMe | LSI 9211-8i HBA

 

Link to comment
Share on other sites

Link to post
Share on other sites

Thanks for replying. After struggling on the messy motherboard for two days I decided to use OMV as the virtual host os while acting as a NAS also. Thus the system runs in phyisical environment so I can use gpu 2D acceleration and sata controller.

Maybe running nas on a virtual host is a stupid choice for my application:(

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×