Skip to content

Commit 7e3fce8

Browse files
Emeel HakimSaeed Mahameed
authored andcommitted
net/mlx5e: Overcome slow response for first macsec ASO WQE
First ASO WQE poll causes a cache miss in hardware hence the resut is delayed. It causes to the situation where such WQE is polled earlier than it is needed. Add logic to retry ASO CQ polling operation. Fixes: 739cfa3 ("net/mlx5: Make ASO poll CQ usable in atomic context")  Signed-off-by: Emeel Hakim <ehakim@nvidia.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Reviewed-by: Raed Salem <raeds@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
1 parent 6e9d51b commit 7e3fce8

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

  • drivers/net/ethernet/mellanox/mlx5/core/en_accel

drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1412,6 +1412,7 @@ static int macsec_aso_query(struct mlx5_core_dev *mdev, struct mlx5e_macsec *mac
14121412
struct mlx5e_macsec_aso *aso;
14131413
struct mlx5_aso_wqe *aso_wqe;
14141414
struct mlx5_aso *maso;
1415+
unsigned long expires;
14151416
int err;
14161417

14171418
aso = &macsec->aso;
@@ -1425,7 +1426,13 @@ static int macsec_aso_query(struct mlx5_core_dev *mdev, struct mlx5e_macsec *mac
14251426
macsec_aso_build_wqe_ctrl_seg(aso, &aso_wqe->aso_ctrl, NULL);
14261427

14271428
mlx5_aso_post_wqe(maso, false, &aso_wqe->ctrl);
1428-
err = mlx5_aso_poll_cq(maso, false);
1429+
expires = jiffies + msecs_to_jiffies(10);
1430+
do {
1431+
err = mlx5_aso_poll_cq(maso, false);
1432+
if (err)
1433+
usleep_range(2, 10);
1434+
} while (err && time_is_after_jiffies(expires));
1435+
14291436
if (err)
14301437
goto err_out;
14311438

0 commit comments

Comments
 (0)