]> git.itanic.dy.fi Git - linux-stable/commitdiff
net/mlx5: DR, Lower sync threshold for ICM hot memory
authorYevgeny Kliteynik <kliteyn@nvidia.com>
Thu, 26 May 2022 07:27:12 +0000 (10:27 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 27 Oct 2022 14:50:40 +0000 (15:50 +0100)
Instead of hiding the math in the code, define a value that sets the
fraction of allowed hot memory of ICM pool.
Set the threshold for sync of ICM hot chunks to 1/4 of the pool
instead of 1/2 of the pool. Although we will have more syncs, each
sync will be shorter and will help with insertion rate stability.

Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: Alex Vesker <valex@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c

index ca91a0211a5cb7ed3edeb9960daac8cc641033c9..286b7ce6bc0b26beb38b914b9e655b642b9ec14b 100644 (file)
@@ -4,6 +4,7 @@
 #include "dr_types.h"
 
 #define DR_ICM_MODIFY_HDR_ALIGN_BASE 64
+#define DR_ICM_POOL_HOT_MEMORY_FRACTION 4
 
 struct mlx5dr_icm_pool {
        enum mlx5dr_icm_type icm_type;
@@ -337,10 +338,11 @@ static bool dr_icm_pool_is_sync_required(struct mlx5dr_icm_pool *pool)
 {
        int allow_hot_size;
 
-       /* sync when hot memory reaches half of the pool size */
+       /* sync when hot memory reaches a certain fraction of the pool size */
        allow_hot_size =
                mlx5dr_icm_pool_chunk_size_to_byte(pool->max_log_chunk_sz,
-                                                  pool->icm_type) / 2;
+                                                  pool->icm_type) /
+               DR_ICM_POOL_HOT_MEMORY_FRACTION;
 
        return pool->hot_memory_size > allow_hot_size;
 }