From patchwork Fri Aug 4 01:27:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junxian Huang X-Patchwork-Id: 130905 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1523066vqx; Thu, 3 Aug 2023 19:02:00 -0700 (PDT) X-Google-Smtp-Source: APBJJlHxIEcVnEo5NAE/FrLwT8vqD7iqJhF4ZNry2JFpHZL6C/IovlE9bCoWOE6yVAksfJhB/SnZ X-Received: by 2002:a92:d944:0:b0:349:3c78:fd14 with SMTP id l4-20020a92d944000000b003493c78fd14mr5948490ilq.1.1691114520022; Thu, 03 Aug 2023 19:02:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691114519; cv=none; d=google.com; s=arc-20160816; b=z+r+GX+nGIa2Cb5ttlulMBvlpbdmhGpevO8J8Js09rHs+LVBAkidFGzt3f3NGR/MEv fPTnJjayir/vBuredhif2jTK1/jROpHG6Mz96VvQ6d+1wfwQNXFw9HRX7PdsAaWWgKIk FGQjlDOuauc2S79wqsRVmnk33R7AaHMG6rur8WsBlFbYGqE9eJUS8FNm+0mUfjI1HS75 OABUOE5nzc9AB+zSS3atPGeGH/CI5oTiokdCKR4wNrvA9OxcO4uufSxViSOSU/bvIyjB 4M5qSBZwDhxSCtXo3vHPyoK8253PxryMrIfRnSL8zmLGyC822SlPZVaubmoQREYU3GHy 3I3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=SObk4UyPh0M7v2ccwf+Ptosqb7xs59Bdm/YVL+OMcdY=; fh=3H3oLXANh5v13tjHxrBYuXblpWbB01kHKe+fQJ1oJi8=; b=dPOjvYUAf3En4RDHh7tKbPjC/Is/cmvCaxcLUajl5aeVfzs67E2EO/o3FEI4DGcvaN ecUkEle4auphFzQPXAZUWYmubwov8FezpMCC7uraKfKrVCd7UYOIzNgcdGMTAIU8m8rr MMUYHgs87JD65AQHWZ2Xs6OskrAr+Rh4rkuFYcSmG7kdCsoO5VffZNwMwDdPNt/eMtVG Lthg/ygv4X7LlGEajKFzRiWMFofaSeyi3djEEycIug666jQBLN9Y95xbBSvx40cQ9umH X2PZ7p82EoeyWAYydHOkNX+dEczr1M3r/vb6xB5lkrdoNLldcU+73s/lsc2iKX4FI/hE F09w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oj10-20020a17090b4d8a00b00263d1729212si4513311pjb.85.2023.08.03.19.01.46; Thu, 03 Aug 2023 19:01:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232226AbjHDB36 (ORCPT + 99 others); Thu, 3 Aug 2023 21:29:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230484AbjHDB3x (ORCPT ); Thu, 3 Aug 2023 21:29:53 -0400 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F4EA423E; Thu, 3 Aug 2023 18:29:52 -0700 (PDT) Received: from kwepemi500006.china.huawei.com (unknown [172.30.72.56]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4RH7Np50jqzJrGH; Fri, 4 Aug 2023 09:27:06 +0800 (CST) Received: from localhost.localdomain (10.67.165.2) by kwepemi500006.china.huawei.com (7.221.188.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 09:29:50 +0800 From: Junxian Huang To: , CC: , , , Subject: [PATCH for-rc 1/4] RDMA/hns: Fix port active speed Date: Fri, 4 Aug 2023 09:27:08 +0800 Message-ID: <20230804012711.808069-2-huangjunxian6@hisilicon.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230804012711.808069-1-huangjunxian6@hisilicon.com> References: <20230804012711.808069-1-huangjunxian6@hisilicon.com> MIME-Version: 1.0 X-Originating-IP: [10.67.165.2] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemi500006.china.huawei.com (7.221.188.68) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773262098709951565 X-GMAIL-MSGID: 1773262098709951565 From: Chengchang Tang HW supports a variety of different speed, but the current speed is fixed. The real speed should be querried from ethernet. Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver") Signed-off-by: Chengchang Tang Signed-off-by: Junxian Huang --- drivers/infiniband/hw/hns/hns_roce_main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c index 485e110ca433..9141eadf33d2 100644 --- a/drivers/infiniband/hw/hns/hns_roce_main.c +++ b/drivers/infiniband/hw/hns/hns_roce_main.c @@ -219,6 +219,7 @@ static int hns_roce_query_port(struct ib_device *ib_dev, u32 port_num, unsigned long flags; enum ib_mtu mtu; u32 port; + int ret; port = port_num - 1; @@ -231,8 +232,10 @@ static int hns_roce_query_port(struct ib_device *ib_dev, u32 port_num, IB_PORT_BOOT_MGMT_SUP; props->max_msg_sz = HNS_ROCE_MAX_MSG_LEN; props->pkey_tbl_len = 1; - props->active_width = IB_WIDTH_4X; - props->active_speed = 1; + ret = ib_get_eth_speed(ib_dev, port_num, &props->active_speed, + &props->active_width); + if (ret) + ibdev_warn(ib_dev, "failed to get speed, ret = %d.\n", ret); spin_lock_irqsave(&hr_dev->iboe.lock, flags); From patchwork Fri Aug 4 01:27:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junxian Huang X-Patchwork-Id: 130902 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1519358vqx; Thu, 3 Aug 2023 18:51:08 -0700 (PDT) X-Google-Smtp-Source: APBJJlEUDGnQAwl/L7d/fg3QyaZ0WPpgMWcp39ukFSH7pH1BZ2YFF+CFKcqTfLodLz9KXw71SEBt X-Received: by 2002:a05:6402:4404:b0:522:e6b0:8056 with SMTP id y4-20020a056402440400b00522e6b08056mr8012415eda.4.1691113867850; Thu, 03 Aug 2023 18:51:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691113867; cv=none; d=google.com; s=arc-20160816; b=lbq7kOLbmI1lm+Svgz92vSGRHxI27K9WNI3Nm3ihrTHpfRNLuYAhFLe5KmmAs0G1po D/PkJVKdqxcJ/Wqxlhxw0+UVaHNVMJlDADT+QAuepClUieTk5cF0ijeFmr0BbygnbvSV DV1o+kS0qo1+QI6MVuszvs6aAYCPBq6aKwTke0dDl/cg6Gx9w1zqghF7Fouv7vRyut6g rSC1ji8TSQzGy9tpVj0BuJVVzVHbSEKdtCsEZLqHOB8DDXK3MTRn0erk/Ct7dYrlkDbu O7tAELp7p8BPUQil11kRmNnya6XJ710kDUs1TsqoYEyhJBd/gk+PYJhfAdnuEEnTa0TF fOIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=sathpuJJGnJwsx56gLtTBSS97ujmKRCdiTQe0hPK+BA=; fh=3H3oLXANh5v13tjHxrBYuXblpWbB01kHKe+fQJ1oJi8=; b=Bp0WmebZ2yxXgWZsnQ5SrbN/g3MerQmP8Cx2biCMkDKNeLqwbWt6Xsb+dpVVbkdZ2s Po+avMW1UMusGrurcbbZhgLAxmCJMPX8Rr/4i5/hBOI5ZQMaVapUXuJtWRQShkKDnAXz IDLsB1Ov1foaCKv2n7sS6txb56n1fPzbnzjRNgPbQAhmLqMV7YoqSnCbyUE+Lr/tDkMI kju+QrcTWSEgTM3MW8BLbnW10EkjU25BdcNw/myW+htRvcfMTolPuQ70pYJrsfPRJHZS EvPaTMqtv6ZZrl1rbvJ9EqIgvgwB2rpCJdzhOIOofOuRos6TN/VQUUKsSmQBYzyCPCNr I9/A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bc20-20020a056402205400b00522ab076c25si705105edb.141.2023.08.03.18.50.44; Thu, 03 Aug 2023 18:51:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231382AbjHDBaD (ORCPT + 99 others); Thu, 3 Aug 2023 21:30:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231824AbjHDB3y (ORCPT ); Thu, 3 Aug 2023 21:29:54 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FAD24481; Thu, 3 Aug 2023 18:29:53 -0700 (PDT) Received: from kwepemi500006.china.huawei.com (unknown [172.30.72.54]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4RH7Qk3QmbzrS0S; Fri, 4 Aug 2023 09:28:46 +0800 (CST) Received: from localhost.localdomain (10.67.165.2) by kwepemi500006.china.huawei.com (7.221.188.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 09:29:50 +0800 From: Junxian Huang To: , CC: , , , Subject: [PATCH for-rc 2/4] RDMA/hns: Fix incorrect post-send with direct wqe of wr-list Date: Fri, 4 Aug 2023 09:27:09 +0800 Message-ID: <20230804012711.808069-3-huangjunxian6@hisilicon.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230804012711.808069-1-huangjunxian6@hisilicon.com> References: <20230804012711.808069-1-huangjunxian6@hisilicon.com> MIME-Version: 1.0 X-Originating-IP: [10.67.165.2] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemi500006.china.huawei.com (7.221.188.68) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773261415344411967 X-GMAIL-MSGID: 1773261415344411967 Currently, direct wqe is not supported for wr-list. RoCE driver excludes direct wqe for wr-list by judging whether the number of wr is 1. For a wr-list where the second wr is a length-error atomic wr, the post-send driver handles the first wr and adds 1 to the wr number counter firstly. While handling the second wr, the driver finds out a length error and terminates the wr handle process, remaining the counter at 1. This causes the driver mistakenly judges there is only 1 wr and thus enters the direct wqe process, carrying the current length-error atomic wqe. This patch fixes the error by adding a judgement whether the current wr is a bad wr. If so, use the normal doorbell process but not direct wqe despite the wr number is 1. Fixes: 01584a5edcc4 ("RDMA/hns: Add support of direct wqe") Signed-off-by: Junxian Huang --- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c index 8f7eb11066b4..f95551b6d407 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c @@ -750,7 +750,8 @@ static int hns_roce_v2_post_send(struct ib_qp *ibqp, qp->sq.head += nreq; qp->next_sge = sge_idx; - if (nreq == 1 && (qp->en_flags & HNS_ROCE_QP_CAP_DIRECT_WQE)) + if (nreq == 1 && !ret && + (qp->en_flags & HNS_ROCE_QP_CAP_DIRECT_WQE)) write_dwqe(hr_dev, qp, wqe); else update_sq_db(hr_dev, qp); From patchwork Fri Aug 4 01:27:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junxian Huang X-Patchwork-Id: 130922 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1532244vqx; Thu, 3 Aug 2023 19:27:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFdsBdlOxr4/pwURze6S2uUmZ+tAMQh8yr3QH4jE05IUaywxF7K1EP5XxyiZQJCWQ83Zf0P X-Received: by 2002:a05:6402:348b:b0:523:f69:9a0d with SMTP id v11-20020a056402348b00b005230f699a0dmr2499548edc.4.1691116021674; Thu, 03 Aug 2023 19:27:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691116021; cv=none; d=google.com; s=arc-20160816; b=hEADm+NXrYi34T+YrOMvQNpNI+DAOGYnHEyy2NdmsmNvvkFcPcRDgjcD7U1gsIlwwz iyU/Fr1Vnnmg2/qoJKMFWXsovGlOFLkoHMESFGM5x9xLQW0KFKDqPTjIzUZHXN/ZG1Up 8m9RKFd6rd1Qza01PfYdcDk+kBN1CZ87uCAJu5I/pHAeyBfEBM3WhcpgULLMN8Jp2I84 Mo3pySnNOJnrNKFVP4oCwE6wq31o89xMZE25IClo5tUIGsPzfxhdvjjV1Lf5SEDF4V5I m9kj2oGmQd1TzWlvVqHi08AsW4DJdZ1bae1Wsm4cOpZnMZ2MRANF6f5o11HRRGLDrJAh rn5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=8WkgldsjNJj0OWIKl0mYl+mIaTFrQm5ZlDGZyXiOezY=; fh=3H3oLXANh5v13tjHxrBYuXblpWbB01kHKe+fQJ1oJi8=; b=zOSMf1Cr1+MGNtYevCDx0OvtFDJgyI6kLG/NCya0gVxnYAdc+OndLqw8q15UAx4d5q z8d07b7CjAwf2Kh3u/hLx/ptU+uHl08D26NOuR+WMNTxlsoA6tCaEHn/4sM+/XkBH1Hs Ia9YAecWPzNPtgbyI4tAEkJfhPMt0SjHKQR/dBQMEXemdrX48JT3/rJTV799t2F0hTSY hLGMa5e6G9bpQPp0IL9TJipfAMKdKVcOJTcWVS41Ez4/iJQt1LLympwu5EdMAwj9qUGW J8e9Xa/3ma+IEXzwtX9tWkllmntS6mA2tz1T4BGxyeFQoytnKNsn7Rms4rOypXmo/6C2 Hadw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c3-20020aa7d603000000b0052257d64ad2si784486edr.269.2023.08.03.19.26.37; Thu, 03 Aug 2023 19:27:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232491AbjHDBaH (ORCPT + 99 others); Thu, 3 Aug 2023 21:30:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231942AbjHDB3y (ORCPT ); Thu, 3 Aug 2023 21:29:54 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 44B574482; Thu, 3 Aug 2023 18:29:53 -0700 (PDT) Received: from kwepemi500006.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4RH7Qk5nMXzrS0X; Fri, 4 Aug 2023 09:28:46 +0800 (CST) Received: from localhost.localdomain (10.67.165.2) by kwepemi500006.china.huawei.com (7.221.188.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 09:29:51 +0800 From: Junxian Huang To: , CC: , , , Subject: [PATCH for-rc 3/4] RDMA/hns: Fix inaccurate error label name in init instance Date: Fri, 4 Aug 2023 09:27:10 +0800 Message-ID: <20230804012711.808069-4-huangjunxian6@hisilicon.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230804012711.808069-1-huangjunxian6@hisilicon.com> References: <20230804012711.808069-1-huangjunxian6@hisilicon.com> MIME-Version: 1.0 X-Originating-IP: [10.67.165.2] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemi500006.china.huawei.com (7.221.188.68) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773263673123190145 X-GMAIL-MSGID: 1773263673123190145 This patch fixes inaccurate error label name in init instance. Fixes: 70f92521584f ("RDMA/hns: Use the reserved loopback QPs to free MR before destroying MPT") Signed-off-by: Junxian Huang --- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c index f95551b6d407..1d998298e28f 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c @@ -6723,14 +6723,14 @@ static int __hns_roce_hw_v2_init_instance(struct hnae3_handle *handle) ret = hns_roce_init(hr_dev); if (ret) { dev_err(hr_dev->dev, "RoCE Engine init failed!\n"); - goto error_failed_cfg; + goto error_failed_roce_init; } if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08) { ret = free_mr_init(hr_dev); if (ret) { dev_err(hr_dev->dev, "failed to init free mr!\n"); - goto error_failed_roce_init; + goto error_failed_free_mr_init; } } @@ -6738,10 +6738,10 @@ static int __hns_roce_hw_v2_init_instance(struct hnae3_handle *handle) return 0; -error_failed_roce_init: +error_failed_free_mr_init: hns_roce_exit(hr_dev); -error_failed_cfg: +error_failed_roce_init: kfree(hr_dev->priv); error_failed_kzalloc: From patchwork Fri Aug 4 01:27:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junxian Huang X-Patchwork-Id: 130904 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1521735vqx; Thu, 3 Aug 2023 18:58:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEaY0QqHSXFSzPFoXHWog+Aqlv/AHhqdv7YKI3EFCx8wk61/SOGvuoWAS4HEB+MGR5I4g5c X-Received: by 2002:a05:620a:2454:b0:767:a9ec:5417 with SMTP id h20-20020a05620a245400b00767a9ec5417mr571399qkn.69.1691114327670; Thu, 03 Aug 2023 18:58:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691114327; cv=none; d=google.com; s=arc-20160816; b=PYh6OoPQCORtlhZzXvdyT9a3dSZsTjDs+UvHLq1hDJmqueUolTxXyF7CjOtFCC47ny m1+aAKK7GBdBjoAUcuEh42i1eWXi17uCWDtSpA30pQkTlxg6KkR8bcvWqU7crSy7OThM QuGKgran2fzW1UUTlp9lJP+JYnXOIbRXhptYYguVKlUoyzJy18FLepW6hMSVn0vRt9rA Z0jCQHBK6YBhsVaLEhq9vYGQk8/jczvjc/ghm3/bkVNX4ZEdEs09eb9Oc0FHfvnhjc/y rROWH3JMeIV10febO3lLhaJMUny4eW35xJHjp4FJoSytecjnxI99/RvEOYpBnAS+wRc6 T+nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Cy7EI0wjyKsBBoGz4Vi3DK5lHlJo3F1/wE9HFOWtnE0=; fh=3H3oLXANh5v13tjHxrBYuXblpWbB01kHKe+fQJ1oJi8=; b=PQmJYE7U+8kLWEmOE9R1793/Q2jWDfjJrDIP98MDjNCVbCi9IZoEN2ZaEdpP8Z73wK dRTvwzneLRJ8WhUCI5NsLYnVy20RJRNTHCMo/dCsk4Rv2vm7EGEZzTUov9/iFiW4dia3 7D6bueXFvAbxvPCR9VSf8qCs2jy6NUtHzP6Fm9ewttlZrX/R0c76fk4Fkf/X3aemnQ+G +EFpM/onHYDjXX3mf+17VctP5N6NduHIqzuEOUfoodayOwPMDPMZyFv4+OMm4Ose16hI Zc8uGfdIVZU2y1MMVYm10lM1csIJWyik02YVtJdntGdvGUrym0P+NlKlb8wifyBiH1aW LxHw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id om1-20020a17090b3a8100b002610f13639asi4334954pjb.91.2023.08.03.18.58.34; Thu, 03 Aug 2023 18:58:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=hisilicon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232525AbjHDBaK (ORCPT + 99 others); Thu, 3 Aug 2023 21:30:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232056AbjHDB3z (ORCPT ); Thu, 3 Aug 2023 21:29:55 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 879DD4486; Thu, 3 Aug 2023 18:29:53 -0700 (PDT) Received: from kwepemi500006.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4RH7Px02ryzVjyq; Fri, 4 Aug 2023 09:28:04 +0800 (CST) Received: from localhost.localdomain (10.67.165.2) by kwepemi500006.china.huawei.com (7.221.188.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 09:29:51 +0800 From: Junxian Huang To: , CC: , , , Subject: [PATCH for-rc 4/4] RDMA/hns: Fix CQ and QP cache affinity Date: Fri, 4 Aug 2023 09:27:11 +0800 Message-ID: <20230804012711.808069-5-huangjunxian6@hisilicon.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20230804012711.808069-1-huangjunxian6@hisilicon.com> References: <20230804012711.808069-1-huangjunxian6@hisilicon.com> MIME-Version: 1.0 X-Originating-IP: [10.67.165.2] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemi500006.china.huawei.com (7.221.188.68) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773261897611445301 X-GMAIL-MSGID: 1773261897611445301 From: Chengchang Tang Currently, the affinity between QP cache and CQ cache is not considered when assigning QPN, it will affect the message rate of HW. Allocate QPN from QP cache with better CQ affinity to get better performance. Fixes: 71586dd20010 ("RDMA/hns: Create QP with selected QPN for bank load balance") Signed-off-by: Chengchang Tang Signed-off-by: Junxian Huang --- drivers/infiniband/hw/hns/hns_roce_device.h | 1 + drivers/infiniband/hw/hns/hns_roce_qp.c | 28 ++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h index 84239b907de2..bb94eb076858 100644 --- a/drivers/infiniband/hw/hns/hns_roce_device.h +++ b/drivers/infiniband/hw/hns/hns_roce_device.h @@ -97,6 +97,7 @@ #define HNS_ROCE_CQ_BANK_NUM 4 #define CQ_BANKID_SHIFT 2 +#define CQ_BANKID_MASK GENMASK(1, 0) enum { SERV_TYPE_RC, diff --git a/drivers/infiniband/hw/hns/hns_roce_qp.c b/drivers/infiniband/hw/hns/hns_roce_qp.c index d855a917f4cf..cdc1c6de43a1 100644 --- a/drivers/infiniband/hw/hns/hns_roce_qp.c +++ b/drivers/infiniband/hw/hns/hns_roce_qp.c @@ -170,14 +170,29 @@ static void hns_roce_ib_qp_event(struct hns_roce_qp *hr_qp, } } -static u8 get_least_load_bankid_for_qp(struct hns_roce_bank *bank) +static u8 get_affinity_cq_bank(u8 qp_bank) { - u32 least_load = bank[0].inuse; + return (qp_bank >> 1) & CQ_BANKID_MASK; +} + +static u8 get_least_load_bankid_for_qp(struct ib_qp_init_attr *init_attr, + struct hns_roce_bank *bank) +{ +#define INVALID_LOAD_QPNUM 0xFFFFFFFF + struct ib_cq *scq = init_attr->send_cq; + u32 least_load = INVALID_LOAD_QPNUM; + unsigned long cqn = 0; u8 bankid = 0; u32 bankcnt; u8 i; - for (i = 1; i < HNS_ROCE_QP_BANK_NUM; i++) { + if (scq) + cqn = to_hr_cq(scq)->cqn; + + for (i = 0; i < HNS_ROCE_QP_BANK_NUM; i++) { + if (scq && (get_affinity_cq_bank(i) != (cqn & CQ_BANKID_MASK))) + continue; + bankcnt = bank[i].inuse; if (bankcnt < least_load) { least_load = bankcnt; @@ -209,7 +224,8 @@ static int alloc_qpn_with_bankid(struct hns_roce_bank *bank, u8 bankid, return 0; } -static int alloc_qpn(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp) +static int alloc_qpn(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp, + struct ib_qp_init_attr *init_attr) { struct hns_roce_qp_table *qp_table = &hr_dev->qp_table; unsigned long num = 0; @@ -220,7 +236,7 @@ static int alloc_qpn(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp) num = 1; } else { mutex_lock(&qp_table->bank_mutex); - bankid = get_least_load_bankid_for_qp(qp_table->bank); + bankid = get_least_load_bankid_for_qp(init_attr, qp_table->bank); ret = alloc_qpn_with_bankid(&qp_table->bank[bankid], bankid, &num); @@ -1082,7 +1098,7 @@ static int hns_roce_create_qp_common(struct hns_roce_dev *hr_dev, goto err_buf; } - ret = alloc_qpn(hr_dev, hr_qp); + ret = alloc_qpn(hr_dev, hr_qp, init_attr); if (ret) { ibdev_err(ibdev, "failed to alloc QPN, ret = %d.\n", ret); goto err_qpn;