git: cffcdfbf4938 - stable/13 - 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:25:08 UTC
The branch stable/13 has been updated by khng:

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

commit cffcdfbf4938083c1977d645ebe78c636ab9a43f
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:24:36 +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 7d57db8f4581..33021d1c6dd8 100644
--- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
+++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
@@ -1426,7 +1426,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;
 	}