lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ