mbox series

[v10,00/12] Introduce Microsoft Azure Network Adapter (MANA) RDMA driver

Message ID 1667502990-2559-1-git-send-email-longli@linuxonhyperv.com (mailing list archive)
Headers show
Series Introduce Microsoft Azure Network Adapter (MANA) RDMA driver | expand

Message

Long Li Nov. 3, 2022, 7:16 p.m. UTC
From: Long Li <longli@microsoft.com>

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

Comments

Leon Romanovsky Nov. 8, 2022, 7:14 p.m. UTC | #1
On Thu, Nov 03, 2022 at 12:16:18PM -0700, longli@linuxonhyperv.com wrote:
> From: Long Li <longli@microsoft.com>
> 
> 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.

<...>

>  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 +++

Hi netdev maintainers,

Can you please ACK/comment on eth part of this series? And how should
we proceed? Should we take this driver through shared branch or apply
directly to RDMA tree?

Thanks
Jakub Kicinski Nov. 8, 2022, 11:05 p.m. UTC | #2
On Tue, 8 Nov 2022 21:14:51 +0200 Leon Romanovsky wrote:
> Can you please ACK/comment on eth part of this series? And how should
> we proceed? Should we take this driver through shared branch or apply
> directly to RDMA tree?

LGTM. Is it possible to get patches 1-11 thry a shared branch and then
you can apply 12 directly to RDMA? That seems optimal to me.
Leon Romanovsky Nov. 9, 2022, 6:06 a.m. UTC | #3
On Tue, Nov 08, 2022 at 03:05:29PM -0800, Jakub Kicinski wrote:
> On Tue, 8 Nov 2022 21:14:51 +0200 Leon Romanovsky wrote:
> > Can you please ACK/comment on eth part of this series? And how should
> > we proceed? Should we take this driver through shared branch or apply
> > directly to RDMA tree?
> 
> LGTM. Is it possible to get patches 1-11 thry a shared branch and then
> you can apply 12 directly to RDMA? That seems optimal to me.

Of course.

Thanks
Leon Romanovsky Nov. 9, 2022, 6:48 p.m. UTC | #4
On Tue, Nov 08, 2022 at 03:05:29PM -0800, Jakub Kicinski wrote:
> On Tue, 8 Nov 2022 21:14:51 +0200 Leon Romanovsky wrote:
> > Can you please ACK/comment on eth part of this series? And how should
> > we proceed? Should we take this driver through shared branch or apply
> > directly to RDMA tree?
> 
> LGTM. Is it possible to get patches 1-11 thry a shared branch and then
> you can apply 12 directly to RDMA? That seems optimal to me.

Please pull, I collected everything from ML and created shared branch.

The following changes since commit f0c4d9fc9cc9462659728d168387191387e903cc:

  Linux 6.1-rc4 (2022-11-06 15:07:11 -0800)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git/ mana-shared-6.2

for you to fetch changes up to 1e6e19c6e1c100be3d6511345842702a24c155b9:

  net: mana: Define data structures for protection domain and memory registration (2022-11-09 20:41:17 +0200)

Thanks
Jakub Kicinski Nov. 9, 2022, 8:05 p.m. UTC | #5
On Wed, 9 Nov 2022 20:48:40 +0200 Leon Romanovsky wrote:
> Please pull, I collected everything from ML and created shared branch.
> 
> The following changes since commit f0c4d9fc9cc9462659728d168387191387e903cc:
> 
>   Linux 6.1-rc4 (2022-11-06 15:07:11 -0800)
> 
> are available in the Git repository at:
> 
>   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git/ mana-shared-6.2
> 
> for you to fetch changes up to 1e6e19c6e1c100be3d6511345842702a24c155b9:
> 
>   net: mana: Define data structures for protection domain and memory registration (2022-11-09 20:41:17 +0200)


It's not on a common base with net-next.
Could you rebase on something that's at or below git merge-base ?
Leon Romanovsky Nov. 10, 2022, 5:58 a.m. UTC | #6
On Wed, Nov 09, 2022 at 12:05:44PM -0800, Jakub Kicinski wrote:
> On Wed, 9 Nov 2022 20:48:40 +0200 Leon Romanovsky wrote:
> > Please pull, I collected everything from ML and created shared branch.
> > 
> > The following changes since commit f0c4d9fc9cc9462659728d168387191387e903cc:
> > 
> >   Linux 6.1-rc4 (2022-11-06 15:07:11 -0800)
> > 
> > are available in the Git repository at:
> > 
> >   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git/ mana-shared-6.2
> > 
> > for you to fetch changes up to 1e6e19c6e1c100be3d6511345842702a24c155b9:
> > 
> >   net: mana: Define data structures for protection domain and memory registration (2022-11-09 20:41:17 +0200)
> 
> 
> It's not on a common base with net-next.
> Could you rebase on something that's at or below git merge-base ?

Done, I downgraded the branch to be based on -rc3.

Thanks
Jakub Kicinski Nov. 10, 2022, 8:10 p.m. UTC | #7
On Thu, 10 Nov 2022 07:58:57 +0200 Leon Romanovsky wrote:
> > > Please pull, I collected everything from ML and created shared branch.
> > > 
> > > The following changes since commit f0c4d9fc9cc9462659728d168387191387e903cc:
> > > 
> > >   Linux 6.1-rc4 (2022-11-06 15:07:11 -0800)
> > > 
> > > are available in the Git repository at:
> > > 
> > >   https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git/ mana-shared-6.2
> > > 
> > > for you to fetch changes up to 1e6e19c6e1c100be3d6511345842702a24c155b9:
> > > 
> > >   net: mana: Define data structures for protection domain and memory registration (2022-11-09 20:41:17 +0200)  
> > 
> > 
> > It's not on a common base with net-next.
> > Could you rebase on something that's at or below git merge-base ?  
> 
> Done, I downgraded the branch to be based on -rc3.

Perfect, pulled, I'll push it out once the build goes thru
(there won't be a pw-bot notification).

Thank you!
Leon Romanovsky Nov. 11, 2022, 9:43 a.m. UTC | #8
On Thu, 3 Nov 2022 12:16:18 -0700, longli@linuxonhyperv.com wrote:
> From: Long Li <longli@microsoft.com>
> 
> 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.
> 
> [...]

Applied, thanks!

[12/12] RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter
        https://git.kernel.org/rdma/rdma/c/0266a177631d4c

Best regards,