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 696e45e..a87d017 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 bc9e9ae..99e0a05 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 1f4f62c..14892e7 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 {