• Aya Levin's avatar
    net/mlx5e: Add support for PCI relaxed ordering · 17347d54
    Aya Levin authored
    The concept of Relaxed Ordering in the PCI Express environment allows
    switches in the path between the Requester and Completer to reorder some
    transactions just received before others that were previously enqueued.
    
    In ETH driver, there is no question of write integrity since each memory
    segment is written only once per cycle. In addition, the driver doesn't
    access the memory shared with the hardware until the corresponding CQE
    arrives indicating all PCI transactions are done.
    
    Running TCP single stream over ConnectX-4 LX, ARM CPU on remote-numa has
    300% improvement in the bandwidth.
    
    With relaxed ordering turned off: BW:10 [GB/s]
    With relaxed ordering turned on: BW:40 [GB/s]
    
    The driver turns relaxed ordering with respect to the firmware
    capabilities and the return value from pcie_relaxed_ordering_enabled().
    Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    17347d54
en.h 34.9 KB