Re: [PATCH net-next V2 06/10] net/mlx5e: Prepare for using different CQ doorbells
From: Simon Horman
Date: Wed Sep 17 2025 - 08:59:14 EST
On Tue, Sep 16, 2025 at 05:11:40PM +0300, Tariq Toukan wrote:
> From: Cosmin Ratiu <cratiu@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>
> Reviewed-by: Dragos Tatulea <dtatulea@xxxxxxxxxx>
> Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx>
Reviewed-by: Simon Horman <horms@xxxxxxxxxx>