Patch "RDMA/hns: Modify the value of long message loopback slice" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    RDMA/hns: Modify the value of long message loopback slice

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     rdma-hns-modify-the-value-of-long-message-loopback-s.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9470b2292e75959406f816bba22116e0c91a4054
Author: Yangyang Li <liyangyang20@xxxxxxxxxx>
Date:   Fri May 12 17:22:45 2023 +0800

    RDMA/hns: Modify the value of long message loopback slice
    
    [ Upstream commit 56518a603fd2bf74762d176ac980572db84a3e14 ]
    
    Long message loopback slice is used for achieving traffic balance between
    QPs. It prevents the problem that QPs with large traffic occupying the
    hardware pipeline for a long time and QPs with small traffic cannot be
    scheduled.
    
    Currently, its maximum value is set to 16K, which means only after a QP
    sends 16K will the second QP be scheduled. This value is too large, which
    will lead to unbalanced traffic scheduling, and thus it needs to be
    modified.
    
    The setting range of the long message loopback slice is modified to be
    from 1024 (the lower limit supported by hardware) to mtu. Actual testing
    shows that this value can significantly reduce error in hardware traffic
    scheduling.
    
    This solution is compatible with both HIP08 and HIP09. The modified
    lp_pktn_ini has a maximum value of 2 (when mtu is 256), so the range
    checking code for lp_pktn_ini is no longer necessary and needs to be
    deleted.
    
    Fixes: 0e60778efb07 ("RDMA/hns: Modify the value of MAX_LP_MSG_LEN to meet hardware compatibility")
    Link: https://lore.kernel.org/r/20230512092245.344442-4-huangjunxian6@xxxxxxxxxxxxx
    Signed-off-by: Yangyang Li <liyangyang20@xxxxxxxxxx>
    Signed-off-by: Junxian Huang <huangjunxian6@xxxxxxxxxxxxx>
    Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
index 79d92b7899849..8c02b51c8bffc 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
@@ -4393,11 +4393,9 @@ static int modify_qp_init_to_rtr(struct ib_qp *ibqp,
 	mtu = ib_mtu_enum_to_int(ib_mtu);
 	if (WARN_ON(mtu <= 0))
 		return -EINVAL;
-#define MAX_LP_MSG_LEN 16384
-	/* MTU * (2 ^ LP_PKTN_INI) shouldn't be bigger than 16KB */
-	lp_pktn_ini = ilog2(MAX_LP_MSG_LEN / mtu);
-	if (WARN_ON(lp_pktn_ini >= 0xF))
-		return -EINVAL;
+#define MIN_LP_MSG_LEN 1024
+	/* mtu * (2 ^ lp_pktn_ini) should be in the range of 1024 to mtu */
+	lp_pktn_ini = ilog2(max(mtu, MIN_LP_MSG_LEN) / mtu);
 
 	if (attr_mask & IB_QP_PATH_MTU) {
 		hr_reg_write(context, QPC_MTU, ib_mtu);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux