mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
net/mlx5e: FPGA, fix Innova IPsec TX offload data path performance
[ Upstream commit82eaa1fa04] At Innova IPsec TX offload data path a special software parser metadata is used to pass some packet attributes to the hardware, this metadata is passed using the Ethernet control segment of a WQE (a HW descriptor) header. The cited commit might nullify this header, hence the metadata is lost, this caused a significant performance drop during hw offloading operation. Fix by restoring the metadata at the Ethernet control segment in case it was nullified. Fixes:37fdffb217("net/mlx5: WQ, fixes for fragmented WQ buffers API") Signed-off-by: Raed Salem <raeds@mellanox.com> Reviewed-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9143e1dcad
commit
1f1eb00c6e
|
|
@ -387,8 +387,14 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
|
|||
num_wqebbs = DIV_ROUND_UP(ds_cnt, MLX5_SEND_WQEBB_NUM_DS);
|
||||
contig_wqebbs_room = mlx5_wq_cyc_get_contig_wqebbs(wq, pi);
|
||||
if (unlikely(contig_wqebbs_room < num_wqebbs)) {
|
||||
#ifdef CONFIG_MLX5_EN_IPSEC
|
||||
struct mlx5_wqe_eth_seg cur_eth = wqe->eth;
|
||||
#endif
|
||||
mlx5e_fill_sq_frag_edge(sq, wq, pi, contig_wqebbs_room);
|
||||
mlx5e_sq_fetch_wqe(sq, &wqe, &pi);
|
||||
#ifdef CONFIG_MLX5_EN_IPSEC
|
||||
wqe->eth = cur_eth;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fill wqe */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user