Hi Meset: > -----Original Message----- > From: Ergin, Mesut A > Sent: Friday, May 24, 2019 2:26 AM > To: Zhang, Qi Z <qi.z.zh...@intel.com>; Xing, Beilei <beilei.x...@intel.com> > Cc: dev@dpdk.org > Subject: RE: [PATCH 3/3] net/i40e: fix inadvertent override of vector RX > allowance > > Hi Qi, > > > -----Original Message----- > > From: Zhang, Qi Z > > Sent: Wednesday, May 22, 2019 5:42 AM > > To: Ergin, Mesut A <mesut.a.er...@intel.com>; Xing, Beilei > > <beilei.x...@intel.com> > > Cc: dev@dpdk.org > > Subject: RE: [PATCH 3/3] net/i40e: fix inadvertent override of vector > > RX allowance > > > > Hi Mesut: > > > > > -----Original Message----- > > > From: Ergin, Mesut A > > > Sent: Thursday, May 16, 2019 12:28 PM > > > To: Xing, Beilei <beilei.x...@intel.com>; Zhang, Qi Z > > > <qi.z.zh...@intel.com> > > > Cc: dev@dpdk.org; Ergin, Mesut A <mesut.a.er...@intel.com> > > > Subject: [PATCH 3/3] net/i40e: fix inadvertent override of vector RX > > > allowance > > > > > > When i40e_rx_vec_dev_conf_condition_check_default() determines > > > whether vector receive functions would be allowed during > > > initialization phase, it should honor previously recorded > > > disallowance during configuration phase, and not override simply because > it is for the first queue. > > > > > > Signed-off-by: Mesut Ali Ergin <mesut.a.er...@intel.com> > > > --- > > > drivers/net/i40e/i40e_rxtx_vec_common.h | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h > > > b/drivers/net/i40e/i40e_rxtx_vec_common.h > > > index 0e6ffa0..f30cab4 100644 > > > --- a/drivers/net/i40e/i40e_rxtx_vec_common.h > > > +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h > > > @@ -212,6 +212,10 @@ > > > i40e_rx_vec_dev_conf_condition_check_default(struct rte_eth_dev *dev) > > > if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_EXTEND) > > > return -1; > > > > > > + /* Should not override if vector was already disallowed */ > > > > It is possible a device be reconfigured between dev_stop/dev_start, > > vector mode may fit for the new configure, so the old rx_vec_allowd > > should be ignored, > > > > i40e_dev_configure would reset rx_vec_allowed already. Am I missing another > reconfiguration path?
Look at below scenario, 1. dev_configure (rx_vec_allowed is reset to true) 2. queue_setup (the ring size is not power of 2) 3. dev_start (vector will not be selected due to ring size, rx_vec_allowed set to false) 4. dev_stop 5. queue_setup (this time, with power of 2 ring size) 6. dev_start (assume vector path should be selected, and rx_vec_allowed should be overwrite to true, but your patch will prevent it) Also, I may not get the point of the gap you observed, would you share more detail scenario? Regards Qi > > Mesut > > > Regards > > Qi > > > > > + if (!ad->rx_vec_allowed) > > > + return -1; > > > + > > > /** > > > * Vector mode is allowed only when number of Rx queue > > > * descriptor is power of 2. > > > -- > > > 2.7.4