Re: [PATCH net-next V2 06/10] net/mlx5e: Prepare for using different CQ doorbells

Simon Horman
2025-09-17T12:54:49Z

On Tue, Sep 16, 2025 at 05:11:40PM +0300, Tariq Toukan wrote:
> From: Cosmin Ratiu <cratiu@nvidia.com>
>
> Completion queues (CQs) in mlx5 use the same global doorbell, which may
> become contended when accessed concurrently from many cores.
>
> This patch prepares the CQ management code for supporting different
> doorbells per CQ. This will be used in downstream patches to allow
> separate doorbells to be used by channels CQs.
>
> The main change is moving the 'uar' pointer from struct mlx5_core_cq to
> struct mlx5e_cq, as the uar page to be used is better off stored
> directly there. Other users of mlx5_core_cq also store the UAR to be
> used separately and therefore the pointer being removed is dead weight
> for them. As evidence, in this patch there are two users which set the
> mcq.uar pointer but didn't use it, Software Steering and old Innova CQ
> creation code. Instead, they rang the doorbell directly from another
> pointer.
>
> The 'uar' pointer added to struct mlx5e_cq remains in a hot cacheline
> (as before), because it may get accessed for each packet.
>
> Signed-off-by: Cosmin Ratiu <cratiu@nvidia.com>
> Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>

Reviewed-by: Simon Horman <horms@kernel.org>