[PATCH v3 08/10] net/cpfl: enable write back based on ITR expire

Wu, Jingjing jingjing.wu at intel.com
Thu May 25 06:17:49 CEST 2023


>  idpf_vport_irq_unmap_config(struct idpf_vport *vport, uint16_t nb_rx_queues)
>  {
> diff --git a/drivers/common/idpf/idpf_common_device.h
> b/drivers/common/idpf/idpf_common_device.h
> index 112367dae8..f767ea7cec 100644
> --- a/drivers/common/idpf/idpf_common_device.h
> +++ b/drivers/common/idpf/idpf_common_device.h
> @@ -200,5 +200,9 @@ int idpf_vport_info_init(struct idpf_vport *vport,
>  			 struct virtchnl2_create_vport *vport_info);
>  __rte_internal
>  void idpf_vport_stats_update(struct virtchnl2_vport_stats *oes, struct
> virtchnl2_vport_stats *nes);
> +__rte_internal
> +int idpf_vport_irq_map_config_by_qids(struct idpf_vport *vport,
> +				      uint32_t *qids,
> +				      uint16_t nb_rx_queues);
> 
>  #endif /* _IDPF_COMMON_DEVICE_H_ */
> diff --git a/drivers/common/idpf/version.map b/drivers/common/idpf/version.map
> index 25624732b0..0729f6b912 100644
> --- a/drivers/common/idpf/version.map
> +++ b/drivers/common/idpf/version.map
> @@ -69,6 +69,7 @@ INTERNAL {
>  	idpf_vport_info_init;
>  	idpf_vport_init;
>  	idpf_vport_irq_map_config;
> +	idpf_vport_irq_map_config_by_qids;
>  	idpf_vport_irq_unmap_config;
>  	idpf_vport_rss_config;
>  	idpf_vport_stats_update;

The same, split common change with net one?

> diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
> index c2ab0690fc..3b480178c0 100644
> --- a/drivers/net/cpfl/cpfl_ethdev.c
> +++ b/drivers/net/cpfl/cpfl_ethdev.c
> @@ -730,11 +730,22 @@ cpfl_dev_configure(struct rte_eth_dev *dev)
>  static int
>  cpfl_config_rx_queues_irqs(struct rte_eth_dev *dev)
>  {
> +	uint32_t qids[CPFL_MAX_P2P_NB_QUEUES + IDPF_DEFAULT_RXQ_NUM] = {0};
>  	struct cpfl_vport *cpfl_vport = dev->data->dev_private;
>  	struct idpf_vport *vport = &cpfl_vport->base;
>  	uint16_t nb_rx_queues = dev->data->nb_rx_queues;
> +	struct cpfl_rx_queue *cpfl_rxq;
> +	int i;
> 
> -	return idpf_vport_irq_map_config(vport, nb_rx_queues);
> +	for (i = 0; i < nb_rx_queues; i++) {
> +		cpfl_rxq = dev->data->rx_queues[i];
> +		if (cpfl_rxq->hairpin_info.hairpin_q)
> +			qids[i] = cpfl_hw_qid_get(cpfl_vport-
> >p2p_q_chunks_info.rx_start_qid,
> +						  (i - cpfl_vport->nb_data_rxq));
> +		else
> +			qids[i] = cpfl_hw_qid_get(vport->chunks_info.rx_start_qid, i);

Looks like cpfl_hw_qid_get  and is used cross files, how about defined it as inline or Macro in header file?

> +	}
> +	return idpf_vport_irq_map_config_by_qids(vport, qids, nb_rx_queues);
>  }
> 
>  /* Update hairpin_info for dev's tx hairpin queue */
> --
> 2.26.2



More information about the dev mailing list