[v1] net/iavf: fix select wrong scan hw ring by rxdid

Message ID 20220314093146.697256-1-stevex.yang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series [v1] net/iavf: fix select wrong scan hw ring by rxdid |

Checks

Context Check Description
ci/iol-x86_64-compile-testing success Testing PASS
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-broadcom-Functional fail Functional Testing issues

Commit Message

Steve Yang March 14, 2022, 9:31 a.m. UTC
  When setup RX queue, the rxdid would be changed if it's
"IAVF_RXDID_LEGACY_0/1", that caused the scan hw ring used the wrong
function 'iavf_rx_scan_hw_ring_flex_rxd()'.

Ignore the rxdid changed when equals "IAVF_RXDID_LEGACY_0/1".

Fixes: 0ed16e01313e ("net/iavf: fix function pointer in multi-process")
Cc: stable@dpdk.org

Signed-off-by: Steve Yang <stevex.yang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Xing, Beilei March 16, 2022, 8:11 a.m. UTC | #1
> -----Original Message-----
> From: Yang, SteveX <stevex.yang@intel.com>
> Sent: Monday, March 14, 2022 5:32 PM
> To: dev@dpdk.org
> Cc: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> Zhang, Qi Z <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>;
> stable@dpdk.org
> Subject: [PATCH v1] net/iavf: fix select wrong scan hw ring by rxdid
> 
> When setup RX queue, the rxdid would be changed if it's
> "IAVF_RXDID_LEGACY_0/1", that caused the scan hw ring used the wrong
> function 'iavf_rx_scan_hw_ring_flex_rxd()'.
> 
> Ignore the rxdid changed when equals "IAVF_RXDID_LEGACY_0/1".
> 
> Fixes: 0ed16e01313e ("net/iavf: fix function pointer in multi-process")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Steve Yang <stevex.yang@intel.com>
> ---
>  drivers/net/iavf/iavf_rxtx.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c index
> 16e8d021f9..3b16609f7d 100644
> --- a/drivers/net/iavf/iavf_rxtx.c
> +++ b/drivers/net/iavf/iavf_rxtx.c
> @@ -477,6 +477,8 @@ iavf_rxd_to_pkt_fields_by_comms_aux_v2(struct
> iavf_rx_queue *rxq,
> 
>  static const
>  iavf_rxd_to_pkt_fields_t rxd_to_pkt_fields_ops[IAVF_RXDID_LAST + 1] = {
> +	[IAVF_RXDID_LEGACY_0] = iavf_rxd_to_pkt_fields_by_comms_ovs,
> +	[IAVF_RXDID_LEGACY_1] = iavf_rxd_to_pkt_fields_by_comms_ovs,
>  	[IAVF_RXDID_COMMS_AUX_VLAN] =
> iavf_rxd_to_pkt_fields_by_comms_aux_v1,
>  	[IAVF_RXDID_COMMS_AUX_IPV4] =
> iavf_rxd_to_pkt_fields_by_comms_aux_v1,
>  	[IAVF_RXDID_COMMS_AUX_IPV6] =
> iavf_rxd_to_pkt_fields_by_comms_aux_v1,
> @@ -521,6 +523,8 @@ iavf_select_rxd_to_pkt_fields_handler(struct
> iavf_rx_queue *rxq, uint32_t rxdid)
> 
> 	rte_pmd_ifd_dynflag_proto_xtr_ipsec_crypto_said_mask;
>  		break;
>  	case IAVF_RXDID_COMMS_OVS_1:
> +	case IAVF_RXDID_LEGACY_0:
> +	case IAVF_RXDID_LEGACY_1:
>  		break;
>  	default:
>  		/* update this according to the RXDID for FLEX_DESC_NONE
> */
> --
> 2.27.0

Acked-by: Beilei Xing <beilei.xing@intel.com>
  
Qi Zhang March 24, 2022, 8:52 a.m. UTC | #2
> -----Original Message-----
> From: Xing, Beilei <beilei.xing@intel.com>
> Sent: Wednesday, March 16, 2022 4:12 PM
> To: Yang, SteveX <stevex.yang@intel.com>; dev@dpdk.org
> Cc: Wu, Jingjing <jingjing.wu@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; stable@dpdk.org
> Subject: RE: [PATCH v1] net/iavf: fix select wrong scan hw ring by rxdid
> 
> 
> 
> > -----Original Message-----
> > From: Yang, SteveX <stevex.yang@intel.com>
> > Sent: Monday, March 14, 2022 5:32 PM
> > To: dev@dpdk.org
> > Cc: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Yang,
> > SteveX <stevex.yang@intel.com>; stable@dpdk.org
> > Subject: [PATCH v1] net/iavf: fix select wrong scan hw ring by rxdid
> >
> > When setup RX queue, the rxdid would be changed if it's
> > "IAVF_RXDID_LEGACY_0/1", that caused the scan hw ring used the wrong
> > function 'iavf_rx_scan_hw_ring_flex_rxd()'.
> >
> > Ignore the rxdid changed when equals "IAVF_RXDID_LEGACY_0/1".
> >
> > Fixes: 0ed16e01313e ("net/iavf: fix function pointer in
> > multi-process")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Steve Yang <stevex.yang@intel.com>
> > ---
> >  drivers/net/iavf/iavf_rxtx.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/net/iavf/iavf_rxtx.c
> > b/drivers/net/iavf/iavf_rxtx.c index 16e8d021f9..3b16609f7d 100644
> > --- a/drivers/net/iavf/iavf_rxtx.c
> > +++ b/drivers/net/iavf/iavf_rxtx.c
> > @@ -477,6 +477,8 @@ iavf_rxd_to_pkt_fields_by_comms_aux_v2(struct
> > iavf_rx_queue *rxq,
> >
> >  static const
> >  iavf_rxd_to_pkt_fields_t rxd_to_pkt_fields_ops[IAVF_RXDID_LAST + 1] =
> > {
> > +	[IAVF_RXDID_LEGACY_0] = iavf_rxd_to_pkt_fields_by_comms_ovs,
> > +	[IAVF_RXDID_LEGACY_1] = iavf_rxd_to_pkt_fields_by_comms_ovs,
> >  	[IAVF_RXDID_COMMS_AUX_VLAN] =
> > iavf_rxd_to_pkt_fields_by_comms_aux_v1,
> >  	[IAVF_RXDID_COMMS_AUX_IPV4] =
> > iavf_rxd_to_pkt_fields_by_comms_aux_v1,
> >  	[IAVF_RXDID_COMMS_AUX_IPV6] =
> > iavf_rxd_to_pkt_fields_by_comms_aux_v1,
> > @@ -521,6 +523,8 @@ iavf_select_rxd_to_pkt_fields_handler(struct
> > iavf_rx_queue *rxq, uint32_t rxdid)
> >
> > 	rte_pmd_ifd_dynflag_proto_xtr_ipsec_crypto_said_mask;
> >  		break;
> >  	case IAVF_RXDID_COMMS_OVS_1:
> > +	case IAVF_RXDID_LEGACY_0:
> > +	case IAVF_RXDID_LEGACY_1:
> >  		break;
> >  	default:
> >  		/* update this according to the RXDID for FLEX_DESC_NONE
> */
> > --
> > 2.27.0
> 
> Acked-by: Beilei Xing <beilei.xing@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
  
Kathleen Capella March 24, 2022, 9:32 p.m. UTC | #3
Tested okay on N1SDP and on Intel(R) Xeon(R) Platinum 8268 CPU @ 2.90GHz

Tested-by: Kathleen Capella <kathleen.capella@arm.com>

> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang@intel.com>
> Sent: Thursday, March 24, 2022 3:52 AM
> To: Xing, Beilei <beilei.xing@intel.com>; Yang, SteveX
> <stevex.yang@intel.com>; dev@dpdk.org
> Cc: Wu, Jingjing <jingjing.wu@intel.com>; stable@dpdk.org
> Subject: RE: [PATCH v1] net/iavf: fix select wrong scan hw ring by rxdid
>
>
>
> > -----Original Message-----
> > From: Xing, Beilei <beilei.xing@intel.com>
> > Sent: Wednesday, March 16, 2022 4:12 PM
> > To: Yang, SteveX <stevex.yang@intel.com>; dev@dpdk.org
> > Cc: Wu, Jingjing <jingjing.wu@intel.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; stable@dpdk.org
> > Subject: RE: [PATCH v1] net/iavf: fix select wrong scan hw ring by
> > rxdid
> >
> >
> >
> > > -----Original Message-----
> > > From: Yang, SteveX <stevex.yang@intel.com>
> > > Sent: Monday, March 14, 2022 5:32 PM
> > > To: dev@dpdk.org
> > > Cc: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei
> > > <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Yang,
> > > SteveX <stevex.yang@intel.com>; stable@dpdk.org
> > > Subject: [PATCH v1] net/iavf: fix select wrong scan hw ring by rxdid
> > >
> > > When setup RX queue, the rxdid would be changed if it's
> > > "IAVF_RXDID_LEGACY_0/1", that caused the scan hw ring used the wrong
> > > function 'iavf_rx_scan_hw_ring_flex_rxd()'.
> > >
> > > Ignore the rxdid changed when equals "IAVF_RXDID_LEGACY_0/1".
> > >
> > > Fixes: 0ed16e01313e ("net/iavf: fix function pointer in
> > > multi-process")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Steve Yang <stevex.yang@intel.com>
> > > ---
> > >  drivers/net/iavf/iavf_rxtx.c | 4 ++++
> > >  1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/net/iavf/iavf_rxtx.c
> > > b/drivers/net/iavf/iavf_rxtx.c index 16e8d021f9..3b16609f7d 100644
> > > --- a/drivers/net/iavf/iavf_rxtx.c
> > > +++ b/drivers/net/iavf/iavf_rxtx.c
> > > @@ -477,6 +477,8 @@ iavf_rxd_to_pkt_fields_by_comms_aux_v2(struct
> > > iavf_rx_queue *rxq,
> > >
> > >  static const
> > >  iavf_rxd_to_pkt_fields_t rxd_to_pkt_fields_ops[IAVF_RXDID_LAST + 1]
> > > = {
> > > + [IAVF_RXDID_LEGACY_0] = iavf_rxd_to_pkt_fields_by_comms_ovs,
> > > + [IAVF_RXDID_LEGACY_1] = iavf_rxd_to_pkt_fields_by_comms_ovs,
> > >   [IAVF_RXDID_COMMS_AUX_VLAN] =
> > > iavf_rxd_to_pkt_fields_by_comms_aux_v1,
> > >   [IAVF_RXDID_COMMS_AUX_IPV4] =
> > > iavf_rxd_to_pkt_fields_by_comms_aux_v1,
> > >   [IAVF_RXDID_COMMS_AUX_IPV6] =
> > > iavf_rxd_to_pkt_fields_by_comms_aux_v1,
> > > @@ -521,6 +523,8 @@ iavf_select_rxd_to_pkt_fields_handler(struct
> > > iavf_rx_queue *rxq, uint32_t rxdid)
> > >
> > >   rte_pmd_ifd_dynflag_proto_xtr_ipsec_crypto_said_mask;
> > >           break;
> > >   case IAVF_RXDID_COMMS_OVS_1:
> > > + case IAVF_RXDID_LEGACY_0:
> > > + case IAVF_RXDID_LEGACY_1:
> > >           break;
> > >   default:
> > >           /* update this according to the RXDID for FLEX_DESC_NONE
> > */
> > > --
> > > 2.27.0
> >
> > Acked-by: Beilei Xing <beilei.xing@intel.com>
>
> Applied to dpdk-next-net-intel.
>
> Thanks
> Qi

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
  

Patch

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 16e8d021f9..3b16609f7d 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -477,6 +477,8 @@  iavf_rxd_to_pkt_fields_by_comms_aux_v2(struct iavf_rx_queue *rxq,
 
 static const
 iavf_rxd_to_pkt_fields_t rxd_to_pkt_fields_ops[IAVF_RXDID_LAST + 1] = {
+	[IAVF_RXDID_LEGACY_0] = iavf_rxd_to_pkt_fields_by_comms_ovs,
+	[IAVF_RXDID_LEGACY_1] = iavf_rxd_to_pkt_fields_by_comms_ovs,
 	[IAVF_RXDID_COMMS_AUX_VLAN] = iavf_rxd_to_pkt_fields_by_comms_aux_v1,
 	[IAVF_RXDID_COMMS_AUX_IPV4] = iavf_rxd_to_pkt_fields_by_comms_aux_v1,
 	[IAVF_RXDID_COMMS_AUX_IPV6] = iavf_rxd_to_pkt_fields_by_comms_aux_v1,
@@ -521,6 +523,8 @@  iavf_select_rxd_to_pkt_fields_handler(struct iavf_rx_queue *rxq, uint32_t rxdid)
 			rte_pmd_ifd_dynflag_proto_xtr_ipsec_crypto_said_mask;
 		break;
 	case IAVF_RXDID_COMMS_OVS_1:
+	case IAVF_RXDID_LEGACY_0:
+	case IAVF_RXDID_LEGACY_1:
 		break;
 	default:
 		/* update this according to the RXDID for FLEX_DESC_NONE */