[dpdk-dev] [PATCH v4 6/8] net/mlx4: separate Tx segment cases
Adrien Mazarguil
adrien.mazarguil at 6wind.com
Thu Nov 2 14:43:02 CET 2017
On Tue, Oct 31, 2017 at 06:21:31PM +0000, Matan Azrad wrote:
> Optimize single segment case by processing it in different block which
> prevents checks, calculations and barriers relevant only for multi
> segment case.
>
> Call a dedicated function for handling multi segments case.
>
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> Signed-off-by: Ophir Munk <ophirmu at mellanox.com>
One remaining comment below, besides that:
Acked-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
> ---
> drivers/net/mlx4/mlx4_rxtx.c | 236 +++++++++++++++++++++++++++----------------
> 1 file changed, 151 insertions(+), 85 deletions(-)
>
> diff --git a/drivers/net/mlx4/mlx4_rxtx.c b/drivers/net/mlx4/mlx4_rxtx.c
<snip>
> + /* Write the first DWORD of each TXBB save earlier. */
> + if (pv_counter) {
> + /* Need a barrier here before writing the byte_count. */
> + rte_io_wmb();
> + for (--pv_counter; pv_counter >= 0; pv_counter--)
> + pv[pv_counter].dseg->byte_count = pv[pv_counter].val;
> + }
> + /* Fill the control parameters for this packet. */
> + ctrl->fence_size = (wqe_real_size >> 4) & 0x3f;
> + return nr_txbbs;
> +}
Missing empty line here.
> /**
> * DPDK callback for Tx.
> *
> @@ -261,10 +374,11 @@ struct pv {
> unsigned int i;
> unsigned int max;
> struct mlx4_sq *sq = &txq->msq;
> - struct pv *pv = (struct pv *)txq->bounce_buf;
> + int nr_txbbs;
<snip>
--
Adrien Mazarguil
6WIND
More information about the dev
mailing list