Hi Ferruh,

Thanks for your advice. I'll update the commit log in V2.
If the following changes are appropriate?

net/ice: fix txq vector path selection

If Tx vector mode is disabled, the txq vector mode should be disabled too.
This patch adds checking of Tx vector mode before enabling txq vector mode.  

> -----Original Message-----
> From: Yigit, Ferruh <ferruh.yi...@intel.com>
> Sent: Wednesday, April 28, 2021 6:03 PM
> To: Zhang, AlvinX <alvinx.zh...@intel.com>; Zhang, Qi Z
> <qi.z.zh...@intel.com>; Yang, Qiming <qiming.y...@intel.com>
> Cc: dev@dpdk.org; sta...@dpdk.org
> Subject: Re: [dpdk-stable] [DPDK] net/ice: fix txq mbuf release mode
> 
> On 4/25/2021 10:26 AM, Alvin Zhang wrote:
> > In some cases, it seems that the txq mbuf vector release mode is
> > enabled first, and then it is confirmed that the conditions for using
> > the vector mode are not met.
> >
> 
> Hi Alvin,
> 
> As far as I understand the impact is failure in the Tx vector patch 
> selection, can
> you please update the patch title to reflect it?
> 
> Also can you please describe a little more what is "txq mbuf vector release
> mode" and what is the root cause for it to be enabled first?
> 
> > This patch puts the txq vector mode startup process after the
> > condition detection.
> 
> What is "txq vector mode startup process"?
> 
> >
> > Fixes: 28f9002ab67f ("net/ice: add Tx AVX512 offload path")
> > Cc: sta...@dpdk.org
> >
> > Signed-off-by: Alvin Zhang <alvinx.zh...@intel.com>
> > ---
> >  drivers/net/ice/ice_rxtx.c | 16 +++++++++-------
> >  1 file changed, 9 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
> > index 92fbbc1..49abcb2 100644
> > --- a/drivers/net/ice/ice_rxtx.c
> > +++ b/drivers/net/ice/ice_rxtx.c
> > @@ -3303,13 +3303,6 @@
> >             if (tx_check_ret >= 0 &&
> >                 rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128) {
> >                     ad->tx_vec_allowed = true;
> > -                   for (i = 0; i < dev->data->nb_tx_queues; i++) {
> > -                           txq = dev->data->tx_queues[i];
> > -                           if (txq && ice_txq_vec_setup(txq)) {
> > -                                   ad->tx_vec_allowed = false;
> > -                                   break;
> > -                           }
> > -                   }
> >
> >                     if (rte_vect_get_max_simd_bitwidth() >= 
> > RTE_VECT_SIMD_512
> &&
> >                     rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX512F) == 1 &&
> @@ -3329,6
> > +3322,15 @@
> >                     if (!use_avx512 && tx_check_ret ==
> ICE_VECTOR_OFFLOAD_PATH)
> >                             ad->tx_vec_allowed = false;
> >
> > +                   if (ad->tx_vec_allowed) {
> > +                           for (i = 0; i < dev->data->nb_tx_queues; i++) {
> > +                                   txq = dev->data->tx_queues[i];
> > +                                   if (txq && ice_txq_vec_setup(txq)) {
> > +                                           ad->tx_vec_allowed = false;
> > +                                           break;
> > +                                   }
> > +                           }
> > +                   }
> >             } else {
> >                     ad->tx_vec_allowed = false;
> >             }
> >

Thanks,
Alvin Zhang

Reply via email to