jlay/kernel-acspatch
Project ID: 19180
Description
Fedora kernels with add-acs-overrides patch from Arch AUR, maintained over time for compatibility:
Local build automation -- Ansible, Fedora/mockbuild
I will do my best to stay up to date with the latest Fedora (non-rawhide) kernels. Please see builds for the latest builds
Installation Instructions
1 Enable the repository:
dnf copr enable jlay/kernel-acspatch
2 Add pci_acs_override= to GRUB_CMDLINE_LINUX as necessary in /etc/sysconfig/grub
pci_acs_override notes
pcie_acs_override =
[PCIE] Override missing PCIe ACS support for:
downstream
All downstream ports - full ACS capabilties
multifunction
All multifunction devices - multifunction ACS subset
id:nnnn:nnnn
Specfic device - full ACS capabilities
Specified as vid:did (vendor/device ID) in hex
Here is my full GRUB_CMDLINE_LINUX in /etc/sysconfig/grub for reference:
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/root rd.luks.uuid=luks-c6218459-1ccd-40b3-90da-da2b844a705e rd.lvm.lv=fedora/swap rhgb quiet iommu=1 amd_iommu=on pcie_acs_override=downstream,multifunction,id:1022:43b4 rd.driver.pre=vfio-pci default_hugepagesz=1G hugepagesz=1G hugepages=16 transparent_hugepage=never nordrand libata.noacpi=1"
I specify many (and possibly redundant) options for pci_acs_override (downstream,multifunction,id=1022:43b4) - not all of them may be necessary. Setting pcie_acs_override=downstream alone may be sufficient.
If using id=, you should provide the ID for the PCI-e bridge device connected to the PCI-e device you want in another IOMMU group. In my example above, I provide the ID for the PCI-e bridge connected to my Sound Blaster Z so that it is assigned a new IOMMU group and can be passed to a VM (VFIO):
[jlay@workstation ~]$ sudo lspci -nn | grep 1022:43b4
03:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
[...]
03:07.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
The other CMDLINE settings I've provided are those I've set for general IOMMU/VFIO use - 16GB hugepages, enabling AMD IOMMU, and so on. They are not necessary for this patch (only pcie_acs_override for subdividing IOMMU groups further) but may prove useful for those on Ryzen systems (particularly nordrand to improve /dev/random performance).
3 Install the updated kernel:
dnf update kernel --refresh
Active Releases
The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).
| Release | Architectures | Repo Download |
|---|---|---|
EPEL 7
|
x86_64 (75)* | EPEL 7 (468 downloads) |
EPEL 8
|
x86_64 (0)* | EPEL 8 (253 downloads) |
* Total number of downloaded packages.
EPEL 7