From patchwork Fri May 5 18:51:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: longli@linuxonhyperv.com X-Patchwork-Id: 90566 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp635275vqo; Fri, 5 May 2023 12:13:46 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5kDpjPgSAzaaUpwen7qZvCoVdKhVMcOj/9xDHrdKAzU7bqHGV5+33x2bk8nggv3tcZ5eXm X-Received: by 2002:a17:902:b591:b0:1a5:2760:74ef with SMTP id a17-20020a170902b59100b001a5276074efmr2338420pls.25.1683314026463; Fri, 05 May 2023 12:13:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683314026; cv=none; d=google.com; s=arc-20160816; b=sal5AHRdNCj0Nf6pugtXTbl4ogD9wG3fEX2k8ZDowIJvCB7iA5ygADoXy759Xmrx99 R4MbYuRFS7+6Ir6b1eUU1/AQb7JZ1WaG4OX1Nfnj6YYhbq3Fwj5RwiPd1t107Kmy2NM1 YTykvbc+5vuiE12dCZ6AKJxehlwgnCtmRoWZdEzx0U9GhCN4Psvk2/r5MT3JbQAcqBdw ptyBA1yI0/JJcgt+wyw4WIiRpLwzUyQW9kK4bDm8U7EQD/Bx59r0TlakXwUIQslSRVT1 1UllH/iZ0FEN1QG7IQzUbpcbdqHMpsU1x54q8eCl9gTI4VI+ySXKt3pf1NyiguoVcnwB cZ5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=mb5lvwg5ohLnnbkdoeBM8lxdqhlZn5srSg8X66I10YQ=; b=THIjiIZ5LNR1/pz2gyn9bCTcnB/7CcWq7eiwXwezTKudgENBDlwl5fYSHRMqmp1o3X Yrc6MktoD4dySsYn9/quydhSADPQBpbX0JEyIj/rVxxqnwVFrcVNf8WZwsZ2KYHKOIVd mtQFZMZkIViG5s1gKVRqaboXj5PSOHGu1lYVy+1VmzGkMe5+9t67URcYbrgJhCf61RJp QIDTaNu990r5h0czWUXYbtVV7xhaPrNgxyy1A+sduHxygcXqj0dWb4HIjxTo9oePag/z ILKKHJpPIlP30FwZ4hmtyptyQJGP3+yRKkoh/Wqp3zsQkFDwygZ+5LOKEe9p6mftlC3a 40nQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxonhyperv.com header.s=default header.b=FGPYeoob; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxonhyperv.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ix19-20020a170902f81300b001aad4ba0de5si2227753plb.158.2023.05.05.12.13.32; Fri, 05 May 2023 12:13:46 -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; dkim=pass header.i=@linuxonhyperv.com header.s=default header.b=FGPYeoob; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxonhyperv.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233360AbjEESwN (ORCPT + 99 others); Fri, 5 May 2023 14:52:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233062AbjEESwL (ORCPT ); Fri, 5 May 2023 14:52:11 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 8D21112A; Fri, 5 May 2023 11:51:59 -0700 (PDT) Received: by linux.microsoft.com (Postfix, from userid 1004) id 0E5D220EA203; Fri, 5 May 2023 11:51:59 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0E5D220EA203 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxonhyperv.com; s=default; t=1683312719; bh=mb5lvwg5ohLnnbkdoeBM8lxdqhlZn5srSg8X66I10YQ=; h=From:To:Cc:Subject:Date:Reply-To:From; b=FGPYeoobBbC8zpKtp262vui8o6VTAI05CAw2wWRvQj7vOvJOgCkmGRsoxzUd4ognE 8hgvhBdXC4TabrBsmVt5QU2yZvs1DgNBfj09deVQkxZEKDpolp5jO8Q3y/plDgNGrU JBDyMi63+Xf5VRF+oIQq0/gqUqe2cYzdjMvIM2MI= From: longli@linuxonhyperv.com To: Jason Gunthorpe , Leon Romanovsky , Ajay Sharma , Dexuan Cui , "K. Y. Srinivasan" , Haiyang Zhang , Wei Liu , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: linux-rdma@vger.kernel.org, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Long Li Subject: [PATCH] RDMA/mana_ib: Use v2 version of cfg_rx_steer_req to enable RX coalescing Date: Fri, 5 May 2023 11:51:48 -0700 Message-Id: <1683312708-24872-1-git-send-email-longli@linuxonhyperv.com> X-Mailer: git-send-email 1.8.3.1 Reply-To: longli@microsoft.com X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_SPF_WL 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765082688615261618?= X-GMAIL-MSGID: =?utf-8?q?1765082688615261618?= From: Long Li With RX coalescing, one CQE entry can be used to indicate multiple packets on the receive queue. This saves processing time and PCI bandwidth over the CQ. Signed-off-by: Long Li --- drivers/infiniband/hw/mana/qp.c | 5 ++++- include/net/mana/mana.h | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c index 54b61930a7fd..83c768f96506 100644 --- a/drivers/infiniband/hw/mana/qp.c +++ b/drivers/infiniband/hw/mana/qp.c @@ -13,7 +13,7 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev, u8 *rx_hash_key) { struct mana_port_context *mpc = netdev_priv(ndev); - struct mana_cfg_rx_steer_req *req = NULL; + struct mana_cfg_rx_steer_req_v2 *req = NULL; struct mana_cfg_rx_steer_resp resp = {}; mana_handle_t *req_indir_tab; struct gdma_context *gc; @@ -33,6 +33,8 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev, mana_gd_init_req_hdr(&req->hdr, MANA_CONFIG_VPORT_RX, req_buf_size, sizeof(resp)); + req->hdr.req.msg_version = GDMA_MESSAGE_V2; + req->vport = mpc->port_handle; req->rx_enable = 1; req->update_default_rxobj = 1; @@ -46,6 +48,7 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev, req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE; req->indir_tab_offset = sizeof(*req); req->update_indir_tab = true; + req->cqe_coalescing_enable = true; req_indir_tab = (mana_handle_t *)(req + 1); /* The ind table passed to the hardware must have diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h index cd386aa7c7cc..f8314b7c386c 100644 --- a/include/net/mana/mana.h +++ b/include/net/mana/mana.h @@ -596,6 +596,23 @@ struct mana_cfg_rx_steer_req { u8 hashkey[MANA_HASH_KEY_SIZE]; }; /* HW DATA */ +struct mana_cfg_rx_steer_req_v2 { + struct gdma_req_hdr hdr; + mana_handle_t vport; + u16 num_indir_entries; + u16 indir_tab_offset; + u32 rx_enable; + u32 rss_enable; + u8 update_default_rxobj; + u8 update_hashkey; + u8 update_indir_tab; + u8 reserved; + mana_handle_t default_rxobj; + u8 hashkey[MANA_HASH_KEY_SIZE]; + u8 cqe_coalescing_enable; + u8 reserved2[7]; +}; /* HW DATA */ + struct mana_cfg_rx_steer_resp { struct gdma_resp_hdr hdr; }; /* HW DATA */