Received: by 2002:a05:6358:111d:b0:dc:6189:e246 with SMTP id f29csp2089891rwi; Thu, 3 Nov 2022 12:31:07 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5VK9QjH0hm3MOnfk+MNLOmwnK+e3bQQdG10DVEyIzlrnZWiRXR3fiqevr41v910LNMFAyQ X-Received: by 2002:a63:1041:0:b0:46e:c6eb:22ee with SMTP id 1-20020a631041000000b0046ec6eb22eemr27224489pgq.442.1667503867444; Thu, 03 Nov 2022 12:31:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667503867; cv=none; d=google.com; s=arc-20160816; b=yj9x5EO/PfvDcB6jAJ/5+tGV6KJE9BDrxarSypAhB6QDjm/ERp6SoKA2l1FKbwH3hN imBEBNDslZtxgrgNF4lXt1M8roU66uA3DmYaqTOrwqzptG5rlHktmS1qNzldL2txajCN Zv3kaypwhmqztkXtoqg+PKZOeuO19oqiIviKoZvcxhu4Oh7PTL/vTU6hIjiBpInVfPQh 9j+DgrmRnAneK/nK6DFeRxMzONFMuxfDBEDU+sNi9OsO1UHU/YDk/f2ZM1rKwJrzoa/+ oAFwc6oguqF2pSaQTeM7cq4gQW2ZAE53w/P6eYTDmCb9YklGzMrzDLkf+4YVPjKgVDXN +NRQ== 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=kadn+aTf3nW20UCiL7FSGugZ1f36OZduTmq6RjMWCWQ=; b=YDLjwCzEdo3sXDpVxL5NlUSrJ4FEUHuaDj/0BOXUWF4FmWQm2Q6YjiEPAn7a3afEGk op9XrUtOqVwfd5C38enAnbPR+VIfpApeGj/grctVqmBB754RAPJqlA20NZN4FM82c4Pm phq9A9XdJ+SFTzZpU7H0Vo5bmSannWRVh7CnYqpWCQg0fA48djRXzXkdgfmdI8mWybmq fvB0CTHBy8gBNXA93qV6NcPV2zbLpIKsOCJvrK6eScXCGbqitM3AHMyJl8WyhrlShOgv obIYAlw3U3xTunFb/MlFGr15ehQXVOAS3gWTmiWznggmhXTUKYD/kLA5c1tt539rJWEm 1cmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxonhyperv.com header.s=default header.b=EPwRK0Eu; 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 g24-20020a170902869800b00178b95aa01fsi1422323plo.614.2022.11.03.12.30.54; Thu, 03 Nov 2022 12:31: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; dkim=pass header.i=@linuxonhyperv.com header.s=default header.b=EPwRK0Eu; 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 S231386AbiKCTQw (ORCPT + 97 others); Thu, 3 Nov 2022 15:16:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230041AbiKCTQu (ORCPT ); Thu, 3 Nov 2022 15:16:50 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DECFF1D306; Thu, 3 Nov 2022 12:16:48 -0700 (PDT) Received: by linux.microsoft.com (Postfix, from userid 1004) id 9DBBE20B9F81; Thu, 3 Nov 2022 12:16:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9DBBE20B9F81 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxonhyperv.com; s=default; t=1667503008; bh=kadn+aTf3nW20UCiL7FSGugZ1f36OZduTmq6RjMWCWQ=; h=From:To:Cc:Subject:Date:Reply-To:From; b=EPwRK0Eu0s1m8QfOiv2DXRMPZhHvxaaLj88sjHqt59UdZ5H7vMKf/MqKc1CvgcvLA 5jIsw7cU+k7hI3HKH0nr7P/7ycaj6g/D800LCw9j7vsIaoz7e2zNCCPqTUjeJh7fTs tKKIlrnFi2COMblXApZYP4EARmd75etsD21y8lSU= 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 v10 00/12] Introduce Microsoft Azure Network Adapter (MANA) RDMA driver Date: Thu, 3 Nov 2022 12:16:18 -0700 Message-Id: <1667502990-2559-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,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: 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 net: mana: Define data structures for allocating doorbell page from GDMA RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter MAINTAINERS | 10 + drivers/infiniband/Kconfig | 1 + drivers/infiniband/hw/Makefile | 1 + drivers/infiniband/hw/mana/Kconfig | 10 + drivers/infiniband/hw/mana/Makefile | 4 + drivers/infiniband/hw/mana/cq.c | 79 +++ drivers/infiniband/hw/mana/device.c | 117 ++++ drivers/infiniband/hw/mana/main.c | 521 ++++++++++++++++++ drivers/infiniband/hw/mana/mana_ib.h | 162 ++++++ drivers/infiniband/hw/mana/mr.c | 197 +++++++ drivers/infiniband/hw/mana/qp.c | 506 +++++++++++++++++ drivers/infiniband/hw/mana/wq.c | 115 ++++ drivers/net/ethernet/microsoft/Kconfig | 1 + .../net/ethernet/microsoft/mana/gdma_main.c | 40 +- .../net/ethernet/microsoft/mana/hw_channel.c | 6 +- .../net/ethernet/microsoft/mana/mana_bpf.c | 2 +- drivers/net/ethernet/microsoft/mana/mana_en.c | 175 +++++- .../ethernet/microsoft/mana/mana_ethtool.c | 2 +- .../net/ethernet/microsoft/mana/shm_channel.c | 2 +- .../microsoft => include/net}/mana/gdma.h | 158 +++++- .../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 +++ 26 files changed, 2164 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 (80%) rename {drivers/net/ethernet/microsoft => include/net}/mana/hw_channel.h (100%) rename {drivers/net/ethernet/microsoft => include/net}/mana/mana.h (95%) 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