mbox series

[0/3] Add parameter for disabling ACS redirection for P2P

Message ID 20180524214816.14485-1-logang@deltatee.com
Headers show
Series Add parameter for disabling ACS redirection for P2P | expand

Message

Logan Gunthorpe May 24, 2018, 9:48 p.m. UTC
Hi,

As discussed in our PCI P2PDMA series, we'd like to add a kernel
parameter for selectively disabling ACS redirection for select
bridges. Seeing this turned out to be a small series in itself, we've
decided to send this separately from the P2P work.

This series generalizes the code already done for the resource_alignment
option that already exists. The first patch creates a helper function
to match PCI devices against strings based on the code that already
existed in pci_specified_resource_alignment().

The second patch expands the new helper to optionally take a path of
PCI devfns. This is to address Alex's renumbering concern when using
simple bus-devfns. The implementation is essentially how he described it and
similar to the Intel VT-d spec (Section 8.3.1).

The final patch adds the disable_acs_redir kernel parameter which takes
a list of PCI devices and will disable the ACS P2P Request Redirect,
ACS P2P Completion Redirect and ACS P2P Egress Control bits for the
selected devices. This allows P2P traffic between selected bridges and
seeing it's done at boot, before IOMMU group creating the IOMMU groups
will be created correctly based on the bits.

Thanks,

Logan


Logan Gunthorpe (3):
  PCI: Make specifying PCI devices in kernel parameters reusable
  PCI: Allow specifying devices using a base bus and path of devfns
  PCI: Introduce the disable_acs_redir parameter

 Documentation/admin-guide/kernel-parameters.txt |  39 ++-
 drivers/pci/pci.c                               | 358 ++++++++++++++++++++----
 2 files changed, 336 insertions(+), 61 deletions(-)

--
2.11.0

Comments

Christian König May 25, 2018, 8:28 a.m. UTC | #1
Am 24.05.2018 um 23:48 schrieb Logan Gunthorpe:
> Hi,
>
> As discussed in our PCI P2PDMA series, we'd like to add a kernel
> parameter for selectively disabling ACS redirection for select
> bridges. Seeing this turned out to be a small series in itself, we've
> decided to send this separately from the P2P work.
>
> This series generalizes the code already done for the resource_alignment
> option that already exists. The first patch creates a helper function
> to match PCI devices against strings based on the code that already
> existed in pci_specified_resource_alignment().
>
> The second patch expands the new helper to optionally take a path of
> PCI devfns. This is to address Alex's renumbering concern when using
> simple bus-devfns. The implementation is essentially how he described it and
> similar to the Intel VT-d spec (Section 8.3.1).
>
> The final patch adds the disable_acs_redir kernel parameter which takes
> a list of PCI devices and will disable the ACS P2P Request Redirect,
> ACS P2P Completion Redirect and ACS P2P Egress Control bits for the
> selected devices. This allows P2P traffic between selected bridges and
> seeing it's done at boot, before IOMMU group creating the IOMMU groups
> will be created correctly based on the bits.
>
> Thanks,
>
> Logan
>
>
> Logan Gunthorpe (3):
>    PCI: Make specifying PCI devices in kernel parameters reusable
>    PCI: Allow specifying devices using a base bus and path of devfns
>    PCI: Introduce the disable_acs_redir parameter

Thanks a lot of taking care of it like that. It looks much cleaner to me 
than just trying to disable ACS without a parameter.

Series is Acked-by: Christian König <christian.koenig@amd.com>.

Thanks,
Christian.


>
>   Documentation/admin-guide/kernel-parameters.txt |  39 ++-
>   drivers/pci/pci.c                               | 358 ++++++++++++++++++++----
>   2 files changed, 336 insertions(+), 61 deletions(-)
>
> --
> 2.11.0