Linux CXL
 help / color / mirror / Atom feed
From: "Cheatham, Benjamin" <benjamin.cheatham@amd.com>
To: <linux-cxl@vger.kernel.org>, <dave@stgolabs.net>,
	<jic23@kernel.org>, <dave.jiang@intel.com>,
	<alison.schofield@intel.com>
Cc: <linux-iommu@vger.kernel.org>, <terry.bowman@amd.com>,
	<robert.richter@amd.com>
Subject: Re: [PATCH 00/15] Add initial CXL.cache support
Date: Wed, 23 Sep 2026 12:35:52 -0500	[thread overview]
Message-ID: <706e59f6-985f-4cf2-a430-94e8a4079867@amd.com> (raw)
In-Reply-To: <20260923173342.5584-1-Benjamin.Cheatham@amd.com>

This set is RFC, I realized I forgot to mark the cover letter right as I hit send...

Sorry about that!

Thanks,
Ben

On 9/23/2026 12:33 PM, Ben Cheatham wrote:
> This series adds support for CXL.cache devices to the CXL subsystem. The
> set includes the following:
> 	- Updates to the existing CXL infrastructure to enable adding
> 	  CXL.cache devices (struct cxl_cachedev) to the driver
> 	- Support for cache id and snoop filter capabilities
> 	- IOMMU updates to allow CXL.cache ATS requests
> 	- Driver for struct cxl_cachedev devices that calls all of the above
> 
> The vast majority of the support is gated behind CONFIG_CXL_CACHE since
> CXL.cache devices aren't commonplace. This set is untested since I don't
> (currently) have access to a CXL.cache-capable device. Using multiple
> devices requires cache id capabilties, which may not be available
> depending on the platform (for AMD it's Venice or later).
> 
> There is a major missing piece in this set: There's no endpoint driver that
> adds a cxl_cachedev device, so this code is currently unused. I was
> planning on only sending this out once I had a device, but the plans for
> the device I was planning to support fell through and I didn't want to
> just sit on this.
> 
> Another thing that's missing is mapping host memory for CXL.cache use. I
> think the DMA API *should* just work after these changes, but it's not
> tested. I originally had the CXL core driver set up the DMA range for
> the endpoint driver, but it didn't end up making much sense. So, I've
> left the implementation for the (eventual) endpoint driver.
> 
> Thanks,
> Ben
> 
> base-commit: cee9395acd8043be0644b25c34bfa86623f2b935 (v7.3-rc1)
> 
> Ben Cheatham (15):
>   cxl/core: Add CXL.cache device struct
>   cxl/cache: Add cxl_cache driver
>   cxl/core: Change cxl_ep_load() to use device pointer parameter
>   cxl/core: Update devm_cxl_enumerate_ports() for cxl_cachedevs
>   cxl/port: Split endpoint port probe on device type
>   cxl/core: Update devm_cxl_add_endpoint() for cxl_cachedevs
>   cxl/cache: Verify port hierarchy has CXL.cache enabled
>   cxl/core, cache: Add Cache ID register probing and init
>   cxl/core: Add Cache ID verification
>   cxl/core: Add Cache ID allocation
>   cxl/core: Add support for HDM-D cache id programming
>   cxl/cache: Add snoop filter creation and set up
>   cxl/cache: Add snoop filter allocation
>   iommu, cxl: Configure IOMMU for CXL.cache
>   cxl/cache: Enable CXL.cache on successful probe
> 
>  drivers/cxl/Kconfig                 |  14 +
>  drivers/cxl/Makefile                |   6 +-
>  drivers/cxl/cache.c                 | 285 ++++++++++
>  drivers/cxl/core/Makefile           |   2 +
>  drivers/cxl/core/cache.c            | 851 ++++++++++++++++++++++++++++
>  drivers/cxl/core/cachedev.c         | 131 +++++
>  drivers/cxl/core/core.h             |   7 +
>  drivers/cxl/core/memdev.c           |   1 +
>  drivers/cxl/core/pci.c              |  78 ++-
>  drivers/cxl/core/port.c             | 149 +++--
>  drivers/cxl/core/region.c           |  24 +-
>  drivers/cxl/core/regs.c             |  30 +
>  drivers/cxl/cxl.h                   |  74 ++-
>  drivers/cxl/cxlcache.h              |  50 ++
>  drivers/cxl/cxlmem.h                |   4 +-
>  drivers/cxl/mem.c                   |   4 +-
>  drivers/cxl/port.c                  |  97 +++-
>  drivers/iommu/amd/amd_iommu_types.h |   4 +
>  drivers/iommu/amd/init.c            |  14 +
>  drivers/iommu/amd/iommu.c           |  56 +-
>  drivers/iommu/iommu.c               |  28 +
>  include/cxl/cxl.h                   |  78 ++-
>  include/linux/iommu.h               |   8 +
>  include/uapi/linux/pci_regs.h       |   8 +
>  24 files changed, 1911 insertions(+), 92 deletions(-)
>  create mode 100644 drivers/cxl/cache.c
>  create mode 100644 drivers/cxl/core/cache.c
>  create mode 100644 drivers/cxl/core/cachedev.c
>  create mode 100644 drivers/cxl/cxlcache.h
> 


      parent reply	other threads:[~2026-09-23 17:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-23 17:33 [PATCH 00/15] Add initial CXL.cache support Ben Cheatham
2026-09-23 17:33 ` [PATCH 01/15] cxl/core: Add CXL.cache device struct Ben Cheatham
2026-09-23 17:41   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 02/15] cxl/cache: Add cxl_cache driver Ben Cheatham
2026-09-23 17:49   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 03/15] cxl/core: Change cxl_ep_load() to use device pointer parameter Ben Cheatham
2026-09-23 17:33 ` [PATCH 04/15] cxl/core: Update devm_cxl_enumerate_ports() for cxl_cachedevs Ben Cheatham
2026-09-23 17:33 ` [PATCH 05/15] cxl/port: Split endpoint port probe on device type Ben Cheatham
2026-09-23 17:46   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 06/15] cxl/core: Update devm_cxl_add_endpoint() for cxl_cachedevs Ben Cheatham
2026-09-23 17:51   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 07/15] cxl/cache: Verify port hierarchy has CXL.cache enabled Ben Cheatham
2026-09-23 17:33 ` [PATCH 08/15] cxl/core, cache: Add Cache ID register probing and init Ben Cheatham
2026-09-23 17:46   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 09/15] cxl/core: Add Cache ID verification Ben Cheatham
2026-09-23 17:49   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 10/15] cxl/core: Add Cache ID allocation Ben Cheatham
2026-09-23 17:49   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 11/15] cxl/core: Add support for HDM-D cache id programming Ben Cheatham
2026-09-23 17:51   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 12/15] cxl/cache: Add snoop filter creation and set up Ben Cheatham
2026-09-23 17:50   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 13/15] cxl/cache: Add snoop filter allocation Ben Cheatham
2026-09-23 17:58   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 14/15] iommu, cxl: Configure IOMMU for CXL.cache Ben Cheatham
2026-09-23 17:57   ` sashiko-bot
2026-09-23 17:33 ` [PATCH 15/15] cxl/cache: Enable CXL.cache on successful probe Ben Cheatham
2026-09-23 17:35 ` Cheatham, Benjamin [this message]

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=706e59f6-985f-4cf2-a430-94e8a4079867@amd.com \
    --to=benjamin.cheatham@amd.com \
    --cc=alison.schofield@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dave@stgolabs.net \
    --cc=jic23@kernel.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-iommu@vger.kernel.org \
    --cc=robert.richter@amd.com \
    --cc=terry.bowman@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