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

Reply via email to