Subject: Re: [net-next 10/10] net/mlx5e: Add support for PCI relaxed ordering

From: Jason Gunthorpe <[email-masked]>
Date: Wed, 8 Jul 2020 20:26:02 -0300

On Wed, Jul 08, 2020 at 06:16:30PM -0500, Bjorn Helgaas wrote:
>     I suspect there may be device-specific controls, too, because [1]
>     claims to enable/disable Relaxed Ordering but doesn't touch the
>     PCIe Device Control register.  Device-specific controls are
>     certainly allowed, but of course it would be up to the driver, and
>     the device cannot generate TLPs with Relaxed Ordering unless the
>     architected PCIe Enable Relaxed Ordering bit is *also* set.

Yes, at least on RDMA relaxed ordering can be set on a per transaction
basis and is something userspace can choose to use or not at a fine
granularity. This is because we have to support historical
applications that make assumptions that data arrives in certain
orders.

I've been thinking of doing the same as this patch but for RDMA kernel
ULPs and just globally turn it on if the PCI CAP is enabled as none of
our in-kernel uses have the legacy data ordering problem.

There are reports that using relaxed ordering is a *huge* speed up in
certain platforms/configurations/etc.

>     issues, it might be enough to disable Relaxed Ordering using
>     setpci, e.g., "setpci -s02:00.0 CAP_EXP+8.w=0"

For the purposes of occasional performance testing I think this should
be good enough?

Aya?

Jason