Linux CXL
 help / color / mirror / Atom feed
* [PATCH v1 0/19] cxl: Add CXL feature commands support via fwctl
@ 2025-01-22 23:50 Dave Jiang
  2025-01-22 23:50 ` [PATCH v1 01/19] cxl: Refactor user ioctl command path from mds to mailbox Dave Jiang
                   ` (19 more replies)
  0 siblings, 20 replies; 72+ messages in thread
From: Dave Jiang @ 2025-01-22 23:50 UTC (permalink / raw)
  To: linux-cxl
  Cc: dan.j.williams, ira.weiny, vishal.l.verma, alison.schofield,
	Jonathan.Cameron, dave, jgg, shiju.jose

v1:
- Create a CXL features driver to handle all feature command related bits
  including FWCTL support. (Dan)
- Tested against CXL CLI unit tests for FWCTL.
- See individual patches for detailed changes from RFC v2.

RFC v2:
- Dropped 1/13 and 2/13 from previous version. Merged upstream already.
- Combined changes from Shiju for "get supported features"
- Addressed comments from Jonathan and Jason
- See specific changes in individual patch revision history
- Added hardware command info to FWCTL
- Added filtering to set feature command
- Added documentation

This series add support for CXL feature commands using the FWCTL framework [1].
The code has been tested with CXL CLI unit tests for FWCTL.

Patches 1-7 are shared with EDAC series [1] and there will be an immuable branch
once accepted post review.

A CXL features driver is created to handle all CXL mailbox feature commands related
functionalities as suggested by Dan. The 3 mailbox commands "Get Supported Features",
"Get Feature", and "Set Feature" are implemented. The "get" commands under the
FWCTL_RPC_CONFIGURATION policy, the "set" command checks the policy depending
on the effect of the feature. All mailbox commands for CXL provides an effects
table that describes the effects of a command when performed on the device.
For CXL features, there is also an effects field that describes the effects
a feature write operation has on the device per feature. The security policy
is checked against this feature specific effects field. Looking for discussion
on matching the CXL spec defined effects with the FWCTL security policy.

The code is based off of v3 of FWCTL series [2] posted by Jason and rebased on top of
v6.13-rc5.

[1]: https://lore.kernel.org/linux-cxl/20250106121017.1620-1-shiju.jose@huawei.com/T/#t
[2]: https://lore.kernel.org/linux-cxl/0-v3-960f17f90f17+516-fwctl_jgg@nvidia.com/#r
---

Dave Jiang (17):
      cxl: Refactor user ioctl command path from mds to mailbox
      cxl: Add skeletal features driver
      cxl: Enumerate feature commands
      cxl: Add Get Supported Features command for kernel usage
      cxl: Add features driver attribute to emit number of features supported
      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 the CXL features driver
      cxl: Add support for get driver information
      cxl: Move cxl_mem.h under uapi to cxl exclusive directory
      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

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

 Documentation/userspace-api/fwctl/fwctl-cxl.rst |  81 +++++++
 Documentation/userspace-api/fwctl/index.rst     |   1 +
 drivers/cxl/Kconfig                             |   9 +
 drivers/cxl/Makefile                            |   3 +
 drivers/cxl/core/Makefile                       |   1 +
 drivers/cxl/core/core.h                         |   7 +-
 drivers/cxl/core/features.c                     | 287 +++++++++++++++++++++++
 drivers/cxl/core/mbox.c                         | 143 ++++++++----
 drivers/cxl/core/memdev.c                       |  22 +-
 drivers/cxl/core/port.c                         |   3 +
 drivers/cxl/cxl.h                               |   3 +
 drivers/cxl/cxlmem.h                            |  45 +---
 drivers/cxl/features.c                          | 558 ++++++++++++++++++++++++++++++++++++++++++++
 drivers/cxl/pci.c                               |  19 ++
 include/cxl/features.h                          |  75 ++++++
 include/cxl/mailbox.h                           |  46 +++-
 include/uapi/cxl/features.h                     | 135 +++++++++++
 include/uapi/{linux/cxl_mem.h => cxl/mem.h}     |   0
 include/uapi/fwctl/cxl.h                        |  60 +++++
 include/uapi/fwctl/fwctl.h                      |   1 +
 tools/testing/cxl/Kbuild                        |   1 +
 tools/testing/cxl/test/mem.c                    | 194 +++++++++++++++
 22 files changed, 1597 insertions(+), 97 deletions(-)

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

end of thread, other threads:[~2025-02-05 18:03 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-22 23:50 [PATCH v1 0/19] cxl: Add CXL feature commands support via fwctl Dave Jiang
2025-01-22 23:50 ` [PATCH v1 01/19] cxl: Refactor user ioctl command path from mds to mailbox Dave Jiang
2025-01-22 23:50 ` [PATCH v1 02/19] cxl: Add skeletal features driver Dave Jiang
2025-01-23  3:59   ` Dan Williams
2025-01-23 15:49     ` Dave Jiang
2025-01-23 19:57       ` Dan Williams
2025-01-23 17:24   ` Jonathan Cameron
2025-01-22 23:50 ` [PATCH v1 03/19] cxl: Enumerate feature commands Dave Jiang
2025-01-23 17:33   ` Jonathan Cameron
2025-01-23 23:55   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 04/19] cxl: Add Get Supported Features command for kernel usage Dave Jiang
2025-01-23 17:43   ` Jonathan Cameron
2025-01-24  0:30   ` Dan Williams
2025-01-24 15:01     ` Jason Gunthorpe
2025-01-27 11:10     ` Jonathan Cameron
2025-01-28  0:54       ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 05/19] cxl: Add features driver attribute to emit number of features supported Dave Jiang
2025-01-23 17:44   ` Jonathan Cameron
2025-01-24  0:35   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 06/19] cxl/test: Add Get Supported Features mailbox command support Dave Jiang
2025-01-23 17:47   ` Jonathan Cameron
2025-01-24  0:42   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 07/19] cxl/mbox: Add GET_FEATURE mailbox command Dave Jiang
2025-01-23 17:50   ` Jonathan Cameron
2025-01-24 22:58   ` Dan Williams
2025-01-29  0:14     ` Dave Jiang
2025-01-22 23:50 ` [PATCH v1 08/19] cxl/mbox: Add SET_FEATURE " Dave Jiang
2025-01-23 17:52   ` Jonathan Cameron
2025-01-24 23:01   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 09/19] cxl: Setup exclusive CXL features that are reserved for the kernel Dave Jiang
2025-01-23 17:59   ` Jonathan Cameron
2025-01-24 23:05   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 10/19] cxl: Add FWCTL support to the CXL features driver Dave Jiang
2025-01-23 18:04   ` Jonathan Cameron
2025-01-23 18:53     ` Jason Gunthorpe
2025-01-24 23:14   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 11/19] cxl: Add support for get driver information Dave Jiang
2025-01-23 18:09   ` Jonathan Cameron
2025-01-25  1:26   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 12/19] cxl: Move cxl_mem.h under uapi to cxl exclusive directory Dave Jiang
2025-01-23 18:10   ` Jonathan Cameron
2025-01-25  1:29   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 13/19] cxl: Move cxl feature command structs to user header Dave Jiang
2025-01-23 18:12   ` Jonathan Cameron
2025-01-23 18:13     ` Jonathan Cameron
2025-01-25  1:34   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 14/19] cxl: Add support for fwctl RPC command to enable CXL feature commands Dave Jiang
2025-01-23 18:21   ` Jonathan Cameron
2025-01-25  2:08   ` Dan Williams
2025-01-27 10:51     ` Jonathan Cameron
2025-01-28  0:40       ` Dan Williams
2025-01-28 12:01         ` Jonathan Cameron
2025-01-28 15:55           ` Dave Jiang
2025-01-30 13:42             ` Jonathan Cameron
2025-02-04  1:43           ` Dan Williams
2025-02-04 10:04             ` Jonathan Cameron
2025-02-04 22:26               ` Dan Williams
2025-02-05 17:36                 ` Jonathan Cameron
2025-02-05 18:02                   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 15/19] cxl: Add support to handle user feature commands for get feature Dave Jiang
2025-01-23 18:25   ` Jonathan Cameron
2025-01-25  2:23   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 16/19] cxl: Add support to handle user feature commands for set feature Dave Jiang
2025-01-23 18:26   ` Jonathan Cameron
2025-01-25  2:29   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 17/19] cxl/test: Add Get Feature support to cxl_test Dave Jiang
2025-01-25  2:33   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 18/19] cxl/test: Add Set " Dave Jiang
2025-01-25  2:36   ` Dan Williams
2025-01-22 23:50 ` [PATCH v1 19/19] fwctl/cxl: Add documentation to FWCTL CXL Dave Jiang
2025-01-25  2:55   ` Dan Williams
2025-01-23 17:03 ` [PATCH v1 0/19] cxl: Add CXL feature commands support via fwctl Jonathan Cameron

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