Return to Level1Techs.com

Not being able to apply the ACS override patch


#1

I want to split up my IOMMU groups with the ACS patch. I have installed the linux-vfio package on arch linux and after adding pcie_acs_override=downstream to grub nothing changes. The output of dmesg | grep iommu is still:

[    0.683136] iommu: Adding device 0000:00:01.0 to group 0
[    0.683236] iommu: Adding device 0000:00:01.3 to group 1
[    0.683331] iommu: Adding device 0000:00:02.0 to group 2
[    0.683433] iommu: Adding device 0000:00:03.0 to group 3
[    0.683524] iommu: Adding device 0000:00:03.1 to group 4
[    0.683619] iommu: Adding device 0000:00:04.0 to group 5
[    0.683713] iommu: Adding device 0000:00:07.0 to group 6
[    0.683810] iommu: Adding device 0000:00:07.1 to group 7
[    0.683900] iommu: Adding device 0000:00:08.0 to group 8
[    0.683996] iommu: Adding device 0000:00:08.1 to group 9
[    0.684090] iommu: Adding device 0000:00:14.0 to group 10
[    0.684106] iommu: Adding device 0000:00:14.3 to group 10
[    0.684219] iommu: Adding device 0000:00:18.0 to group 11
[    0.684233] iommu: Adding device 0000:00:18.1 to group 11
[    0.684244] iommu: Adding device 0000:00:18.2 to group 11
[    0.684256] iommu: Adding device 0000:00:18.3 to group 11
[    0.684270] iommu: Adding device 0000:00:18.4 to group 11
[    0.684281] iommu: Adding device 0000:00:18.5 to group 11
[    0.684293] iommu: Adding device 0000:00:18.6 to group 11
[    0.684305] iommu: Adding device 0000:00:18.7 to group 11
[    0.684418] iommu: Adding device 0000:03:00.0 to group 12
[    0.684443] iommu: Adding device 0000:03:00.1 to group 12
[    0.684468] iommu: Adding device 0000:03:00.2 to group 12
[    0.684480] iommu: Adding device 0000:16:00.0 to group 12
[    0.684492] iommu: Adding device 0000:16:01.0 to group 12
[    0.684504] iommu: Adding device 0000:16:04.0 to group 12
[    0.684515] iommu: Adding device 0000:16:06.0 to group 12
[    0.684527] iommu: Adding device 0000:16:07.0 to group 12
[    0.684540] iommu: Adding device 0000:17:00.0 to group 12
[    0.684561] iommu: Adding device 0000:1e:00.0 to group 12
[    0.684579] iommu: Adding device 0000:20:00.0 to group 12
[    0.684693] iommu: Adding device 0000:22:00.0 to group 13
[    0.684726] iommu: Adding device 0000:22:00.1 to group 13
[    0.684824] iommu: Adding device 0000:23:00.0 to group 14
[    0.684916] iommu: Adding device 0000:23:00.2 to group 15
[    0.685017] iommu: Adding device 0000:23:00.3 to group 16
[    0.685114] iommu: Adding device 0000:24:00.0 to group 17
[    0.685218] iommu: Adding device 0000:24:00.2 to group 18
[    0.685314] iommu: Adding device 0000:24:00.3 to group 19
[    0.686512] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).

What am I missing to complete the ACS patch and split up the IOMMU groups?

Oh and the output of uname -r is 4.20.5-arch1-1-vfio

EDIT: typo


#2

Try adding multifunction to your the pcie_acs_overrides line in the grub config like this:

pcie_acs_override=downstream,multifunction

usually it isn’t recommended to use multifunction unless you really have to as its generally less stable but It it should help loosen up more devices into their own groups.


#3

It works!!! Thank you.

Now the output looks like this;

[    0.680373] iommu: Adding device 0000:00:01.0 to group 0
[    0.680468] iommu: Adding device 0000:00:01.3 to group 1
[    0.680555] iommu: Adding device 0000:00:02.0 to group 2
[    0.680654] iommu: Adding device 0000:00:03.0 to group 3
[    0.680739] iommu: Adding device 0000:00:03.1 to group 4
[    0.680829] iommu: Adding device 0000:00:04.0 to group 5
[    0.680922] iommu: Adding device 0000:00:07.0 to group 6
[    0.681016] iommu: Adding device 0000:00:07.1 to group 7
[    0.681103] iommu: Adding device 0000:00:08.0 to group 8
[    0.681196] iommu: Adding device 0000:00:08.1 to group 9
[    0.681289] iommu: Adding device 0000:00:14.0 to group 10
[    0.681300] iommu: Adding device 0000:00:14.3 to group 10
[    0.681409] iommu: Adding device 0000:00:18.0 to group 11
[    0.681421] iommu: Adding device 0000:00:18.1 to group 11
[    0.681432] iommu: Adding device 0000:00:18.2 to group 11
[    0.681443] iommu: Adding device 0000:00:18.3 to group 11
[    0.681455] iommu: Adding device 0000:00:18.4 to group 11
[    0.681466] iommu: Adding device 0000:00:18.5 to group 11
[    0.681476] iommu: Adding device 0000:00:18.6 to group 11
[    0.681487] iommu: Adding device 0000:00:18.7 to group 11
[    0.681580] iommu: Adding device 0000:03:00.0 to group 12
[    0.681666] iommu: Adding device 0000:03:00.1 to group 13
[    0.681766] iommu: Adding device 0000:03:00.2 to group 14
[    0.681857] iommu: Adding device 0000:16:00.0 to group 15
[    0.681957] iommu: Adding device 0000:16:01.0 to group 16
[    0.682051] iommu: Adding device 0000:16:04.0 to group 17
[    0.682154] iommu: Adding device 0000:16:06.0 to group 18
[    0.682251] iommu: Adding device 0000:16:07.0 to group 19
[    0.682355] iommu: Adding device 0000:17:00.0 to group 20
[    0.682455] iommu: Adding device 0000:1e:00.0 to group 21
[    0.682555] iommu: Adding device 0000:20:00.0 to group 22
[    0.682663] iommu: Adding device 0000:22:00.0 to group 23
[    0.682755] iommu: Adding device 0000:22:00.1 to group 24
[    0.682857] iommu: Adding device 0000:23:00.0 to group 25
[    0.682945] iommu: Adding device 0000:23:00.2 to group 26
[    0.683045] iommu: Adding device 0000:23:00.3 to group 27
[    0.683140] iommu: Adding device 0000:24:00.0 to group 28
[    0.683255] iommu: Adding device 0000:24:00.2 to group 29
[    0.683346] iommu: Adding device 0000:24:00.3 to group 30
[    0.684525] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).