[PATCH v5 00/14] Introduce AMD Pensando RDMA driver

Abhijit Gangurde posted 14 patches 1 month, 3 weeks ago
There is a newer version of this series
.../device_drivers/ethernet/index.rst         |    1 +
.../ethernet/pensando/ionic.rst               |   10 +
.../ethernet/pensando/ionic_rdma.rst          |   52 +
MAINTAINERS                                   |    9 +
drivers/infiniband/Kconfig                    |    1 +
drivers/infiniband/hw/Makefile                |    1 +
drivers/infiniband/hw/ionic/Kconfig           |   15 +
drivers/infiniband/hw/ionic/Makefile          |    9 +
drivers/infiniband/hw/ionic/ionic_admin.c     | 1228 ++++++++
.../infiniband/hw/ionic/ionic_controlpath.c   | 2679 +++++++++++++++++
drivers/infiniband/hw/ionic/ionic_datapath.c  | 1392 +++++++++
drivers/infiniband/hw/ionic/ionic_fw.h        | 1029 +++++++
drivers/infiniband/hw/ionic/ionic_hw_stats.c  |  484 +++
drivers/infiniband/hw/ionic/ionic_ibdev.c     |  452 +++
drivers/infiniband/hw/ionic/ionic_ibdev.h     |  517 ++++
drivers/infiniband/hw/ionic/ionic_lif_cfg.c   |  111 +
drivers/infiniband/hw/ionic/ionic_lif_cfg.h   |   66 +
drivers/infiniband/hw/ionic/ionic_pgtbl.c     |  143 +
drivers/infiniband/hw/ionic/ionic_queue.c     |   52 +
drivers/infiniband/hw/ionic/ionic_queue.h     |  234 ++
drivers/infiniband/hw/ionic/ionic_res.h       |  154 +
drivers/net/ethernet/pensando/Kconfig         |    1 +
drivers/net/ethernet/pensando/ionic/Makefile  |    2 +-
drivers/net/ethernet/pensando/ionic/ionic.h   |    7 -
.../net/ethernet/pensando/ionic/ionic_api.h   |  131 +
.../net/ethernet/pensando/ionic/ionic_aux.c   |  102 +
.../net/ethernet/pensando/ionic/ionic_aux.h   |   10 +
.../ethernet/pensando/ionic/ionic_bus_pci.c   |    7 +
.../net/ethernet/pensando/ionic/ionic_dev.c   |  270 +-
.../net/ethernet/pensando/ionic/ionic_dev.h   |   28 +-
.../net/ethernet/pensando/ionic/ionic_if.h    |  118 +-
.../net/ethernet/pensando/ionic/ionic_lif.c   |   47 +-
.../net/ethernet/pensando/ionic/ionic_lif.h   |    3 +
.../net/ethernet/pensando/ionic/ionic_main.c  |    4 +-
include/uapi/rdma/ib_user_ioctl_verbs.h       |    1 +
include/uapi/rdma/ionic-abi.h                 |  115 +
36 files changed, 9421 insertions(+), 64 deletions(-)
create mode 100644 Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
create mode 100644 drivers/infiniband/hw/ionic/Kconfig
create mode 100644 drivers/infiniband/hw/ionic/Makefile
create mode 100644 drivers/infiniband/hw/ionic/ionic_admin.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_controlpath.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_datapath.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_fw.h
create mode 100644 drivers/infiniband/hw/ionic/ionic_hw_stats.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_ibdev.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_ibdev.h
create mode 100644 drivers/infiniband/hw/ionic/ionic_lif_cfg.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_lif_cfg.h
create mode 100644 drivers/infiniband/hw/ionic/ionic_pgtbl.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_queue.c
create mode 100644 drivers/infiniband/hw/ionic/ionic_queue.h
create mode 100644 drivers/infiniband/hw/ionic/ionic_res.h
create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_api.h
create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_aux.c
create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_aux.h
create mode 100644 include/uapi/rdma/ionic-abi.h
[PATCH v5 00/14] Introduce AMD Pensando RDMA driver
Posted by Abhijit Gangurde 1 month, 3 weeks ago
This patchset introduces an RDMA driver for the AMD Pensando adapter.
An AMD Pensando Ethernet device with RDMA capabilities extends its
functionality through an auxiliary device.

The first 6 patches of the series modify the ionic Ethernet driver
to support the RDMA driver. The ionic RDMA driver implementation is
split into the remaining 8 patches.

The user-mode of the driver is being reviewed at:
https://github.com/linux-rdma/rdma-core/pull/1620

v4->v5
  - Updated documentation
  - Fixed error path in aux device creation
v3->v4
  - Used xa lock instead of rcu lock for qp and cq access
  - Removed empty labels
  - Improved comments
  - Removed unwanted warning and error prints.
v2->v3
  - Used IDA for resource id allocation
  - Fixed lockdep warning
  - Removed rw locks around xarrays
  - Used rdma_user_mmap_* APIs for mappings
  - Removed uverbs_cmd_mask
  - Registered main ib ops at once
  - Fixed sparse checks
  - Fixed make htmldocs error
v1->v2
  - Removed netdev references from ionic RDMA driver
  - Moved to ionic_lif* instead of void* to convey information between
    aux devices and drivers

Abhijit Gangurde (14):
  net: ionic: Create an auxiliary device for rdma driver
  net: ionic: Update LIF identity with additional RDMA capabilities
  net: ionic: Export the APIs from net driver to support device commands
  net: ionic: Provide RDMA reset support for the RDMA driver
  net: ionic: Provide interrupt allocation support for the RDMA driver
  net: ionic: Provide doorbell and CMB region information
  RDMA: Add IONIC to rdma_driver_id definition
  RDMA/ionic: Register auxiliary module for ionic ethernet adapter
  RDMA/ionic: Create device queues to support admin operations
  RDMA/ionic: Register device ops for control path
  RDMA/ionic: Register device ops for datapath
  RDMA/ionic: Register device ops for miscellaneous functionality
  RDMA/ionic: Implement device stats ops
  RDMA/ionic: Add Makefile/Kconfig to kernel build environment

 .../device_drivers/ethernet/index.rst         |    1 +
 .../ethernet/pensando/ionic.rst               |   10 +
 .../ethernet/pensando/ionic_rdma.rst          |   52 +
 MAINTAINERS                                   |    9 +
 drivers/infiniband/Kconfig                    |    1 +
 drivers/infiniband/hw/Makefile                |    1 +
 drivers/infiniband/hw/ionic/Kconfig           |   15 +
 drivers/infiniband/hw/ionic/Makefile          |    9 +
 drivers/infiniband/hw/ionic/ionic_admin.c     | 1228 ++++++++
 .../infiniband/hw/ionic/ionic_controlpath.c   | 2679 +++++++++++++++++
 drivers/infiniband/hw/ionic/ionic_datapath.c  | 1392 +++++++++
 drivers/infiniband/hw/ionic/ionic_fw.h        | 1029 +++++++
 drivers/infiniband/hw/ionic/ionic_hw_stats.c  |  484 +++
 drivers/infiniband/hw/ionic/ionic_ibdev.c     |  452 +++
 drivers/infiniband/hw/ionic/ionic_ibdev.h     |  517 ++++
 drivers/infiniband/hw/ionic/ionic_lif_cfg.c   |  111 +
 drivers/infiniband/hw/ionic/ionic_lif_cfg.h   |   66 +
 drivers/infiniband/hw/ionic/ionic_pgtbl.c     |  143 +
 drivers/infiniband/hw/ionic/ionic_queue.c     |   52 +
 drivers/infiniband/hw/ionic/ionic_queue.h     |  234 ++
 drivers/infiniband/hw/ionic/ionic_res.h       |  154 +
 drivers/net/ethernet/pensando/Kconfig         |    1 +
 drivers/net/ethernet/pensando/ionic/Makefile  |    2 +-
 drivers/net/ethernet/pensando/ionic/ionic.h   |    7 -
 .../net/ethernet/pensando/ionic/ionic_api.h   |  131 +
 .../net/ethernet/pensando/ionic/ionic_aux.c   |  102 +
 .../net/ethernet/pensando/ionic/ionic_aux.h   |   10 +
 .../ethernet/pensando/ionic/ionic_bus_pci.c   |    7 +
 .../net/ethernet/pensando/ionic/ionic_dev.c   |  270 +-
 .../net/ethernet/pensando/ionic/ionic_dev.h   |   28 +-
 .../net/ethernet/pensando/ionic/ionic_if.h    |  118 +-
 .../net/ethernet/pensando/ionic/ionic_lif.c   |   47 +-
 .../net/ethernet/pensando/ionic/ionic_lif.h   |    3 +
 .../net/ethernet/pensando/ionic/ionic_main.c  |    4 +-
 include/uapi/rdma/ib_user_ioctl_verbs.h       |    1 +
 include/uapi/rdma/ionic-abi.h                 |  115 +
 36 files changed, 9421 insertions(+), 64 deletions(-)
 create mode 100644 Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
 create mode 100644 drivers/infiniband/hw/ionic/Kconfig
 create mode 100644 drivers/infiniband/hw/ionic/Makefile
 create mode 100644 drivers/infiniband/hw/ionic/ionic_admin.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_controlpath.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_datapath.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_fw.h
 create mode 100644 drivers/infiniband/hw/ionic/ionic_hw_stats.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_ibdev.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_ibdev.h
 create mode 100644 drivers/infiniband/hw/ionic/ionic_lif_cfg.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_lif_cfg.h
 create mode 100644 drivers/infiniband/hw/ionic/ionic_pgtbl.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_queue.c
 create mode 100644 drivers/infiniband/hw/ionic/ionic_queue.h
 create mode 100644 drivers/infiniband/hw/ionic/ionic_res.h
 create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_api.h
 create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_aux.c
 create mode 100644 drivers/net/ethernet/pensando/ionic/ionic_aux.h
 create mode 100644 include/uapi/rdma/ionic-abi.h


base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
-- 
2.43.0
Re: [PATCH v5 00/14] Introduce AMD Pensando RDMA driver
Posted by Jason Gunthorpe 1 month, 1 week ago
On Thu, Aug 14, 2025 at 11:08:46AM +0530, Abhijit Gangurde wrote:
> This patchset introduces an RDMA driver for the AMD Pensando adapter.
> An AMD Pensando Ethernet device with RDMA capabilities extends its
> functionality through an auxiliary device.

It looks in pretty good enough shape now, what is your plan for
merging this?  Will you do a shared branch or do you just want to have
it all go through rdma? Is the netdev side ack'd?

Jason
Re: [PATCH v5 00/14] Introduce AMD Pensando RDMA driver
Posted by Abhijit Gangurde 1 month ago
On 8/26/25 21:22, Jason Gunthorpe wrote:
> On Thu, Aug 14, 2025 at 11:08:46AM +0530, Abhijit Gangurde wrote:
>> This patchset introduces an RDMA driver for the AMD Pensando adapter.
>> An AMD Pensando Ethernet device with RDMA capabilities extends its
>> functionality through an auxiliary device.
> It looks in pretty good enough shape now, what is your plan for
> merging this?  Will you do a shared branch or do you just want to have
> it all go through rdma? Is the netdev side ack'd?
>
> Jason

I'm happy for the patches to go through the RDMA tree.

Jakub, thank you for looking over the Ethernet side 
earlier(https://lore.kernel.org/linux-rdma/20250625144433.351c7be4@kernel.org/#t). 
Are you good with them being merged via the RDMA tree? For context, the 
ethernet patches are getting applied on net-next, and there are no 
further ethernet patches planned for this release.

Abhijit
Re: [PATCH v5 00/14] Introduce AMD Pensando RDMA driver
Posted by Jason Gunthorpe 1 month ago
On Mon, Sep 01, 2025 at 11:57:21AM +0530, Abhijit Gangurde wrote:
> 
> On 8/26/25 21:22, Jason Gunthorpe wrote:
> > On Thu, Aug 14, 2025 at 11:08:46AM +0530, Abhijit Gangurde wrote:
> > > This patchset introduces an RDMA driver for the AMD Pensando adapter.
> > > An AMD Pensando Ethernet device with RDMA capabilities extends its
> > > functionality through an auxiliary device.
> > It looks in pretty good enough shape now, what is your plan for
> > merging this?  Will you do a shared branch or do you just want to have
> > it all go through rdma? Is the netdev side ack'd?
> > 
> > Jason
> 
> I'm happy for the patches to go through the RDMA tree.

You will respin it with the little changes then?

Thanks,
Jason
Re: [PATCH v5 00/14] Introduce AMD Pensando RDMA driver
Posted by Abhijit Gangurde 1 month ago
On 9/2/25 19:26, Jason Gunthorpe wrote:
> On Mon, Sep 01, 2025 at 11:57:21AM +0530, Abhijit Gangurde wrote:
>> On 8/26/25 21:22, Jason Gunthorpe wrote:
>>> On Thu, Aug 14, 2025 at 11:08:46AM +0530, Abhijit Gangurde wrote:
>>>> This patchset introduces an RDMA driver for the AMD Pensando adapter.
>>>> An AMD Pensando Ethernet device with RDMA capabilities extends its
>>>> functionality through an auxiliary device.
>>> It looks in pretty good enough shape now, what is your plan for
>>> merging this?  Will you do a shared branch or do you just want to have
>>> it all go through rdma? Is the netdev side ack'd?
>>>
>>> Jason
>> I'm happy for the patches to go through the RDMA tree.
> You will respin it with the little changes then?
>
> Thanks,
> Jason

I'll send v6 with the changes.

Thanks,
Abhijit
Re: [PATCH v5 00/14] Introduce AMD Pensando RDMA driver
Posted by Jakub Kicinski 1 month ago
On Mon, 1 Sep 2025 11:57:21 +0530 Abhijit Gangurde wrote:
> Jakub, thank you for looking over the Ethernet side 
> earlier(https://lore.kernel.org/linux-rdma/20250625144433.351c7be4@kernel.org/#t). 
> Are you good with them being merged via the RDMA tree? For context, the 
> ethernet patches are getting applied on net-next, and there are no 
> further ethernet patches planned for this release.

Go ahead.