Message ID | 20210107082718.33748-6-jingjing.wu@intel.com (mailing list archive) |
---|---|
State | Deferred |
Delegated to: | Qi Zhang |
Headers | show |
Series | introduce new iavf driver on vfio-user client | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
ci/iol-broadcom-Performance | success | Performance Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/iol-broadcom-Functional | success | Functional Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/iol-mellanox-Functional | success | Functional Testing PASS |
ci/iol-abi-testing | success | Testing PASS |
ci/iol-testing | success | Testing PASS |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
Seems the patch is conflict with patch https://patches.dpdk.org/patch/86202/, please help to review. > -----Original Message----- > From: Wu, Jingjing <jingjing.wu@intel.com> > Sent: Thursday, January 7, 2021 4:27 PM > To: dev@dpdk.org > Cc: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>; > Xia, Chenbo <chenbo.xia@intel.com>; Lu, Xiuchun <xiuchun.lu@intel.com> > Subject: [PATCH v3 5/5] net/iavf: fix vector mapping with queue > > Fix the vector mapping with queue by changing the recircle when exceeds > RX_VEC_START + nb_msix; > > Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") > > Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> > --- > drivers/net/iavf/iavf_ethdev.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c > index 06395f852b..b169b19975 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -570,7 +570,7 @@ static int iavf_config_rx_queues_irqs(struct > rte_eth_dev *dev, > /* If Rx interrupt is reuquired, and we can use > * multi interrupts, then the vec is from 1 > */ > - vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors, > + vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors - 1, > intr_handle->nb_efd); > vf->msix_base = IAVF_RX_VEC_START; > vec = IAVF_RX_VEC_START; > @@ -578,7 +578,7 @@ static int iavf_config_rx_queues_irqs(struct > rte_eth_dev *dev, > qv_map[i].queue_id = i; > qv_map[i].vector_id = vec; > intr_handle->intr_vec[i] = vec++; > - if (vec >= vf->nb_msix) > + if (vec >= vf->nb_msix + IAVF_RX_VEC_START) > vec = IAVF_RX_VEC_START; > } > vf->qv_map = qv_map; > -- > 2.21.1
> -----Original Message----- > From: Xing, Beilei <beilei.xing@intel.com> > Sent: Tuesday, January 12, 2021 2:11 PM > To: Wu, Jingjing <jingjing.wu@intel.com>; dev@dpdk.org > Cc: Xia, Chenbo <chenbo.xia@intel.com>; Lu, Xiuchun > <xiuchun.lu@intel.com> > Subject: RE: [PATCH v3 5/5] net/iavf: fix vector mapping with queue > > Seems the patch is conflict with patch > https://patches.dpdk.org/patch/86202/, please help to review. Thanks. Looks like the similar fix. Will comment that patch and drop this one if that is merged. > > > -----Original Message----- > > From: Wu, Jingjing <jingjing.wu@intel.com> > > Sent: Thursday, January 7, 2021 4:27 PM > > To: dev@dpdk.org > > Cc: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei > > <beilei.xing@intel.com>; Xia, Chenbo <chenbo.xia@intel.com>; Lu, > > Xiuchun <xiuchun.lu@intel.com> > > Subject: [PATCH v3 5/5] net/iavf: fix vector mapping with queue > > > > Fix the vector mapping with queue by changing the recircle when > > exceeds RX_VEC_START + nb_msix; > > > > Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") > > > > Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> > > --- > > drivers/net/iavf/iavf_ethdev.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/iavf/iavf_ethdev.c > > b/drivers/net/iavf/iavf_ethdev.c index 06395f852b..b169b19975 100644 > > --- a/drivers/net/iavf/iavf_ethdev.c > > +++ b/drivers/net/iavf/iavf_ethdev.c > > @@ -570,7 +570,7 @@ static int iavf_config_rx_queues_irqs(struct > > rte_eth_dev *dev, > > /* If Rx interrupt is reuquired, and we can use > > * multi interrupts, then the vec is from 1 > > */ > > - vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors, > > + vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors - > 1, > > intr_handle->nb_efd); > > vf->msix_base = IAVF_RX_VEC_START; > > vec = IAVF_RX_VEC_START; > > @@ -578,7 +578,7 @@ static int iavf_config_rx_queues_irqs(struct > > rte_eth_dev *dev, > > qv_map[i].queue_id = i; > > qv_map[i].vector_id = vec; > > intr_handle->intr_vec[i] = vec++; > > - if (vec >= vf->nb_msix) > > + if (vec >= vf->nb_msix + > IAVF_RX_VEC_START) > > vec = IAVF_RX_VEC_START; > > } > > vf->qv_map = qv_map; > > -- > > 2.21.1
Tested-by: Xie,WeiX < weix.xie@intel.com> Regards, Xie Wei > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jingjing Wu > Sent: Thursday, January 7, 2021 4:27 PM > To: dev@dpdk.org > Cc: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei > <beilei.xing@intel.com>; Xia, Chenbo <chenbo.xia@intel.com>; Lu, Xiuchun > <xiuchun.lu@intel.com> > Subject: [dpdk-dev] [PATCH v3 5/5] net/iavf: fix vector mapping with queue > > Fix the vector mapping with queue by changing the recircle when exceeds > RX_VEC_START + nb_msix; > > Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") > > Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> > --- > drivers/net/iavf/iavf_ethdev.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c > index 06395f852b..b169b19975 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -570,7 +570,7 @@ static int iavf_config_rx_queues_irqs(struct > rte_eth_dev *dev, > /* If Rx interrupt is reuquired, and we can use > * multi interrupts, then the vec is from 1 > */ > - vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors, > + vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors - > 1, > intr_handle->nb_efd); > vf->msix_base = IAVF_RX_VEC_START; > vec = IAVF_RX_VEC_START; > @@ -578,7 +578,7 @@ static int iavf_config_rx_queues_irqs(struct > rte_eth_dev *dev, > qv_map[i].queue_id = i; > qv_map[i].vector_id = vec; > intr_handle->intr_vec[i] = vec++; > - if (vec >= vf->nb_msix) > + if (vec >= vf->nb_msix + > IAVF_RX_VEC_START) > vec = IAVF_RX_VEC_START; > } > vf->qv_map = qv_map; > -- > 2.21.1
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 06395f852b..b169b19975 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -570,7 +570,7 @@ static int iavf_config_rx_queues_irqs(struct rte_eth_dev *dev, /* If Rx interrupt is reuquired, and we can use * multi interrupts, then the vec is from 1 */ - vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors, + vf->nb_msix = RTE_MIN(vf->vf_res->max_vectors - 1, intr_handle->nb_efd); vf->msix_base = IAVF_RX_VEC_START; vec = IAVF_RX_VEC_START; @@ -578,7 +578,7 @@ static int iavf_config_rx_queues_irqs(struct rte_eth_dev *dev, qv_map[i].queue_id = i; qv_map[i].vector_id = vec; intr_handle->intr_vec[i] = vec++; - if (vec >= vf->nb_msix) + if (vec >= vf->nb_msix + IAVF_RX_VEC_START) vec = IAVF_RX_VEC_START; } vf->qv_map = qv_map;
Fix the vector mapping with queue by changing the recircle when exceeds RX_VEC_START + nb_msix; Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> --- drivers/net/iavf/iavf_ethdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)