summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx5/core/lag.c
diff options
context:
space:
mode:
authorTariq Toukan2017-01-29 16:42:26 +0100
committerSaeed Mahameed2017-06-22 13:30:13 +0200
commitaccd58833237d4ad835f7f176303ac2b582704e3 (patch)
tree031ff3bb8381a25ff815d93940092ab9a7621aad /drivers/net/ethernet/mellanox/mlx5/core/lag.c
parentnet/mlx5e: Enhance RX SKB headroom logic (diff)
downloadkernel-qcow2-linux-accd58833237d4ad835f7f176303ac2b582704e3.tar.gz
kernel-qcow2-linux-accd58833237d4ad835f7f176303ac2b582704e3.tar.xz
kernel-qcow2-linux-accd58833237d4ad835f7f176303ac2b582704e3.zip
net/mlx5e: Introduce RX Page-Reuse
Introduce a Page-Reuse mechanism in non-Striding RQ RX datapath. A WQE (RX descriptor) buffer is a page, that in most cases was fully wasted on a packet that is much smaller, requiring a new page for the next round. In this patch, we implement a page-reuse mechanism, that resembles a `SW Striding RQ`. We allow the WQE to reuse its allocated page as much as it could, until the page is fully consumed. In each round, the WQE is capable of receiving packet of maximal size (MTU). Yet, upon the reception of a packet, the WQE knows the actual packet size, and consumes the exact amount of memory needed to build a linear SKB. Then, it updates the buffer pointer within the page accordingly, for the next round. Feature is mutually exclusive with XDP (packet-per-page) and LRO (session size is a power of two, needs unused page). Performance tests: iperf tcp tests show huge gain: -------------------------------------------- num streams | BW before | BW after | ratio | 1 | 22.2 | 30.9 | 1.39x | 8 | 64.2 | 93.6 | 1.46x | 64 | 56.7 | 91.4 | 1.61x | -------------------------------------------- Signed-off-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/lag.c')
0 files changed, 0 insertions, 0 deletions