Hi, > -----Original Message----- > From: Dmitry Kozlyuk <dkozl...@nvidia.com> > Sent: Tuesday, November 16, 2021 9:39 AM > To: dev@dpdk.org > Cc: Matan Azrad <ma...@nvidia.com>; Ori Kam <or...@nvidia.com>; Raslan > Darawsheh <rasl...@nvidia.com>; Xueming(Steven) Li > <xuemi...@nvidia.com>; Slava Ovsiienko <viachesl...@nvidia.com> > Subject: [PATCH] net/mlx5: fix keeping indirect RSS non-isolated mode > > When a port starts in non-isolated mode, > an internal indirect RSS is created that includes all configured queues > and a flow rule is created that references this indirect RSS. > If before switching to non-isolated mode an indirect RSS was created > that includes the same set of queues, it would be reused at this point. > However, because the port had been stopped (or not yet started), > the TIR for this indirect RSS had been destroyed (or not yet created). > The flow rule could not be created and the port start failed. > > Creation of TIRs is moved before configuring non-isolated mode flows, > but it is not enough because of the following issue. > > Commit 0cedf34da78f ("net/mlx5: move Rx queue reference count") > changed mlx5_rxq_get() not to increment RxQ control structure > reference count, mlx5_rxq_ref() was introduced for this purpose. > mlx5_ind_table_obj_attach() was not updated to use the new function, > so when the port was stopped, the control structure reference count > of an RxQ used in RSS reached zero and the structure was destroyed. > > Use mlx5_rxq_ref() to keep RxQ control structure > needed for indirect RSS persistence across port restart. > > Fixes: ec4e11d41d12 ("net/mlx5: preserve indirect actions on restart") > Fixes: 0cedf34da78f ("net/mlx5: move Rx queue reference count") > Cc: xuemi...@nvidia.com > > Signed-off-by: Dmitry Kozlyuk <dkozl...@nvidia.com> > Acked-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh