public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] Please pull fwctl subsystem changes
@ 2025-03-24 15:13 Jason Gunthorpe
  2025-03-26 17:13 ` Jakub Kicinski
  2025-03-29 18:24 ` pr-tracker-bot
  0 siblings, 2 replies; 7+ messages in thread
From: Jason Gunthorpe @ 2025-03-24 15:13 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Dave Jiang, Jason Gunthorpe, Saeed Mahameed, Jonathan Cameron,
	Dan Williams, Shannon Nelson, linux-rdma, netdev, linux-cxl,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 8820 bytes --]

Hi Linus,

Here is the pull request for fwctl, this is following what was agreed
at the Maintainer Summit in Austria.

To refresh what it is about please refer to the cover letter and LWN coverage:

 https://lore.kernel.org/all/0-v5-642aa0c94070+4447f-fwctl_jgg@nvidia.com/
 https://lwn.net/Articles/990802/

This PR has three drivers for CXL, mlx5 and pds to launch the
subsystem. I have interest and soft commitments for maybe as many as 7
drivers in the forseeable future.

There is a shared branch in here with CXL, but we still have a trivial
conflict to resolve:

diff --cc tools/testing/cxl/test/mem.c
index 9495dbcc03a7,0ceba8aa6eec..000000000000
--- a/tools/testing/cxl/test/mem.c
+++ b/tools/testing/cxl/test/mem.c
@@@ -177,7 -169,7 +181,8 @@@ struct cxl_mockmem_data
        u8 event_buf[SZ_4K];
        u64 timestamp;
        unsigned long sanitize_timeout;
 +      struct vendor_test_feat test_feat;
+       u8 shutdown_state;
  };

Thanks,
Jason

The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:

  Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus-fwctl

for you to fetch changes up to 403257070602fcd1512af6f24cecdb23da8a914a:

  pds_fwctl: add Documentation entries (2025-03-21 20:57:55 -0300)

----------------------------------------------------------------
fwctl first pull request

fwctl is a new subsystem intended to bring some common rules and order to
the growing pattern of exposing a secure FW interface directly to
userspace. Unlike existing places like RDMA/DRM/VFIO/uacce that are
exposing a device for datapath operations fwctl is focused on debugging,
configuration and provisioning of the device. It will not have the
necessary features like interrupt delivery to support a datapath.

This concept is similar to the long standing practice in the "HW" RAID
space of having a device specific misc device to manage the RAID
controller FW. fwctl generalizes this notion of a companion debug and
management interface that goes along with a dataplane implemented in an
appropriate subsystem.

There have been three LWN articles written discussing various aspects of
this:

 https://lwn.net/Articles/955001/
 https://lwn.net/Articles/969383/
 https://lwn.net/Articles/990802/

This pull requests includes three drivers to launch the subsystem:

 - CXL provides a vendor scheme for executing commands and a way to learn
   the 'command effects' (ie the security properties) of such
   commands. The fwctl driver allows access to these mechanism within the
   fwctl security model

 - mlx5 is family of networking products, the driver supports all current
   Mellanox HW still receiving FW feature updates. This includes RDMA
   multiprotocol NICs like ConnectX and the Bluefield family of Smart
   NICs.

 - AMD/Pensando Distributed Services card is a multi protocol Smart NIC
   with a multi PCI function design. fwctl works on the management PCI
   function following a 'command effects' model similar to CXL.

----------------------------------------------------------------
Brett Creeley (1):
      pds_fwctl: add rpc and query support

Dave Jiang (14):
      cxl: Refactor user ioctl command path from mds to mailbox
      cxl: Enumerate feature commands
      cxl: Add Get Supported Features command for kernel usage
      cxl/test: Add Get Supported Features mailbox command support
      cxl: Setup exclusive CXL features that are reserved for the kernel
      cxl: Add FWCTL support to CXL
      cxl: Move cxl feature command structs to user header
      cxl: Add support for fwctl RPC command to enable CXL feature commands
      cxl: Add support to handle user feature commands for get feature
      cxl: Add support to handle user feature commands for set feature
      cxl/test: Add Get Feature support to cxl_test
      cxl/test: Add Set Feature support to cxl_test
      fwctl/cxl: Add documentation to FWCTL CXL
      cxl: Fixup kdoc issues for include/cxl/features.h

Jason Gunthorpe (7):
      fwctl: Add basic structure for a class subsystem with a cdev
      fwctl: Basic ioctl dispatch for the character device
      fwctl: FWCTL_INFO to return basic information about the device
      taint: Add TAINT_FWCTL
      fwctl: FWCTL_RPC to execute a Remote Procedure Call to device firmware
      fwctl: Add documentation
      Merge branch 'for-6.15/features' into fwctl

Saeed Mahameed (2):
      fwctl/mlx5: Support for communicating with mlx5 fw
      mlx5: Create an auxiliary device for fwctl_mlx5

Shannon Nelson (5):
      pds_core: make pdsc_auxbus_dev_del() void
      pds_core: specify auxiliary_device to be created
      pds_core: add new fwctl auxiliary_device
      pds_fwctl: initial driver framework
      pds_fwctl: add Documentation entries

Shiju Jose (2):
      cxl/mbox: Add GET_FEATURE mailbox command
      cxl/mbox: Add SET_FEATURE mailbox command

 Documentation/admin-guide/tainted-kernels.rst      |   5 +
 Documentation/userspace-api/fwctl/fwctl-cxl.rst    | 142 +++++
 Documentation/userspace-api/fwctl/fwctl.rst        | 286 +++++++++
 Documentation/userspace-api/fwctl/index.rst        |  14 +
 Documentation/userspace-api/fwctl/pds_fwctl.rst    |  46 ++
 Documentation/userspace-api/index.rst              |   1 +
 Documentation/userspace-api/ioctl/ioctl-number.rst |   1 +
 MAINTAINERS                                        |  26 +
 drivers/Kconfig                                    |   2 +
 drivers/Makefile                                   |   1 +
 drivers/cxl/Kconfig                                |  12 +
 drivers/cxl/core/Makefile                          |   1 +
 drivers/cxl/core/core.h                            |  17 +-
 drivers/cxl/core/features.c                        | 708 +++++++++++++++++++++
 drivers/cxl/core/mbox.c                            | 124 ++--
 drivers/cxl/core/memdev.c                          |  22 +-
 drivers/cxl/cxlmem.h                               |  47 +-
 drivers/cxl/pci.c                                  |   8 +
 drivers/fwctl/Kconfig                              |  33 +
 drivers/fwctl/Makefile                             |   6 +
 drivers/fwctl/main.c                               | 421 ++++++++++++
 drivers/fwctl/mlx5/Makefile                        |   4 +
 drivers/fwctl/mlx5/main.c                          | 411 ++++++++++++
 drivers/fwctl/pds/Makefile                         |   4 +
 drivers/fwctl/pds/main.c                           | 536 ++++++++++++++++
 drivers/net/ethernet/amd/pds_core/auxbus.c         |  44 +-
 drivers/net/ethernet/amd/pds_core/core.c           |   7 +
 drivers/net/ethernet/amd/pds_core/core.h           |   8 +-
 drivers/net/ethernet/amd/pds_core/devlink.c        |   7 +-
 drivers/net/ethernet/amd/pds_core/main.c           |  25 +-
 drivers/net/ethernet/mellanox/mlx5/core/dev.c      |   9 +
 include/cxl/features.h                             |  87 +++
 include/cxl/mailbox.h                              |  44 +-
 include/linux/fwctl.h                              | 135 ++++
 include/linux/panic.h                              |   3 +-
 include/linux/pds/pds_adminq.h                     | 277 ++++++++
 include/linux/pds/pds_common.h                     |   2 +
 include/uapi/cxl/features.h                        | 170 +++++
 include/uapi/fwctl/cxl.h                           |  56 ++
 include/uapi/fwctl/fwctl.h                         | 141 ++++
 include/uapi/fwctl/mlx5.h                          |  36 ++
 include/uapi/fwctl/pds.h                           |  62 ++
 kernel/panic.c                                     |   1 +
 tools/debugging/kernel-chktaint                    |   8 +
 tools/testing/cxl/Kbuild                           |   1 +
 tools/testing/cxl/test/mem.c                       | 185 ++++++
 46 files changed, 4054 insertions(+), 132 deletions(-)
 create mode 100644 Documentation/userspace-api/fwctl/fwctl-cxl.rst
 create mode 100644 Documentation/userspace-api/fwctl/fwctl.rst
 create mode 100644 Documentation/userspace-api/fwctl/index.rst
 create mode 100644 Documentation/userspace-api/fwctl/pds_fwctl.rst
 create mode 100644 drivers/cxl/core/features.c
 create mode 100644 drivers/fwctl/Kconfig
 create mode 100644 drivers/fwctl/Makefile
 create mode 100644 drivers/fwctl/main.c
 create mode 100644 drivers/fwctl/mlx5/Makefile
 create mode 100644 drivers/fwctl/mlx5/main.c
 create mode 100644 drivers/fwctl/pds/Makefile
 create mode 100644 drivers/fwctl/pds/main.c
 create mode 100644 include/cxl/features.h
 create mode 100644 include/linux/fwctl.h
 create mode 100644 include/uapi/cxl/features.h
 create mode 100644 include/uapi/fwctl/cxl.h
 create mode 100644 include/uapi/fwctl/fwctl.h
 create mode 100644 include/uapi/fwctl/mlx5.h
 create mode 100644 include/uapi/fwctl/pds.h

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] Please pull fwctl subsystem changes
  2025-03-24 15:13 [GIT PULL] Please pull fwctl " Jason Gunthorpe
@ 2025-03-26 17:13 ` Jakub Kicinski
  2025-03-29 18:24 ` pr-tracker-bot
  1 sibling, 0 replies; 7+ messages in thread
From: Jakub Kicinski @ 2025-03-26 17:13 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Jason Gunthorpe, Dave Jiang, Saeed Mahameed, Jonathan Cameron,
	Dan Williams, Shannon Nelson, linux-rdma, netdev, linux-cxl,
	linux-kernel

On Mon, 24 Mar 2025 12:13:57 -0300 Jason Gunthorpe wrote:
> fwctl is a new subsystem intended to bring some common rules and order to
> the growing pattern of exposing a secure FW interface directly to
> userspace. Unlike existing places like RDMA/DRM/VFIO/uacce that are
> exposing a device for datapath operations fwctl is focused on debugging,
> configuration and provisioning of the device. It will not have the
> necessary features like interrupt delivery to support a datapath.
> 
> This concept is similar to the long standing practice in the "HW" RAID
> space of having a device specific misc device to manage the RAID
> controller FW. fwctl generalizes this notion of a companion debug and
> management interface that goes along with a dataplane implemented in an
> appropriate subsystem.

This breaks netdev's long standing policy against exposing proprietary
interfaces (proprietary user space <> proprietary FW). I've been asking
all this time for the interface to be disabled if the device is used
purely as a netdev. Hopefully retaining the benefits of community
standards for majority of users who only use netdev. This has not been
done. 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] Please pull fwctl subsystem changes
  2025-03-24 15:13 [GIT PULL] Please pull fwctl " Jason Gunthorpe
  2025-03-26 17:13 ` Jakub Kicinski
@ 2025-03-29 18:24 ` pr-tracker-bot
  1 sibling, 0 replies; 7+ messages in thread
From: pr-tracker-bot @ 2025-03-29 18:24 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Linus Torvalds, Dave Jiang, Jason Gunthorpe, Saeed Mahameed,
	Jonathan Cameron, Dan Williams, Shannon Nelson, linux-rdma,
	netdev, linux-cxl, linux-kernel

The pull request you sent on Mon, 24 Mar 2025 12:13:57 -0300:

> git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus-fwctl

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/0ccff074d6aa45835ccb7c0e4a995a32e4c90b5a

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [GIT PULL] Please pull FWCTL subsystem changes
@ 2025-04-17 12:36 Jason Gunthorpe
  2025-04-17 18:57 ` pr-tracker-bot
  0 siblings, 1 reply; 7+ messages in thread
From: Jason Gunthorpe @ 2025-04-17 12:36 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-rdma, linux-cxl, linux-kernel, Dave Jiang, Saeed Mahameed

[-- Attachment #1: Type: text/plain, Size: 1167 bytes --]

Hi Linus,

A few small updates, thanks

Jason

The following changes since commit 0af2f6be1b4281385b618cb86ad946eded089ac8:

  Linux 6.15-rc1 (2025-04-06 13:11:33 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus-fwctl

for you to fetch changes up to c92ae5d4f53ebf9c32ace69c1f89a47e8714d18b:

  fwctl: Fix repeated device word in log message (2025-04-11 20:47:45 -0300)

----------------------------------------------------------------
fwctl 6.15 first rc pull request

Three small changes from further build testing

- Don't rely on the userspace uuid.h for the uapi header

- Fix sparse warnings in pds

- Typo in log message

----------------------------------------------------------------
Dan Williams (1):
      fwctl/cxl: Fix uuid_t usage in uapi

Shannon Nelson (2):
      pds_fwctl: Fix type and endian complaints
      fwctl: Fix repeated device word in log message

 drivers/fwctl/main.c        |  2 +-
 drivers/fwctl/pds/main.c    | 33 ++++++++++++++++++++-------------
 include/uapi/cxl/features.h | 21 +++++++++++++++------
 3 files changed, 36 insertions(+), 20 deletions(-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] Please pull FWCTL subsystem changes
  2025-04-17 12:36 Jason Gunthorpe
@ 2025-04-17 18:57 ` pr-tracker-bot
  0 siblings, 0 replies; 7+ messages in thread
From: pr-tracker-bot @ 2025-04-17 18:57 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Linus Torvalds, linux-rdma, linux-cxl, linux-kernel, Dave Jiang,
	Saeed Mahameed

The pull request you sent on Thu, 17 Apr 2025 09:36:10 -0300:

> git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus-fwctl

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/e2516abf1c88212d98af889070123469c28ca2fe

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [GIT PULL] Please pull FWCTL subsystem changes
@ 2025-10-01 19:35 Jason Gunthorpe
  2025-10-04  1:41 ` pr-tracker-bot
  0 siblings, 1 reply; 7+ messages in thread
From: Jason Gunthorpe @ 2025-10-01 19:35 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-rdma, linux-cxl, linux-kernel, Dave Jiang, Saeed Mahameed

[-- Attachment #1: Type: text/plain, Size: 1638 bytes --]

Hi Linus,

Small update for fwctl.

There is a driver for broadcom ethernet on the list now that will
likely come in the next cycle.

Thanks,
Jason

The following changes since commit c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9:

  Linux 6.17-rc2 (2025-08-17 15:22:10 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/fwctl/fwctl.git tags/for-linus-fwctl

for you to fetch changes up to 479bec4cb39a1bfb2e5d3e3959d660f61399cad4:

  pds_fwctl: Replace kzalloc + copy_from_user with memdup_user in pdsfc_fw_rpc (2025-09-22 10:33:10 -0300)

----------------------------------------------------------------
fwctl 6.17 merge window rc pull request

- Fix mismtached kvalloc() kfree() on error paths

- Remove NOP dev_err_probe(), shouldn't print on error paths anyhow

- For mlx5 permit:
    MLX5_CMD_OP_MODIFY_CONG_STATUS
    MLX5_CMD_OP_QUERY_ADJACENT_FUNCTIONS_ID
    MLX5_CMD_OP_DELEGATE_VHCA_MANAGEMENT
    MLX5_CMD_OP_QUERY_DELEGATED_VHCA

- Use memdup_user in pds

----------------------------------------------------------------
Akhilesh Patil (1):
      fwctl/mlx5: Fix memory alloc/free in mlx5ctl_fw_rpc()

Avihai Horon (1):
      fwctl/mlx5: Allow MODIFY_CONG_STATUS command

Liao Yuanhong (1):
      pds_fwctl: Remove the use of dev_err_probe()

Saeed Mahameed (1):
      fwctl/mlx5: Add Adjacent function query commands and their scope

Thorsten Blum (1):
      pds_fwctl: Replace kzalloc + copy_from_user with memdup_user in pdsfc_fw_rpc

 drivers/fwctl/mlx5/main.c |  9 ++++++++-
 drivers/fwctl/pds/main.c  | 18 +++++-------------
 2 files changed, 13 insertions(+), 14 deletions(-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [GIT PULL] Please pull FWCTL subsystem changes
  2025-10-01 19:35 [GIT PULL] Please pull FWCTL subsystem changes Jason Gunthorpe
@ 2025-10-04  1:41 ` pr-tracker-bot
  0 siblings, 0 replies; 7+ messages in thread
From: pr-tracker-bot @ 2025-10-04  1:41 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Linus Torvalds, linux-rdma, linux-cxl, linux-kernel, Dave Jiang,
	Saeed Mahameed

The pull request you sent on Wed, 1 Oct 2025 16:35:34 -0300:

> git://git.kernel.org/pub/scm/linux/kernel/git/fwctl/fwctl.git tags/for-linus-fwctl

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/8a44189f204695637be0373c8ea8e3ea4c1a1926

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-10-04  1:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-01 19:35 [GIT PULL] Please pull FWCTL subsystem changes Jason Gunthorpe
2025-10-04  1:41 ` pr-tracker-bot
  -- strict thread matches above, loose matches on Subject: below --
2025-04-17 12:36 Jason Gunthorpe
2025-04-17 18:57 ` pr-tracker-bot
2025-03-24 15:13 [GIT PULL] Please pull fwctl " Jason Gunthorpe
2025-03-26 17:13 ` Jakub Kicinski
2025-03-29 18:24 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox