mbox series

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

Message ID 1661906071-29508-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 Aug. 31, 2022, 12:34 a.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: 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

Comments

Long Li Sept. 9, 2022, 9:41 p.m. UTC | #1
> Subject: [Patch v5 00/12] Introduce Microsoft Azure Network Adapter
> (MANA) RDMA driver
> 
> 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://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
> ub.com%2Flinux-rdma%2Frdma-
> core%2Fpull%2F1177&amp;data=05%7C01%7Clongli%40microsoft.com%7Cc1
> 6f986dc7c34750c1de08da8ae896d4%7C72f988bf86f141af91ab2d7cd011db47%
> 7C1%7C0%7C637975028849495970%7CUnknown%7CTWFpbGZsb3d8eyJWIjoi
> MC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C300
> 0%7C%7C%7C&amp;sdata=VoflZKD8KVbKxpv%2BH8w4rgsrlOlv5NAjul6K6fuD
> 9jY%3D&amp;reserved=0
> 
> 
> 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

Hi Jason,

Can you take a look at this patch set. I have addressed all the comments from previous review.

Please let me know if I should make any changes.

Thanks,
Long
Jason Gunthorpe Sept. 9, 2022, 11:51 p.m. UTC | #2
On Fri, Sep 09, 2022 at 09:41:25PM +0000, Long Li wrote:

> Can you take a look at this patch set. I have addressed all the
> comments from previous review.

The last time I looked I thought it was looking OK, I was thinking of
putting it in linux-next for a while to get the static checkers
happy. But the netdev patches gave me pause on that plan.

However, Leon and I will be at LPC all next week so I don't know if it
will happen.

I would also like to see that the netdev patches are acked, and ask how
you expect this cross-tree series to be merged?

Jason
Leon Romanovsky Sept. 20, 2022, 4:54 p.m. UTC | #3
On Fri, Sep 09, 2022 at 08:51:45PM -0300, Jason Gunthorpe wrote:
> On Fri, Sep 09, 2022 at 09:41:25PM +0000, Long Li wrote:
> 
> > Can you take a look at this patch set. I have addressed all the
> > comments from previous review.
> 
> The last time I looked I thought it was looking OK, I was thinking of
> putting it in linux-next for a while to get the static checkers
> happy. But the netdev patches gave me pause on that plan.
> 
> However, Leon and I will be at LPC all next week so I don't know if it
> will happen.
> 
> I would also like to see that the netdev patches are acked, and ask how
> you expect this cross-tree series to be merged?

?????? 

> 
> Jason
Long Li Sept. 20, 2022, 10:20 p.m. UTC | #4
> Subject: Re: [Patch v5 00/12] Introduce Microsoft Azure Network Adapter
> (MANA) RDMA driver
> 
> On Fri, Sep 09, 2022 at 08:51:45PM -0300, Jason Gunthorpe wrote:
> > On Fri, Sep 09, 2022 at 09:41:25PM +0000, Long Li wrote:
> >
> > > Can you take a look at this patch set. I have addressed all the
> > > comments from previous review.
> >
> > The last time I looked I thought it was looking OK, I was thinking of
> > putting it in linux-next for a while to get the static checkers happy.
> > But the netdev patches gave me pause on that plan.
> >
> > However, Leon and I will be at LPC all next week so I don't know if it
> > will happen.
> >
> > I would also like to see that the netdev patches are acked, and ask
> > how you expect this cross-tree series to be merged?
> 
> ??????

I apologize for the late response.

The MANA ethernet maintainers have reviewed and acknowledged all the patches to the ethernet driver.

Can we merge the patch series through linux-rdma tree? I will rebase and send the v6 of the patch series for rdma-next.

Thanks,
Long