Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp4790917rwe; Tue, 30 Aug 2022 17:36:43 -0700 (PDT) X-Google-Smtp-Source: AA6agR5QjEXtzUTozK6Ln4iwmOnX6NwnYeNfz9tnpSQZsNUzd+qQ6QpmJK00yvCjLfbAofRNmsYY X-Received: by 2002:a05:6402:33c5:b0:447:e4a3:c930 with SMTP id a5-20020a05640233c500b00447e4a3c930mr18270826edc.401.1661906202772; Tue, 30 Aug 2022 17:36:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661906202; cv=none; d=google.com; s=arc-20160816; b=dj318AwOW7YRzeeuVne6Z2EkuAXZBefE/bA7nVJxfs+2wR/u2p2ajprI7lEC0aKfSz V1HfBKcHxFiZPxXzElHQ4VcgBA2Hjgu4LCRWXyMaFVzWFt03gUQI2lew3l7pkMbAjHT+ C58+Nrg8LmYNx/MmHhVV1oBgQLtISHgUSOyaVJqI8E1nmFrsRLaq98gVNbgI5+Dl5/Is IcXROfsQWHWOlRqWwq8bbTounfIP5bXdRorJg2pmAWpOfMw2dyjI9IAXW7gbMUq216kS E8Ba98nkUvBQD3BXOFNGnyqU403VxWHprk7kLy61f69r0I/Cu46g+qzdsMoDmkp7v3Ei Oi7g== 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=20u8ixO/yuN3YFPTYaorc5Nw1VEF7gX5/pYC5BLxjHY=; b=gQCPFG0TDzXenmxKPQ7XJUnc0tU4Ob21QGVrqSaWR1Ftkbz7fYdRb+0CnpTkubzqbA zx8yq4hTBXLzWZqWm4y1NOa3ujARacE4CoEZUQl5SconVObFcxBNj4GrXEXunEYck07b /pFI+M/VKIpS26BUvqN01KXPqv/Dw9MgUytqksYh+RHXHN5Fd3FMYN/Kzwtd0qBy9EBm ZY6HrWQf25TaLYahDJSMp/nvkcRiE6lMWHH8ftOzs1JJgeDw/VkceyOUl5krWIIR5+uN ocwbVp7cGMP/haxNLSFZo0TUq7FWdop/KLQ+LN4dp5+S+pCWDYbtZPRinHXl4ekAyCRh 3WUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxonhyperv.com header.s=default header.b=KP43ujlH; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e7-20020a50d4c7000000b00445d6ec34d2si9292320edj.303.2022.08.30.17.36.16; Tue, 30 Aug 2022 17:36:42 -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=KP43ujlH; 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 S231384AbiHaAeo (ORCPT + 99 others); Tue, 30 Aug 2022 20:34:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230325AbiHaAel (ORCPT ); Tue, 30 Aug 2022 20:34:41 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9D3FDA598B; Tue, 30 Aug 2022 17:34:39 -0700 (PDT) Received: by linux.microsoft.com (Postfix, from userid 1004) id 166CE2045E24; Tue, 30 Aug 2022 17:34:39 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 166CE2045E24 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxonhyperv.com; s=default; t=1661906079; bh=20u8ixO/yuN3YFPTYaorc5Nw1VEF7gX5/pYC5BLxjHY=; h=From:To:Cc:Subject:Date:Reply-To:From; b=KP43ujlHcktDpToBlTMI7ugady0UFWZ+hkEsa6el3NQRGnsjEB+ntVbKck2eLILdE Nq83kDrC/CIesYkDYFj9E1dwDMaN5UyVhzzdSMOQ6FufHbhJ8BgrwDnnPkXvmYgvri LQLEnxblOD1lrec88Yz/WPa7zd/V3du7BEWL869U= From: longli@linuxonhyperv.com To: "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Dexuan Cui , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Jason Gunthorpe , Leon Romanovsky , edumazet@google.com, shiraz.saleem@intel.com, Ajay Sharma Cc: linux-hyperv@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, Long Li Subject: [Patch v5 00/12] Introduce Microsoft Azure Network Adapter (MANA) RDMA driver Date: Tue, 30 Aug 2022 17:34:19 -0700 Message-Id: <1661906071-29508-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 From: Long Li This patchset implements a RDMA driver for Microsoft Azure Network Adapter (MANA). In MANA, the RDMA device is modeled as an auxiliary device to the Ethernet device. The first 11 patches modify the MANA Ethernet driver to support RDMA driver. The last patch implementes the RDMA driver. The user-mode of the driver is being reviewed at: https://github.com/linux-rdma/rdma-core/pull/1177 Ajay Sharma (3): net: mana: Set the DMA device max segment size net: mana: Define and process GDMA response code GDMA_STATUS_MORE_ENTRIES net: mana: Define data structures for protection domain and memory registration Long Li (9): net: mana: Add support for auxiliary device net: mana: Record the physical address for doorbell page region net: mana: Handle vport sharing between devices net: mana: Add functions for allocating doorbell page from GDMA net: mana: Export Work Queue functions for use by RDMA driver net: mana: Record port number in netdev net: mana: Move header files to a common location net: mana: Define max values for SGL entries RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter MAINTAINERS | 4 + drivers/infiniband/Kconfig | 1 + drivers/infiniband/hw/Makefile | 1 + drivers/infiniband/hw/mana/Kconfig | 7 + drivers/infiniband/hw/mana/Makefile | 4 + drivers/infiniband/hw/mana/cq.c | 80 +++ drivers/infiniband/hw/mana/device.c | 129 ++++ drivers/infiniband/hw/mana/main.c | 555 ++++++++++++++++++ drivers/infiniband/hw/mana/mana_ib.h | 165 ++++++ drivers/infiniband/hw/mana/mr.c | 133 +++++ drivers/infiniband/hw/mana/qp.c | 501 ++++++++++++++++ drivers/infiniband/hw/mana/wq.c | 114 ++++ .../net/ethernet/microsoft/mana/gdma_main.c | 96 ++- .../net/ethernet/microsoft/mana/hw_channel.c | 6 +- .../net/ethernet/microsoft/mana/mana_bpf.c | 2 +- drivers/net/ethernet/microsoft/mana/mana_en.c | 177 +++++- .../ethernet/microsoft/mana/mana_ethtool.c | 2 +- .../net/ethernet/microsoft/mana/shm_channel.c | 2 +- .../microsoft => include/net}/mana/gdma.h | 162 ++++- .../net}/mana/hw_channel.h | 0 .../microsoft => include/net}/mana/mana.h | 23 +- include/net/mana/mana_auxiliary.h | 10 + .../net}/mana/shm_channel.h | 0 include/uapi/rdma/ib_user_ioctl_verbs.h | 1 + include/uapi/rdma/mana-abi.h | 66 +++ 25 files changed, 2196 insertions(+), 45 deletions(-) create mode 100644 drivers/infiniband/hw/mana/Kconfig create mode 100644 drivers/infiniband/hw/mana/Makefile create mode 100644 drivers/infiniband/hw/mana/cq.c create mode 100644 drivers/infiniband/hw/mana/device.c create mode 100644 drivers/infiniband/hw/mana/main.c create mode 100644 drivers/infiniband/hw/mana/mana_ib.h create mode 100644 drivers/infiniband/hw/mana/mr.c create mode 100644 drivers/infiniband/hw/mana/qp.c create mode 100644 drivers/infiniband/hw/mana/wq.c rename {drivers/net/ethernet/microsoft => include/net}/mana/gdma.h (79%) rename {drivers/net/ethernet/microsoft => include/net}/mana/hw_channel.h (100%) rename {drivers/net/ethernet/microsoft => include/net}/mana/mana.h (94%) create mode 100644 include/net/mana/mana_auxiliary.h rename {drivers/net/ethernet/microsoft => include/net}/mana/shm_channel.h (100%) create mode 100644 include/uapi/rdma/mana-abi.h -- 2.17.1