net/mlx5: DR, Skip rehash for tables with byte mask zero
authorAlex Vesker <valex@mellanox.com>
Thu, 31 Oct 2019 13:24:59 +0000 (15:24 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Wed, 20 Nov 2019 20:33:05 +0000 (12:33 -0800)
The byte mask fields affect on the hash index distribution,
when the byte mask is zero, the hash calculation will always
be equal to the same index.

To avoid unneeded rehash of hash tables mark the table to skip
rehash.

This is needed by the next patch which will limit table rehash
to reduce memory consumption.

Fixes: 41d07074154c ("net/mlx5: DR, Expose steering rule functionality")
Signed-off-by: Alex Vesker <valex@mellanox.com>
Reviewed-by: Erez Shitrit <erezsh@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste.c

index 4efe1b0..8068076 100644 (file)
@@ -671,7 +671,7 @@ static void dr_ste_set_ctrl(struct mlx5dr_ste_htbl *htbl)
 
        htbl->ctrl.may_grow = true;
 
-       if (htbl->chunk_size == DR_CHUNK_SIZE_MAX - 1)
+       if (htbl->chunk_size == DR_CHUNK_SIZE_MAX - 1 || !htbl->byte_mask)
                htbl->ctrl.may_grow = false;
 
        /* Threshold is 50%, one is added to table of size 1 */