[dpdk-dev] [PATCH v2] net/mlx5: fix dynamic inline hint handling

Raslan Darawsheh rasland at mellanox.com
Thu Jul 23 16:50:38 CEST 2020


Hi,

> -----Original Message-----
> From: Gregory Etelson <getelson at mellanox.com>
> Sent: Thursday, July 23, 2020 5:21 PM
> To: dev at dpdk.org
> Cc: Gregory Etelson <getelson at mellanox.com>; Matan Azrad
> <matan at mellanox.com>; Raslan Darawsheh <rasland at mellanox.com>;
> Slava Ovsiienko <viacheslavo at mellanox.com>; Shahaf Shuler
> <shahafs at mellanox.com>
> Subject: [PATCH v2] net/mlx5: fix dynamic inline hint handling
> 
> The ConnectX NICs can transfer data from the host memory with two
> approaches: provide the pointer to the data buffer, or do data inline
> - copy the data to the transmit descriptor (WQE) entirely or only the
> part of data. In some configurations the NIC hardware requires the
> minimal data to be inline in the descriptor to operate correctly. And
> there is the special dynamic flag to hint PMD not to inline the data
> (for example, if buffer is located on some other device - storage or
> GPU) on per packet basis.
> 
> If there was a packet with length shorter than the minimal inline data
> length requested by the NIC hardware and the no-inline hint was set
> the PMD tried to inline the packet with minimal required length
> instead of actual packet's one.  This patch adds the missed length
> check into no-inline hint handling branch.
> 
> Fixes: cacb44a09962 ("net/mlx5: add no-inline Tx flag")
Added missing Cc: stable at dpdk.org

> 
> Signed-off-by: Gregory Etelson <getelson at mellanox.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_rxtx.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
> index 3eb0243603..1b71e94221 100644
> --- a/drivers/net/mlx5/mlx5_rxtx.c
> +++ b/drivers/net/mlx5/mlx5_rxtx.c
> @@ -4739,6 +4739,8 @@ mlx5_tx_burst_single_send(struct mlx5_txq_data
> *__rte_restrict txq,
>  					      txq->inlen_mode) ||
>  					    (MLX5_TXOFF_CONFIG(MPW) &&
>  					     txq->inlen_mode)) {
> +						if (inlen <= txq->inlen_send)
> +							goto single_inline;
>  						/*
>  						 * The hardware requires the
>  						 * minimal inline data header.
> @@ -4755,6 +4757,7 @@ mlx5_tx_burst_single_send(struct mlx5_txq_data
> *__rte_restrict txq,
>  					}
>  					goto single_no_inline;
>  				}
> +single_inline:
>  				/*
>  				 * Completely inlined packet data WQE:
>  				 * - Control Segment, SEND opcode
> --
> 2.25.1


Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh


More information about the dev mailing list