git: f521f9c17825 - stable/14 - mlx5ib: Fix RSS Toeplitz setup to be aligned with the HW specification

From: Ka Ho Ng <khng_at_FreeBSD.org>
Date: Sat, 04 Nov 2023 19:22:57 UTC
The branch stable/14 has been updated by khng:

URL: https://cgit.FreeBSD.org/src/commit/?id=f521f9c178256bac8621eba59b51e5b82d84100f

commit f521f9c178256bac8621eba59b51e5b82d84100f
Author:     Yishai Hadas <yishaih@mellanox.com>
AuthorDate: 2023-10-28 20:55:47 +0000
Commit:     Ka Ho Ng <khng@FreeBSD.org>
CommitDate: 2023-11-04 19:22:18 +0000

    mlx5ib: Fix RSS Toeplitz setup to be aligned with the HW specification
    
    The specification for the Toeplitz function doesn't require to set the key
    explicitly to be symmetric. In case a symmetric functionality is required
    a symmetric key can be simply used.
    
    Wrongly forcing the algorithm to symmetric causes the wrong packet
    distribution and a performance degradation.
    
    Link: https://lore.kernel.org/r/20190723065733.4899-7-leon@kernel.org
    Fixes: 28d6137008b2 ("IB/mlx5: Add RSS QP support")
    Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
    Reviewed-by: Alex Vainman <alexv@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    
    [khng: cherry-picked from Linux
    b7165bd0d6cbb93732559be6ea8774653b204480]
    
    Sponsored by:   Juniper Networks, Inc.
    MFC after:      7 days
    Reviewed by:    kib, zlei
    Differential Revision:  https://reviews.freebsd.org/D42178
    
    (cherry picked from commit 813d981e1e78daffde4b2a05df35d054fcb4343f)
---
 sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c b/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
index 08e73a6dedd8..a504f1ff1788 100644
--- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
+++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
@@ -1449,7 +1449,6 @@ static int create_rss_raw_qp_tir(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
 		}
 
 		MLX5_SET(tirc, tirc, rx_hash_fn, MLX5_RX_HASH_FUNC_TOEPLITZ);
-		MLX5_SET(tirc, tirc, rx_hash_symmetric, 1);
 		memcpy(rss_key, ucmd.rx_hash_key, len);
 		break;
 	}