> -----Original Message----- > From: Julien Meunier <julien.meun...@nokia.com> > Sent: Tuesday, September 28, 2021 16:13 > To: dev@dpdk.org > Cc: sta...@dpdk.org; Richardson, Bruce <bruce.richard...@intel.com>; Wang, > Haiyue > <haiyue.w...@intel.com> > Subject: [PATCH v2] net/ixgbe: fix RxQ/TxQ release > > On the vector implementation, during the tear-down, the mbufs not > drained in the RxQ and TxQ are freed based on an algorithm which > supposed that the number of descriptors is a power of 2 (max_desc). > Based on this hypothesis, this algorithm uses a bitmask in order to > detect an index overflow during the iteration, and to restart the loop > from 0. > > However, there is no such power of 2 requirement in the ixgbe for the > number of descriptors in the RxQ / TxQ. The only requirement is to have > a number correctly aligned. > > If a user requested to configure a number of descriptors which is not a > power of 2, as a consequence, during the tear-down, it was possible to > be in an infinite loop, and to never reach the exit loop condition. > > By removing the bitmask and changing the loop method, we can avoid this > issue, and allow the user to configure a RxQ / TxQ which is not a power > of 2. > > Fixes: c95584dc2b18 ("ixgbe: new vectorized functions for Rx/Tx") > Cc: bruce.richard...@intel.com > Cc: sta...@dpdk.org > > Signed-off-by: Julien Meunier <julien.meun...@nokia.com> > --- > drivers/net/ixgbe/ixgbe_rxtx_vec_common.h | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) >
Acked-by: Haiyue Wang <haiyue.w...@intel.com> > -- > 2.17.1