net/mlx5: Expose timeout for sync reset unload stage
authorMoshe Shemesh <moshe@nvidia.com>
Wed, 17 May 2023 08:53:50 +0000 (11:53 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 16 Jun 2023 19:02:06 +0000 (12:02 -0700)
Expose new timoueout in Default Timeouts Register to be used on sync
reset flow running on smart NIC. In this flow the driver should know how
much time to wait from getting unload request till firmware will ask the
PF to continue to next stage of the flow.

Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h
include/linux/mlx5/mlx5_ifc.h

index 696e45e2bd06d476348962227ee5af627ebc0271..a87d0178ebf3761d34e54a9c641dfd3464dafbd4 100644 (file)
@@ -24,7 +24,8 @@ static const u32 tout_def_sw_val[MAX_TIMEOUT_TYPES] = {
        [MLX5_TO_TEARDOWN_MS] = 3000,
        [MLX5_TO_FSM_REACTIVATE_MS] = 5000,
        [MLX5_TO_RECLAIM_PAGES_MS] = 5000,
-       [MLX5_TO_RECLAIM_VFS_PAGES_MS] = 120000
+       [MLX5_TO_RECLAIM_VFS_PAGES_MS] = 120000,
+       [MLX5_TO_RESET_UNLOAD_MS] = 300000
 };
 
 static void tout_set(struct mlx5_core_dev *dev, u64 val, enum mlx5_timeouts_types type)
@@ -146,6 +147,7 @@ static int tout_query_dtor(struct mlx5_core_dev *dev)
        MLX5_TIMEOUT_FILL(fsm_reactivate_to, out, dev, MLX5_TO_FSM_REACTIVATE_MS, 0);
        MLX5_TIMEOUT_FILL(reclaim_pages_to, out, dev, MLX5_TO_RECLAIM_PAGES_MS, 0);
        MLX5_TIMEOUT_FILL(reclaim_vfs_pages_to, out, dev, MLX5_TO_RECLAIM_VFS_PAGES_MS, 0);
+       MLX5_TIMEOUT_FILL(reset_unload_to, out, dev, MLX5_TO_RESET_UNLOAD_MS, 0);
 
        return 0;
 }
index bc9e9aeda8478149f29cd8da1c9b311e37574d29..99e0a05526fe4269ef6ff9002992f3af5b89a19f 100644 (file)
@@ -26,6 +26,7 @@ enum mlx5_timeouts_types {
        MLX5_TO_FSM_REACTIVATE_MS,
        MLX5_TO_RECLAIM_PAGES_MS,
        MLX5_TO_RECLAIM_VFS_PAGES_MS,
+       MLX5_TO_RESET_UNLOAD_MS,
 
        MAX_TIMEOUT_TYPES
 };
index 1f4f62cb9f344ed15f814a282f00c6b537ceee79..14892e7958082f9c402b46f564619b3498ce7abb 100644 (file)
@@ -3117,7 +3117,9 @@ struct mlx5_ifc_dtor_reg_bits {
 
        struct mlx5_ifc_default_timeout_bits reclaim_vfs_pages_to;
 
-       u8         reserved_at_1c0[0x40];
+       struct mlx5_ifc_default_timeout_bits reset_unload_to;
+
+       u8         reserved_at_1c0[0x20];
 };
 
 enum {