From patchwork Tue May 24 08:56:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Long Li X-Patchwork-Id: 12859844 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E30BC4332F for ; Tue, 24 May 2022 08:56:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234047AbiEXI4l (ORCPT ); Tue, 24 May 2022 04:56:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230086AbiEXI4T (ORCPT ); Tue, 24 May 2022 04:56:19 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4A3652A71F; Tue, 24 May 2022 01:56:17 -0700 (PDT) Received: by linux.microsoft.com (Postfix, from userid 1004) id 0CE5C20B71D5; Tue, 24 May 2022 01:56:17 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0CE5C20B71D5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxonhyperv.com; s=default; t=1653382577; bh=q6+10vIn7gksEq8uQbjXxOjVwfFIGP+vMhljlQ+vW7c=; h=From:To:Cc:Subject:Date:Reply-To:From; b=dmgXmJnklCANUE4vQgU1kjm3WH/UOKVEoEoionCCBOLFFNFZh2LCilHxrxA9aEGDX c7PeD4Uyb/69AMK1uSDlR1slho0JQy4h8ygz4TlmLwdgMHNTZ3BG2yUvwS5HXHfXms xY/69ZWKiE3lPhw7fBMxrj2sj//0JLLhZWn1T6yw= 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 , 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 v2 00/12] Introduce Microsoft Azure Network Adapter (MANA) RDMA driver Date: Tue, 24 May 2022 01:56:00 -0700 Message-Id: <1653382572-14788-1-git-send-email-longli@linuxonhyperv.com> X-Mailer: git-send-email 1.8.3.1 Reply-To: longli@microsoft.com Precedence: bulk List-ID: X-Mailing-List: netdev@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 data structures for protection domain and memory registration net: mana: Define and process GDMA response code GDMA_STATUS_MORE_ENTRIES 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 | 79 +++ drivers/infiniband/hw/mana/main.c | 648 ++++++++++++++++++ drivers/infiniband/hw/mana/mana_ib.h | 144 ++++ drivers/infiniband/hw/mana/mr.c | 134 ++++ drivers/infiniband/hw/mana/qp.c | 494 +++++++++++++ drivers/infiniband/hw/mana/wq.c | 115 ++++ .../net/ethernet/microsoft/mana/gdma_main.c | 93 ++- .../net/ethernet/microsoft/mana/hw_channel.c | 6 +- .../net/ethernet/microsoft/mana/mana_bpf.c | 2 +- drivers/net/ethernet/microsoft/mana/mana_en.c | 140 +++- .../ethernet/microsoft/mana/mana_ethtool.c | 2 +- .../net/ethernet/microsoft/mana/shm_channel.c | 2 +- .../microsoft => include/net}/mana/gdma.h | 191 +++++- .../net}/mana/hw_channel.h | 0 .../microsoft => include/net}/mana/mana.h | 26 +- .../net}/mana/shm_channel.h | 0 include/uapi/rdma/ib_user_ioctl_verbs.h | 1 + include/uapi/rdma/mana-abi.h | 68 ++ 23 files changed, 2117 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/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 (77%) rename {drivers/net/ethernet/microsoft => include/net}/mana/hw_channel.h (100%) rename {drivers/net/ethernet/microsoft => include/net}/mana/mana.h (94%) rename {drivers/net/ethernet/microsoft => include/net}/mana/shm_channel.h (100%) create mode 100644 include/uapi/rdma/mana-abi.h