mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Abhijit Gangurde <abhijit.gangurde@amd.com>
To: <shannon.nelson@amd.com>, <brett.creeley@amd.com>,
	<davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,
	<pabeni@redhat.com>, <corbet@lwn.net>, <jgg@ziepe.ca>,
	<leon@kernel.org>, <andrew+netdev@lunn.ch>
Cc: <allen.hubbe@amd.com>, <nikhil.agarwal@amd.com>,
	<linux-rdma@vger.kernel.org>, <netdev@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Abhijit Gangurde <abhijit.gangurde@amd.com>
Subject: [PATCH v4 00/14] Introduce AMD Pensando RDMA driver
Date: Wed, 23 Jul 2025 23:01:35 +0530	[thread overview]
Message-ID: <20250723173149.2568776-1-abhijit.gangurde@amd.com> (raw)

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

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_rdma.rst          |   43 +
 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   | 2671 +++++++++++++++++
 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     |  515 ++++
 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   |  117 +
 .../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 +
 35 files changed, 9407 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: e1bed9a94da86a7c01b985c2e9a030207269cbc7
-- 
2.43.0


             reply	other threads:[~2025-07-23 17:32 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-23 17:31 Abhijit Gangurde [this message]
2025-07-23 17:31 ` [PATCH v4 01/14] net: ionic: Create an auxiliary device for rdma driver Abhijit Gangurde
2025-07-23 18:11   ` Shannon Nelson
2025-07-28 10:17     ` Abhijit Gangurde
2025-08-01 21:15   ` Christophe JAILLET
2025-08-06  8:14     ` Abhijit Gangurde
2025-08-09 10:58       ` Christophe JAILLET
2025-07-23 17:31 ` [PATCH v4 02/14] net: ionic: Update LIF identity with additional RDMA capabilities Abhijit Gangurde
2025-07-25 16:29   ` Simon Horman
2025-07-23 17:31 ` [PATCH v4 03/14] net: ionic: Export the APIs from net driver to support device commands Abhijit Gangurde
2025-07-25 16:41   ` Simon Horman
2025-08-01 17:00     ` Jason Gunthorpe
2025-08-01 20:21       ` Jakub Kicinski
2025-08-06  7:54         ` Abhijit Gangurde
2025-08-06 17:58           ` Leon Romanovsky
2025-07-23 17:31 ` [PATCH v4 04/14] net: ionic: Provide RDMA reset support for the RDMA driver Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 05/14] net: ionic: Provide interrupt allocation " Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 06/14] net: ionic: Provide doorbell and CMB region information Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 07/14] RDMA: Add IONIC to rdma_driver_id definition Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 08/14] RDMA/ionic: Register auxiliary module for ionic ethernet adapter Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 09/14] RDMA/ionic: Create device queues to support admin operations Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 10/14] RDMA/ionic: Register device ops for control path Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 11/14] RDMA/ionic: Register device ops for datapath Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 12/14] RDMA/ionic: Register device ops for miscellaneous functionality Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 13/14] RDMA/ionic: Implement device stats ops Abhijit Gangurde
2025-07-23 17:31 ` [PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment Abhijit Gangurde
2025-07-23 18:10   ` Randy Dunlap
2025-07-30  5:12     ` Abhijit Gangurde
2025-07-23 18:13   ` Shannon Nelson
2025-07-28 10:25     ` Abhijit Gangurde
2025-07-24 15:49   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250723173149.2568776-1-abhijit.gangurde@amd.com \
    --to=abhijit.gangurde@amd.com \
    --cc=allen.hubbe@amd.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=brett.creeley@amd.com \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jgg@ziepe.ca \
    --cc=kuba@kernel.org \
    --cc=leon@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nikhil.agarwal@amd.com \
    --cc=pabeni@redhat.com \
    --cc=shannon.nelson@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®