mirror_ubuntu-kernels/include/linux/mlx5
Ofer Levi 2c925db0a7 net/mlx5e: Support enhanced CQE compression
CQE compression feature improves performance by reducing PCI bandwidth
bottleneck on CQEs write.
Enhanced CQE compression introduced in ConnectX-6 and it aims to reduce
CPU utilization of SW side packets decompression by eliminating the
need to rewrite ownership bit, which is likely to cost a cache-miss, is
replaced by validity byte handled solely by HW.
Another advantage of the enhanced feature is that session packets are
available to SW as soon as a single CQE slot is filled, instead of
waiting for session to close, this improves packet latency from NIC to
host.

Performance:
Following are tested scenarios and reults comparing basic and enahnced
CQE compression.

setup: IXIA 100GbE connected directly to port 0 and port 1 of
ConnectX-6 Dx 100GbE dual port.

Case #1 RX only, single flow goes to single queue:
IRQ rate reduced by ~ 30%, CPU utilization improved by 2%.

Case #2 IP forwarding from port 1 to port 0 single flow goes to
single queue:
Avg latency improved from 60us to 21us, frame loss improved from 0.5% to 0.0%.

Case #3 IP forwarding from port 1 to port 0 Max Throughput IXIA sends
100%, 8192 UDP flows, goes to 24 queues:
Enhanced is equal or slightly better than basic.

Testing the basic compression feature with this patch shows there is
no perfrormance degradation of the basic compression feature.

Signed-off-by: Ofer Levi <oferle@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-11-12 02:20:19 -08:00
..
cq.h net/mlx5: Use mlx5_cmd_do() in core create_{cq,dct} 2022-02-23 15:21:59 -08:00
device.h net/mlx5e: Support enhanced CQE compression 2022-11-12 02:20:19 -08:00
doorbell.h
driver.h net/mlx5: Fix possible use-after-free in async command interface 2022-10-27 11:06:56 -07:00
eq.h
eswitch.h net/mlx5: E-switch, Remove dependency between sriov and eswitch mode 2022-07-02 11:58:26 -07:00
fs_helpers.h net/mlx5: Remove unused functions 2022-09-27 12:50:27 -07:00
fs.h net/mlx5: Add MACsec Rx tables support to fs_core 2022-09-07 14:02:08 +01:00
mlx5_ifc_fpga.h net/mlx5: Remove from FPGA IFC file not-needed definitions 2022-09-27 12:50:27 -07:00
mlx5_ifc_vdpa.h vdpa/mlx5: Implement susupend virtqueue callback 2022-08-11 04:26:08 -04:00
mlx5_ifc.h v6.1 merge window pull request 2022-10-07 12:05:29 -07:00
mpfs.h
port.h IB/mlx5: Fix undefined behavior due to shift overflowing the constant 2022-04-06 10:15:03 +03:00
qp.h net/mlx5e: xsk: Use KSM for unaligned XSK 2022-09-30 07:55:46 -07:00
rsc_dump.h
transobj.h
vport.h