[PATCH v6 3/4] net/intel: use common Tx queue structure
Bruce Richardson
bruce.richardson at intel.com
Tue Apr 8 18:49:56 CEST 2025
On Thu, Apr 03, 2025 at 04:54:28PM +0530, Shaiq Wani wrote:
> Merge in additional fields used by the idpf driver and then convert it
> over to using the common Tx queue structure
>
> Signed-off-by: Shaiq Wani <shaiq.wani at intel.com>
> ---
> drivers/net/intel/common/tx.h | 18 ++++++
> drivers/net/intel/cpfl/cpfl_ethdev.c | 3 +-
> drivers/net/intel/cpfl/cpfl_ethdev.h | 2 +-
> drivers/net/intel/cpfl/cpfl_rxtx.c | 24 ++++----
> drivers/net/intel/cpfl/cpfl_rxtx.h | 3 +-
> drivers/net/intel/cpfl/cpfl_rxtx_vec_common.h | 2 +-
> drivers/net/intel/idpf/idpf_common_rxtx.c | 20 +++----
> drivers/net/intel/idpf/idpf_common_rxtx.h | 57 +++----------------
> .../net/intel/idpf/idpf_common_rxtx_avx2.c | 10 ++--
> .../net/intel/idpf/idpf_common_rxtx_avx512.c | 20 +++----
> drivers/net/intel/idpf/idpf_common_virtchnl.c | 2 +-
> drivers/net/intel/idpf/idpf_common_virtchnl.h | 2 +-
> drivers/net/intel/idpf/idpf_ethdev.c | 2 +-
> drivers/net/intel/idpf/idpf_rxtx.c | 21 ++++---
> drivers/net/intel/idpf/idpf_rxtx_vec_common.h | 4 +-
> 15 files changed, 83 insertions(+), 107 deletions(-)
>
> diff --git a/drivers/net/intel/common/tx.h b/drivers/net/intel/common/tx.h
> index d9cf4474fc..9694b0fc06 100644
> --- a/drivers/net/intel/common/tx.h
> +++ b/drivers/net/intel/common/tx.h
> @@ -35,6 +35,7 @@ struct ci_tx_queue {
> volatile struct i40e_tx_desc *i40e_tx_ring;
> volatile struct iavf_tx_desc *iavf_tx_ring;
> volatile struct ice_tx_desc *ice_tx_ring;
> + volatile struct idpf_base_tx_desc *idpf_tx_ring;
> volatile union ixgbe_adv_tx_desc *ixgbe_tx_ring;
> };
> volatile uint8_t *qtx_tail; /* register address of tail */
> @@ -98,6 +99,23 @@ struct ci_tx_queue {
> uint8_t wthresh; /**< Write-back threshold reg. */
> uint8_t using_ipsec; /**< indicates that IPsec TX feature is in use */
> };
> + struct { /* idpf specific values */
> + volatile union {
> + struct idpf_flex_tx_sched_desc *desc_ring;
> + struct idpf_splitq_tx_compl_desc *compl_ring;
> + };
> + const struct idpf_txq_ops *idpf_ops;
> + struct ci_tx_queue *complq;
> + void **txqs; /*only valid for split queue mode*/
> + bool q_started; /* if tx queue has been started */
> + /* only valid for split queue mode */
> + uint32_t tx_start_qid;
> + uint16_t sw_nb_desc;
> + uint16_t sw_tail;
> +#define IDPF_TX_CTYPE_NUM 8
> + uint16_t ctype[IDPF_TX_CTYPE_NUM];
> + uint8_t expected_gen_id;
> + };
> };
> };
While I think we can do some work in terms of shrinking down this queue
structure, its not a massive problem I think right now. It can be solved
separate from this patch.
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
More information about the dev
mailing list