[v2] net/iavf: fix multi-queue Rx interrupt for VF

Message ID 20190906114730.27261-1-lunyuanx.cui@intel.com (mailing list archive)
State Superseded, archived
Delegated to: xiaolong ye
Headers
Series [v2] net/iavf: fix multi-queue Rx interrupt for VF |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-dpdk_compile success Compile Testing PASS
ci/iol-dpdk_compile_spdk success Compile Testing PASS
ci/iol-dpdk_compile_ovs success Compile Testing PASS
ci/intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance success Performance Testing PASS

Commit Message

Cui, LunyuanX Sept. 6, 2019, 11:47 a.m. UTC
  The original issue was that the last queue could not
be mapped to the interrupt vector, so the last queue
could not receive the package in the interrupt mode.
This patch fixes the issue.

Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt")
Cc: stable@dpdk.org

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Qiming Yang Sept. 11, 2019, 2:53 a.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of lunyuan.cui
> Sent: Friday, September 6, 2019 7:48 PM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Cui, LunyuanX
> <lunyuanx.cui@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH v2] net/iavf: fix multi-queue Rx interrupt for VF
> 
> The original issue was that the last queue could not be mapped to the
> interrupt vector, so the last queue could not receive the package in the
> interrupt mode.
> This patch fixes the issue.
> 
> Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>
> ---
>  drivers/net/iavf/iavf_ethdev.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
> index 8f3907378..6559bfa1f 100644
> --- a/drivers/net/iavf/iavf_ethdev.c
> +++ b/drivers/net/iavf/iavf_ethdev.c
> @@ -360,7 +360,7 @@ static int iavf_config_rx_queues_irqs(struct
> rte_eth_dev *dev,
>  			for (i = 0; i < dev->data->nb_rx_queues; i++) {
>  				vf->rxq_map[vec] |= 1 << i;
>  				intr_handle->intr_vec[i] = vec++;
> -				if (vec >= vf->nb_msix)
> +				if (vec > vf->nb_msix)
>  					vec = IAVF_RX_VEC_START;
>  			}
>  			PMD_DRV_LOG(DEBUG,
> --
> 2.17.1

Acked-by: Qiming Yang <qiming.yang@intel.com>
  

Patch

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 8f3907378..6559bfa1f 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -360,7 +360,7 @@  static int iavf_config_rx_queues_irqs(struct rte_eth_dev *dev,
 			for (i = 0; i < dev->data->nb_rx_queues; i++) {
 				vf->rxq_map[vec] |= 1 << i;
 				intr_handle->intr_vec[i] = vec++;
-				if (vec >= vf->nb_msix)
+				if (vec > vf->nb_msix)
 					vec = IAVF_RX_VEC_START;
 			}
 			PMD_DRV_LOG(DEBUG,