Linux-CXL Archive mirror
 help / color / mirror / Atom feed
From: Ben Cheatham <Benjamin.Cheatham@amd.com>
To: <linux-cxl@vger.kernel.org>, <linux-pci@vger.kernel.org>
Cc: <dave@stgolabs.net>, <jonathan.cameron@huawei.com>,
	<dave.jiang@intel.com>, <alison.schofield@intel.com>,
	<vishal.l.verma@intel.com>, <ira.weiny@intel.com>,
	<dan.j.williams@intel.com>, <bhelgaas@google.com>,
	<benjamin.cheatham@amd.com>
Subject: [RFC PATCH 0/6] Implement initial CXL Timeout & Isolation support
Date: Thu, 15 Feb 2024 13:40:42 -0600	[thread overview]
Message-ID: <20240215194048.141411-1-Benjamin.Cheatham@amd.com> (raw)

Implement initial support for CXL.mem Timeout & Isolation (CXL 3.0
12.3.2). This series implements support for CXL.mem enabling and
programming CXL.mem transaction timeout, CXL.mem error isolation,
and error isolation interrupts for CXL-enabled PCIe root ports that
implement the CXL Timeout & Isolation capability.

I am operating under the assumption that recovery from error isolation
will be more involved than just resetting the port and turning off
isolation, so that flow is not implemented here. There is also no
support for CXL.cache, but I plan to eventually implement both.

The series also introduces a PCIe port bus driver dependency on the CXL
core. I expect to be able to remove that when when my team submits
patches for a future rework of the PCIe port bus driver.

I have done some testing using QEMU by adding the isolation registers
and a hacked-up QMP command to test the interrupt flow, but I *DID NOT*
implement the actual isolation feature and the subsequent device
behavior. I'd be willing to share these changes (and my config) if
anyone is interested in testing this.

Any thoughts/comments would be greatly appreciated!

Ben Cheatham (6):
  cxl/core: Add CXL Timeout & Isolation capability parsing
  pcie/cxl_timeout: Add CXL Timeout & Isolation service driver
  pcie/cxl_timeout: Add CXL.mem timeout range programming
  pcie/cxl_timeout: Add CXL.mem error isolation support
  pcie/portdrv: Add CXL MSI/-X allocation
  pcie/cxl_timeout: Add CXL.mem Timeout & Isolation interrupt support

 drivers/cxl/core/pci.c         |   5 +
 drivers/cxl/core/port.c        |  80 +++++
 drivers/cxl/core/region.c      |   9 +
 drivers/cxl/core/regs.c        |   7 +
 drivers/cxl/cxl.h              |  37 +++
 drivers/cxl/cxlpci.h           |   9 +
 drivers/pci/pcie/Kconfig       |  10 +
 drivers/pci/pcie/Makefile      |   1 +
 drivers/pci/pcie/cxl_timeout.c | 592 +++++++++++++++++++++++++++++++++
 drivers/pci/pcie/portdrv.c     |  36 +-
 drivers/pci/pcie/portdrv.h     |  17 +-
 11 files changed, 799 insertions(+), 4 deletions(-)
 create mode 100644 drivers/pci/pcie/cxl_timeout.c

-- 
2.34.1


             reply	other threads:[~2024-02-15 19:41 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-15 19:40 Ben Cheatham [this message]
2024-02-15 19:40 ` [RFC PATCH 1/6] cxl/core: Add CXL Timeout & Isolation capability parsing Ben Cheatham
2024-02-15 19:40 ` [RFC PATCH 2/6] pcie/cxl_timeout: Add CXL Timeout & Isolation service driver Ben Cheatham
2024-02-15 21:13   ` Bjorn Helgaas
2024-02-15 22:21     ` Ben Cheatham
2024-02-15 22:26       ` Bjorn Helgaas
2024-02-15 19:40 ` [RFC PATCH 3/6] pcie/cxl_timeout: Add CXL.mem timeout range programming Ben Cheatham
2024-02-15 21:35   ` Bjorn Helgaas
2024-02-15 22:21     ` Ben Cheatham
2024-02-15 22:29       ` Bjorn Helgaas
2024-02-15 22:30         ` Ben Cheatham
2024-02-15 19:40 ` [RFC PATCH 4/6] pcie/cxl_timeout: Add CXL.mem error isolation support Ben Cheatham
2024-02-15 21:49   ` Bjorn Helgaas
2024-02-15 22:21     ` Ben Cheatham
2024-02-15 19:40 ` [RFC PATCH 5/6] pcie/portdrv: Add CXL MSI/-X allocation Ben Cheatham
2024-02-15 21:51   ` Bjorn Helgaas
2024-02-15 22:22     ` Ben Cheatham
2024-02-15 19:40 ` [RFC PATCH 6/6] pcie/cxl_timeout: Add CXL.mem Timeout & Isolation interrupt support Ben Cheatham
2024-02-15 21:57   ` Bjorn Helgaas
2024-02-15 22:22     ` Ben Cheatham
2024-02-15 23:43 ` [RFC PATCH 0/6] Implement initial CXL Timeout & Isolation support Dan Williams
2024-03-25 15:15   ` Ben Cheatham
2024-03-25 15:54     ` Dan Williams
2024-04-01 19:41       ` Ben Cheatham

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=20240215194048.141411-1-Benjamin.Cheatham@amd.com \
    --to=benjamin.cheatham@amd.com \
    --cc=alison.schofield@intel.com \
    --cc=bhelgaas@google.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dave@stgolabs.net \
    --cc=ira.weiny@intel.com \
    --cc=jonathan.cameron@huawei.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=vishal.l.verma@intel.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).