Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp4677784rwb; Tue, 20 Sep 2022 18:29:20 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5bUu0cZuJg1t/xykhz4SsxRs+sPnSCFSbS3MLU6cspnbGXuFN91yMKg3i4rQW+J5M48b+Z X-Received: by 2002:a17:90b:4c43:b0:203:1ba4:f29a with SMTP id np3-20020a17090b4c4300b002031ba4f29amr6987328pjb.76.1663723760238; Tue, 20 Sep 2022 18:29:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663723760; cv=none; d=google.com; s=arc-20160816; b=XGkTdPAqm/xY5HGJbbm/OrtF2vacJa1hF3dgfut0dG//XrN93us6Iaw3moI62pkx1U zOJyOHajiq7fInMwl37J8fz74n0m9COxYo+mexaVmINo6o0WmEf6gLOdHpEZf+mGKMc4 tGWNDF5gvYXj8G/3B0xJxO0fQyi1rALko7/M3QCmH3FTElYQYDnTHrVnXxR9n096pG/U ZnjM4WI7I3xbsi5noNBGwyvju6/UW2KP0+U6W1tl/K/wWHYZwhV7YX2Ut5Pn7XdxigLC PrGjr7EMtZZBRvYGoll+tb2Lpdhfto76x6jwQ0W66I1cCVLK4hKiVGh5c9TPl05mjxGg 826w== 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=ocsfRLJrMVLP3MRnHo1K6nXfRnHcqUIq5gLAJuaSbmo=; b=hPmMmIzDKHVI/FBtNnEbPnQdorEDactb5wnLCYp10LfjieXoFrGMJztfxRKPRC/W4K iv5z33ARAWFCac3/zUiKiEdlUmmdVXkkau9e/+05YGQo62iGHfSmYALpg3iaF3cCcA5E UNo0CjEfvy0OAbLkBdz+grwHWZjawBn5VEFpGHyiU83pCWDpku6FMLHulMkxkggzkWvH lJRFXKsX+NC4PzhtKOiwl/u3zT7+fYypCV9PjyqhWmNSo/C59fod4zF++e1+fUsXzmm+ TV/ZHqpLUEgh8tQaSJzWo+tjeo0SL9turUdC444brEp2WxT5LYOUI4jTidpIezX1QT/Q tfgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxonhyperv.com header.s=default header.b=CtVu9Dz4; 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 g69-20020a636b48000000b0041b2f37c570si1365555pgc.752.2022.09.20.18.29.07; Tue, 20 Sep 2022 18:29:20 -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=CtVu9Dz4; 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 S229885AbiIUBWy (ORCPT + 99 others); Tue, 20 Sep 2022 21:22:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33918 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229716AbiIUBWw (ORCPT ); Tue, 20 Sep 2022 21:22:52 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 18F0A72EF9; Tue, 20 Sep 2022 18:22:51 -0700 (PDT) Received: by linux.microsoft.com (Postfix, from userid 1004) id B312C2052E21; Tue, 20 Sep 2022 18:22:50 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B312C2052E21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxonhyperv.com; s=default; t=1663723370; bh=ocsfRLJrMVLP3MRnHo1K6nXfRnHcqUIq5gLAJuaSbmo=; h=From:To:Cc:Subject:Date:Reply-To:From; b=CtVu9Dz4CXagejkTzC2j2DGGo2sVvEWk6OWKSM6H4qNfaU9/ae0ZpTkSwl3mi/Ic7 kJ4+QNM37WjpM2a9jYbdtEC7mfx3nVwmXLia0/+A5CXLYys+19a9OIyka0sj5dRGDv Yo8p2xbnV8yNLslb6NVjAPAPN3XWfeLMsh3m5BpI= 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 v6 00/12] Introduce Microsoft Azure Network Adapter (MANA) RDMA driver Date: Tue, 20 Sep 2022 18:22:20 -0700 Message-Id: <1663723352-598-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: 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 ++++ drivers/net/ethernet/microsoft/Kconfig | 1 + .../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 | 176 +++++- .../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 +++ 26 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 (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