[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a8a8ffee-67e8-c899-3d04-1e28fb72560a@deltatee.com>
Date: Fri, 23 Jul 2021 10:20:50 -0600
From: Logan Gunthorpe <logang@...tatee.com>
To: Leon Romanovsky <leon@...nel.org>,
Dongdong Liu <liudongdong3@...wei.com>
Cc: helgaas@...nel.org, hch@...radead.org, kw@...ux.com,
linux-pci@...r.kernel.org, rajur@...lsio.com,
hverkuil-cisco@...all.nl, linux-media@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: [PATCH V6 7/8] PCI: Add "pci=disable_10bit_tag=" parameter for
peer-to-peer support
On 2021-07-23 5:32 a.m., Leon Romanovsky wrote:
> On Fri, Jul 23, 2021 at 07:06:41PM +0800, Dongdong Liu wrote:
>> PCIe spec 5.0 r1.0 section 2.2.6.2 says that if an Endpoint supports
>> sending Requests to other Endpoints (as opposed to host memory), the
>> Endpoint must not send 10-Bit Tag Requests to another given Endpoint
>> unless an implementation-specific mechanism determines that the Endpoint
>> supports 10-Bit Tag Completer capability. Add "pci=disable_10bit_tag="
>> parameter to disable 10-Bit Tag Requester if the peer device does not
>> support the 10-Bit Tag Completer. This will make P2P traffic safe.
>>
>> Signed-off-by: Dongdong Liu <liudongdong3@...wei.com>
>> ---
>> Documentation/admin-guide/kernel-parameters.txt | 7 ++++
>> drivers/pci/pci.c | 56 +++++++++++++++++++++++++
>> drivers/pci/pci.h | 1 +
>> drivers/pci/pcie/portdrv_pci.c | 13 +++---
>> drivers/pci/probe.c | 9 ++--
>> 5 files changed, 78 insertions(+), 8 deletions(-)
>>
>> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
>> index bdb2200..c2c4585 100644
>> --- a/Documentation/admin-guide/kernel-parameters.txt
>> +++ b/Documentation/admin-guide/kernel-parameters.txt
>> @@ -4019,6 +4019,13 @@
>> bridges without forcing it upstream. Note:
>> this removes isolation between devices and
>> may put more devices in an IOMMU group.
>> + disable_10bit_tag=<pci_dev>[; ...]
>> + Specify one or more PCI devices (in the format
>> + specified above) separated by semicolons.
>> + Disable 10-Bit Tag Requester if the peer
>> + device does not support the 10-Bit Tag
>> + Completer.This will make P2P traffic safe.
>
> I can't imagine more awkward user experience than such kernel parameter.
>
> As a user, I will need to boot the system, hope for the best that system
> works, write down all PCI device numbers, guess which one doesn't work
> properly, update grub with new command line argument and reboot the
> system. Any HW change and this dance should be repeated.
There are already two such PCI parameters with this pattern and they are
not that awkward. pci_dev may be specified with either vendor/device IDS
or with a path of BDFs (which protects against renumbering).
This flag is only useful in P2PDMA traffic, and if the user attempts
such a transfer, it prints a warning (see the next patch) with the exact
parameter that needs to be added to the command line.
This has worked well for disable_acs_redir and was used for
resource_alignment before that for quite some time. So save a better
suggestion I think this is more than acceptable.
Logan
Powered by blists - more mailing lists