[SRU][N][PATCH v2 0/3] Backport pci=config_acs parameter with fix commit

Jacob Martin jacob.martin at canonical.com
Mon May 19 14:07:08 UTC 2025


BugLink: https://bugs.launchpad.net/bugs/2100340

SRU Justification:

[Impact]

The PCI ACS capability parameter is used to enable and configure access
control between PCIe devices. In particular, this parameter can enable
and/or restrict peer-to-peer traffic between so-configured PCIe devices.

For example, this parameter is necessary for GPUDirect RDMA
applications, where peer-to-peer communication between a GPU and an
RDMA-capable device is required. This parameter allows an administrator
to configure the system for the specific level of isolation between PCIe
devices required to enable this feature for their use case.

[Fix]

This consists of clean cherry picks of commits 47c8846a49ba ("PCI:
Extend ACS configurability"), f3c3ccc4fe49 ("PCI: Fix pci_enable_acs()
support for the ACS quirks"), and 9cf8a952d57b ("PCI/ACS: Fix
'pci=config_acs=' parameter").

[Test Plan]

The patchset was tested on a DGX GH200 system by booting with the kernel
parameter test cases described in the commit message of 9cf8a952d57b
("PCI/ACS: Fix 'pci=config_acs=' parameter").

Multiple PCIe devices could be configured with the pci=config_acs
parameter as is expected with the fix commit, and pci=disable_acs_redir
works as expected.

$ cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-6.8.0-1060-generic root=UUID=fe5d0b12-5ce2-4b59-b669-c1e1741fd483 ro ignore_loglevel "dyndbg=file drivers/pci/pci.c +p" pci=config_acs=1111011 at 0000:01:00.0;101xxxx at 0000:01:00.1
$ sudo dmesg | grep ACS
[    6.433520] pci 0000:01:00.0: ACS mask  = 0x007f
[    6.438305] pci 0000:01:00.0: ACS flags = 0x007b
[    6.443081] pci 0000:01:00.0: ACS control = 0x0000
[    6.448037] pci 0000:01:00.0: ACS fw_ctrl = 0x0000
[    6.452987] pci 0000:01:00.0: Configured ACS to 0x007b
[    6.516083] pci 0000:01:00.1: ACS mask  = 0x0070
[    6.520862] pci 0000:01:00.1: ACS flags = 0x0050
[    6.525636] pci 0000:01:00.1: ACS control = 0x0000
[    6.530590] pci 0000:01:00.1: ACS fw_ctrl = 0x0000
[    6.535540] pci 0000:01:00.1: Configured ACS to 0x0050

[Where problems could occur]

This affects the pci=config_acs and pci=config_acs_redir kernel boot
parameters. Issues could arise as malfunctioning of these two boot
parameters, or as improper configuration of PCIe devices.

[Other Info]
v2:
- drop Oracular patchset, patches were included in Oracular via stable updates
- include fix commit f3c3ccc4fe49 ("PCI: Fix pci_enable_acs() support
  for the ACS quirks")

Jason Gunthorpe (1):
  PCI: Fix pci_enable_acs() support for the ACS quirks

Tushar Dave (1):
  PCI/ACS: Fix 'pci=config_acs=' parameter

Vidya Sagar (1):
  PCI: Extend ACS configurability

 .../admin-guide/kernel-parameters.txt         |  32 ++++
 drivers/pci/pci.c                             | 160 +++++++++++-------
 2 files changed, 134 insertions(+), 58 deletions(-)

-- 
2.43.0




More information about the kernel-team mailing list