Re: [PATCH v3] PCI/DOE: Expose the DOE protocols via sysfs

From: Randy Dunlap
Date: Wed Aug 09 2023 - 19:46:38 EST


Hi--

On 8/9/23 16:28, Alistair Francis wrote:
> The PCIe 6 specification added support for the Data Object Exchange (DOE).
> When DOE is supported the Discovery Data Object Protocol must be
> implemented. The protocol allows a requester to obtain information about
> the other DOE protocols supported by the device.
>
> The kernel is already querying the DOE protocols supported and cacheing
> the values. This patch exposes the values via sysfs. This will allow
> userspace to determine which DOE protocols are supported by the PCIe
> device.
>
> By exposing the information to userspace tools like lspci can relay the
> information to users. By listing all of the supported protocols we can
> allow userspace to parse and support the list, which might include
> vendor specific protocols as well as yet to be supported protocols.
>
> Signed-off-by: Alistair Francis <alistair.francis@xxxxxxx>
> ---
> v3:
> - Expose each DOE feature as a separate file
>
> Documentation/ABI/testing/sysfs-bus-pci | 10 +++
> drivers/pci/doe.c | 107 ++++++++++++++++++++++++
> drivers/pci/pci-sysfs.c | 7 ++
> include/linux/pci-doe.h | 1 +
> 4 files changed, 125 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-pci b/Documentation/ABI/testing/sysfs-bus-pci
> index ecf47559f495..e754b8efdb69 100644
> --- a/Documentation/ABI/testing/sysfs-bus-pci
> +++ b/Documentation/ABI/testing/sysfs-bus-pci
> @@ -500,3 +500,13 @@ Description:
> console drivers from the device. Raw users of pci-sysfs
> resourceN attributes must be terminated prior to resizing.
> Success of the resizing operation is not guaranteed.
> +
> +What: /sys/bus/pci/devices/.../doe_proto

Should this be doe_protos
? like this:
+ .name = "doe_protos",


> +Date: July 2023
> +Contact: Linux PCI developers <linux-pci@xxxxxxxxxxxxxxx>
> +Description:
> + This diectory contains a list of the supported Data Object Exchange (DOE)

directory

> + features. Each feature is a single file.

The feature values are in the file name; the files have no contents.
?

> + The value comes from the device and specifies the vendor and
> + data object type supported. The lower byte is the data object type and the next
> + two bytes are the vendor ID.

--
~Randy