DPDK patches and discussions
 help / color / mirror / Atom feed
From: Slava Ovsiienko <viacheslavo@nvidia.com>
To: Michael Baum <michaelba@nvidia.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: Matan Azrad <matan@nvidia.com>, Raslan Darawsheh <rasland@nvidia.com>
Subject: Re: [dpdk-dev] [PATCH 6/6] net/mlx5: separate Tx burst functions to different files
Date: Tue, 6 Apr 2021 09:30:25 +0000
Message-ID: <DM6PR12MB375354CEB602085DB14B34CEDF769@DM6PR12MB3753.namprd12.prod.outlook.com> (raw)
In-Reply-To: <1617631256-3018-7-git-send-email-michaelba@nvidia.com>

> -----Original Message-----
> From: Michael Baum <michaelba@nvidia.com>
> Sent: Monday, April 5, 2021 17:01
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@nvidia.com>; Raslan Darawsheh
> <rasland@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>
> Subject: [PATCH 6/6] net/mlx5: separate Tx burst functions to different files
> 
> This patch separates Tx burst function implementations to different source
> files, thus allowing them to compile in parallel.
> 
> Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>


> ---
>  drivers/net/mlx5/meson.build     |   4 +
>  drivers/net/mlx5/mlx5_rxtx.c     | 201 ---------------------------------------
>  drivers/net/mlx5/mlx5_tx.h       |   8 +-
>  drivers/net/mlx5/mlx5_tx_empw.c  |  71 ++++++++++++++
>  drivers/net/mlx5/mlx5_tx_mpw.c   |  34 +++++++
>  drivers/net/mlx5/mlx5_tx_nompw.c |  71 ++++++++++++++
> drivers/net/mlx5/mlx5_tx_txpp.c  |  45 +++++++++
>  7 files changed, 232 insertions(+), 202 deletions(-)  create mode 100644
> drivers/net/mlx5/mlx5_tx_empw.c  create mode 100644
> drivers/net/mlx5/mlx5_tx_mpw.c  create mode 100644
> drivers/net/mlx5/mlx5_tx_nompw.c  create mode 100644
> drivers/net/mlx5/mlx5_tx_txpp.c
> 
> diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
> index 688a925..59afd3f 100644
> --- a/drivers/net/mlx5/meson.build
> +++ b/drivers/net/mlx5/meson.build
> @@ -26,6 +26,10 @@ sources = files(
>  	'mlx5_stats.c',
>  	'mlx5_trigger.c',
>      'mlx5_tx.c',
> +    'mlx5_tx_empw.c',
> +    'mlx5_tx_mpw.c',
> +    'mlx5_tx_nompw.c',
> +    'mlx5_tx_txpp.c',
>  	'mlx5_txq.c',
>  	'mlx5_txpp.c',
>  	'mlx5_vlan.c',
> diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
> index 35c4cc3..7b984ef 100644
> --- a/drivers/net/mlx5/mlx5_rxtx.c
> +++ b/drivers/net/mlx5/mlx5_rxtx.c
> @@ -429,204 +429,3 @@
>  	}
>  	return ret;
>  }
> -
> -/* Generate routines with Enhanced Multi-Packet Write support. */ -
> MLX5_TXOFF_DECL(full_empw,
> -		MLX5_TXOFF_CONFIG_FULL |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(none_empw,
> -		MLX5_TXOFF_CONFIG_NONE |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(md_empw,
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mt_empw,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mtsc_empw,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mti_empw,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_INLINE |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mtv_empw,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mtiv_empw,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(sc_empw,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(sci_empw,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_INLINE |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(scv_empw,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(sciv_empw,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(i_empw,
> -		MLX5_TXOFF_CONFIG_INLINE |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(v_empw,
> -		MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(iv_empw,
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -/* Generate routines without Enhanced Multi-Packet Write support. */ -
> MLX5_TXOFF_DECL(full,
> -		MLX5_TXOFF_CONFIG_FULL)
> -
> -MLX5_TXOFF_DECL(none,
> -		MLX5_TXOFF_CONFIG_NONE)
> -
> -MLX5_TXOFF_DECL(md,
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(mt,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(mtsc,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(mti,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_INLINE |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -
> -MLX5_TXOFF_DECL(mtv,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -
> -MLX5_TXOFF_DECL(mtiv,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(sc,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(sci,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_INLINE |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -
> -MLX5_TXOFF_DECL(scv,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -
> -MLX5_TXOFF_DECL(sciv,
> -		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(i,
> -		MLX5_TXOFF_CONFIG_INLINE |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(v,
> -		MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -MLX5_TXOFF_DECL(iv,
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA)
> -
> -/* Generate routines with timestamp scheduling. */ -
> MLX5_TXOFF_DECL(full_ts_nompw,
> -		MLX5_TXOFF_CONFIG_FULL | MLX5_TXOFF_CONFIG_TXPP)
> -
> -MLX5_TXOFF_DECL(full_ts_nompwi,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM
> |
> -		MLX5_TXOFF_CONFIG_VLAN |
> MLX5_TXOFF_CONFIG_METADATA |
> -		MLX5_TXOFF_CONFIG_TXPP)
> -
> -MLX5_TXOFF_DECL(full_ts,
> -		MLX5_TXOFF_CONFIG_FULL | MLX5_TXOFF_CONFIG_TXPP
> |
> -		MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(full_ts_noi,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM
> |
> -		MLX5_TXOFF_CONFIG_VLAN |
> MLX5_TXOFF_CONFIG_METADATA |
> -		MLX5_TXOFF_CONFIG_TXPP |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(none_ts,
> -		MLX5_TXOFF_CONFIG_NONE | MLX5_TXOFF_CONFIG_TXPP
> |
> -		MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mdi_ts,
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_METADATA |
> -		MLX5_TXOFF_CONFIG_TXPP |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mti_ts,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_METADATA |
> -		MLX5_TXOFF_CONFIG_TXPP |
> MLX5_TXOFF_CONFIG_EMPW)
> -
> -MLX5_TXOFF_DECL(mtiv_ts,
> -		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> -		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_TXPP |
> -		MLX5_TXOFF_CONFIG_EMPW)
> -
> -/*
> - * Generate routines with Legacy Multi-Packet Write support.
> - * This mode is supported by ConnectX-4 Lx only and imposes
> - * offload limitations, not supported:
> - *   - ACL/Flows (metadata are becoming meaningless)
> - *   - WQE Inline headers
> - *   - SRIOV (E-Switch offloads)
> - *   - VLAN insertion
> - *   - tunnel encapsulation/decapsulation
> - *   - TSO
> - */
> -MLX5_TXOFF_DECL(none_mpw,
> -		MLX5_TXOFF_CONFIG_NONE |
> MLX5_TXOFF_CONFIG_EMPW |
> -		MLX5_TXOFF_CONFIG_MPW)
> -
> -MLX5_TXOFF_DECL(mci_mpw,
> -		MLX5_TXOFF_CONFIG_MULTI |
> MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_EMPW |
> -		MLX5_TXOFF_CONFIG_MPW)
> -
> -MLX5_TXOFF_DECL(mc_mpw,
> -		MLX5_TXOFF_CONFIG_MULTI |
> MLX5_TXOFF_CONFIG_CSUM |
> -		MLX5_TXOFF_CONFIG_EMPW |
> MLX5_TXOFF_CONFIG_MPW)
> -
> -MLX5_TXOFF_DECL(i_mpw,
> -		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_EMPW |
> -		MLX5_TXOFF_CONFIG_MPW)
> diff --git a/drivers/net/mlx5/mlx5_tx.h b/drivers/net/mlx5/mlx5_tx.h index
> 7a03aaf..7d3ff84 100644
> --- a/drivers/net/mlx5/mlx5_tx.h
> +++ b/drivers/net/mlx5/mlx5_tx.h
> @@ -242,7 +242,7 @@ int mlx5_tx_burst_mode_get(struct rte_eth_dev
> *dev, uint16_t tx_queue_id,  uint32_t mlx5_tx_update_ext_mp(struct
> mlx5_txq_data *txq, uintptr_t addr,
>  			       struct rte_mempool *mp);
> 
> -/* mlx5_rxtx.c */
> +/* mlx5_tx_empw.c */
> 
>  MLX5_TXOFF_PRE_DECL(full_empw);
>  MLX5_TXOFF_PRE_DECL(none_empw);
> @@ -260,6 +260,8 @@ uint32_t mlx5_tx_update_ext_mp(struct
> mlx5_txq_data *txq, uintptr_t addr,  MLX5_TXOFF_PRE_DECL(v_empw);
> MLX5_TXOFF_PRE_DECL(iv_empw);
> 
> +/* mlx5_tx_nompw.c */
> +
>  MLX5_TXOFF_PRE_DECL(full);
>  MLX5_TXOFF_PRE_DECL(none);
>  MLX5_TXOFF_PRE_DECL(md);
> @@ -276,6 +278,8 @@ uint32_t mlx5_tx_update_ext_mp(struct
> mlx5_txq_data *txq, uintptr_t addr,  MLX5_TXOFF_PRE_DECL(v);
> MLX5_TXOFF_PRE_DECL(iv);
> 
> +/* mlx5_tx_txpp.c */
> +
>  MLX5_TXOFF_PRE_DECL(full_ts_nompw);
>  MLX5_TXOFF_PRE_DECL(full_ts_nompwi);
>  MLX5_TXOFF_PRE_DECL(full_ts);
> @@ -285,6 +289,8 @@ uint32_t mlx5_tx_update_ext_mp(struct
> mlx5_txq_data *txq, uintptr_t addr,  MLX5_TXOFF_PRE_DECL(mti_ts);
> MLX5_TXOFF_PRE_DECL(mtiv_ts);
> 
> +/* mlx5_tx_mpw.c */
> +
>  MLX5_TXOFF_PRE_DECL(none_mpw);
>  MLX5_TXOFF_PRE_DECL(mci_mpw);
>  MLX5_TXOFF_PRE_DECL(mc_mpw);
> diff --git a/drivers/net/mlx5/mlx5_tx_empw.c
> b/drivers/net/mlx5/mlx5_tx_empw.c new file mode 100644 index
> 0000000..81c2dc4
> --- /dev/null
> +++ b/drivers/net/mlx5/mlx5_tx_empw.c
> @@ -0,0 +1,71 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright 2021 6WIND S.A.
> + * Copyright 2021 Mellanox Technologies, Ltd  */
> +
> +#include "mlx5_tx.h"
> +
> +/* Generate routines with Enhanced Multi-Packet Write support. */
> +MLX5_TXOFF_DECL(full_empw,
> +		MLX5_TXOFF_CONFIG_FULL |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(none_empw,
> +		MLX5_TXOFF_CONFIG_NONE |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(md_empw,
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mt_empw,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mtsc_empw,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mti_empw,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_INLINE |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mtv_empw,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mtiv_empw,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(sc_empw,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(sci_empw,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_INLINE |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(scv_empw,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(sciv_empw,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(i_empw,
> +		MLX5_TXOFF_CONFIG_INLINE |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(v_empw,
> +		MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(iv_empw,
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_EMPW)
> diff --git a/drivers/net/mlx5/mlx5_tx_mpw.c
> b/drivers/net/mlx5/mlx5_tx_mpw.c new file mode 100644 index
> 0000000..bd7d5d2
> --- /dev/null
> +++ b/drivers/net/mlx5/mlx5_tx_mpw.c
> @@ -0,0 +1,34 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright 2021 6WIND S.A.
> + * Copyright 2021 Mellanox Technologies, Ltd  */
> +
> +#include "mlx5_tx.h"
> +
> +/*
> + * Generate routines with Legacy Multi-Packet Write support.
> + * This mode is supported by ConnectX-4 Lx only and imposes
> + * offload limitations, not supported:
> + *   - ACL/Flows (metadata are becoming meaningless)
> + *   - WQE Inline headers
> + *   - SRIOV (E-Switch offloads)
> + *   - VLAN insertion
> + *   - tunnel encapsulation/decapsulation
> + *   - TSO
> + */
> +MLX5_TXOFF_DECL(none_mpw,
> +		MLX5_TXOFF_CONFIG_NONE |
> MLX5_TXOFF_CONFIG_EMPW |
> +		MLX5_TXOFF_CONFIG_MPW)
> +
> +MLX5_TXOFF_DECL(mci_mpw,
> +		MLX5_TXOFF_CONFIG_MULTI |
> MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_EMPW |
> +		MLX5_TXOFF_CONFIG_MPW)
> +
> +MLX5_TXOFF_DECL(mc_mpw,
> +		MLX5_TXOFF_CONFIG_MULTI |
> MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_EMPW |
> MLX5_TXOFF_CONFIG_MPW)
> +
> +MLX5_TXOFF_DECL(i_mpw,
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_EMPW |
> +		MLX5_TXOFF_CONFIG_MPW)
> diff --git a/drivers/net/mlx5/mlx5_tx_nompw.c
> b/drivers/net/mlx5/mlx5_tx_nompw.c
> new file mode 100644
> index 0000000..ad23aab
> --- /dev/null
> +++ b/drivers/net/mlx5/mlx5_tx_nompw.c
> @@ -0,0 +1,71 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright 2021 6WIND S.A.
> + * Copyright 2021 Mellanox Technologies, Ltd  */
> +
> +#include "mlx5_tx.h"
> +
> +/* Generate routines without Enhanced Multi-Packet Write support. */
> +MLX5_TXOFF_DECL(full,
> +		MLX5_TXOFF_CONFIG_FULL)
> +
> +MLX5_TXOFF_DECL(none,
> +		MLX5_TXOFF_CONFIG_NONE)
> +
> +MLX5_TXOFF_DECL(md,
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(mt,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(mtsc,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(mti,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_INLINE |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(mtv,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(mtiv,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(sc,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(sci,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_INLINE |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(scv,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(sciv,
> +		MLX5_TXOFF_CONFIG_SWP |
> 	MLX5_TXOFF_CONFIG_CSUM |
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(i,
> +		MLX5_TXOFF_CONFIG_INLINE |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(v,
> +		MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA)
> +
> +MLX5_TXOFF_DECL(iv,
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA)
> diff --git a/drivers/net/mlx5/mlx5_tx_txpp.c
> b/drivers/net/mlx5/mlx5_tx_txpp.c new file mode 100644 index
> 0000000..4d2a4c6
> --- /dev/null
> +++ b/drivers/net/mlx5/mlx5_tx_txpp.c
> @@ -0,0 +1,45 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright 2021 6WIND S.A.
> + * Copyright 2021 Mellanox Technologies, Ltd  */
> +
> +#include "mlx5_tx.h"
> +
> +/* Generate routines with timestamp scheduling. */
> +MLX5_TXOFF_DECL(full_ts_nompw,
> +		MLX5_TXOFF_CONFIG_FULL | MLX5_TXOFF_CONFIG_TXPP)
> +
> +MLX5_TXOFF_DECL(full_ts_nompwi,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM
> |
> +		MLX5_TXOFF_CONFIG_VLAN |
> MLX5_TXOFF_CONFIG_METADATA |
> +		MLX5_TXOFF_CONFIG_TXPP)
> +
> +MLX5_TXOFF_DECL(full_ts,
> +		MLX5_TXOFF_CONFIG_FULL | MLX5_TXOFF_CONFIG_TXPP
> |
> +		MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(full_ts_noi,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM
> |
> +		MLX5_TXOFF_CONFIG_VLAN |
> MLX5_TXOFF_CONFIG_METADATA |
> +		MLX5_TXOFF_CONFIG_TXPP |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(none_ts,
> +		MLX5_TXOFF_CONFIG_NONE | MLX5_TXOFF_CONFIG_TXPP
> |
> +		MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mdi_ts,
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_METADATA |
> +		MLX5_TXOFF_CONFIG_TXPP |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mti_ts,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_METADATA |
> +		MLX5_TXOFF_CONFIG_TXPP |
> MLX5_TXOFF_CONFIG_EMPW)
> +
> +MLX5_TXOFF_DECL(mtiv_ts,
> +		MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO
> |
> +		MLX5_TXOFF_CONFIG_INLINE |
> MLX5_TXOFF_CONFIG_VLAN |
> +		MLX5_TXOFF_CONFIG_METADATA |
> MLX5_TXOFF_CONFIG_TXPP |
> +		MLX5_TXOFF_CONFIG_EMPW)
> --
> 1.8.3.1


  reply	other threads:[~2021-04-06  9:30 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-05 14:00 [dpdk-dev] [PATCH 0/6] net/mlx5: reduce Tx datapath compile time Michael Baum
2021-04-05 14:00 ` [dpdk-dev] [PATCH 1/6] net/mlx5: separate Rx function declarations to another file Michael Baum
2021-04-06  9:27   ` Slava Ovsiienko
2021-04-05 14:00 ` [dpdk-dev] [PATCH 2/6] net/mlx5: separate Rx function implementations to new file Michael Baum
2021-04-06  9:27   ` Slava Ovsiienko
2021-04-05 14:00 ` [dpdk-dev] [PATCH 3/6] net/mlx5: separate Tx function declarations to another file Michael Baum
2021-04-06  9:28   ` Slava Ovsiienko
2021-04-07 11:33   ` Raslan Darawsheh
2021-04-05 14:00 ` [dpdk-dev] [PATCH 4/6] net/mlx5: separate Tx burst template to header file Michael Baum
2021-04-06  9:28   ` Slava Ovsiienko
2021-04-05 14:00 ` [dpdk-dev] [PATCH 5/6] net/mlx5: separate Tx function implementations to new file Michael Baum
2021-04-06  9:29   ` Slava Ovsiienko
2021-04-05 14:00 ` [dpdk-dev] [PATCH 6/6] net/mlx5: separate Tx burst functions to different files Michael Baum
2021-04-06  9:30   ` Slava Ovsiienko [this message]
2021-04-06  9:33 ` [dpdk-dev] [PATCH 0/6] net/mlx5: reduce Tx datapath compile time David Marchand
2021-04-06  9:58   ` Slava Ovsiienko
2021-04-12  6:32 ` [dpdk-dev] [PATCH v2 " Michael Baum
2021-04-12  6:32   ` [dpdk-dev] [PATCH v2 1/6] net/mlx5: separate Rx function declarations to another file Michael Baum
2021-04-12  6:32   ` [dpdk-dev] [PATCH v2 2/6] net/mlx5: separate Rx function implementations to new file Michael Baum
2021-04-16 13:08     ` Ferruh Yigit
2021-04-12  6:32   ` [dpdk-dev] [PATCH v2 3/6] net/mlx5: separate Tx function declarations to another file Michael Baum
2021-04-12  6:32   ` [dpdk-dev] [PATCH v2 4/6] net/mlx5: separate Tx burst template to header file Michael Baum
2021-04-12  6:32   ` [dpdk-dev] [PATCH v2 5/6] net/mlx5: separate Tx function implementations to new file Michael Baum
2021-04-12  6:32   ` [dpdk-dev] [PATCH v2 6/6] net/mlx5: separate Tx burst functions to different files Michael Baum
2021-04-15  6:27   ` [dpdk-dev] [PATCH v2 0/6] net/mlx5: reduce Tx datapath compile time Raslan Darawsheh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM6PR12MB375354CEB602085DB14B34CEDF769@DM6PR12MB3753.namprd12.prod.outlook.com \
    --to=viacheslavo@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=matan@nvidia.com \
    --cc=michaelba@nvidia.com \
    --cc=rasland@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git