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 <ma...@mellanox.com>
> Signed-off-by: Ophir Munk <ophi...@mellanox.com>

One remaining comment below, besides that:

Acked-by: Adrien Mazarguil <adrien.mazarg...@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

Reply via email to