From: Ben Widawsky <ben.widawsky@intel.com>
To: linux-cxl@vger.kernel.org
Cc: Ben Widawsky <ben.widawsky@intel.com>,
Alison Schofield <alison.schofield@intel.com>,
Dan Williams <dan.j.williams@intel.com>,
Ira Weiny <ira.weiny@intel.com>,
Jonathan Cameron <Jonathan.Cameron@Huawei.com>,
Vishal Verma <vishal.l.verma@intel.com>
Subject: [PATCH RFCish 00/23] cxl_region and cxl_memdev drivers
Date: Fri, 23 Jul 2021 14:06:00 -0700 [thread overview]
Message-ID: <20210723210623.114073-1-ben.widawsky@intel.com> (raw)
I will be going on vacation for the next two weeks so I'm sending out everything
I have, even though it's not fully baked so that folks who might want to
continue it while I'm gone, can do so. Many of these patches have already been
sent as separate series, or RFC.
The ultimate goal of this series is to create two new driver types, cxl_region,
and cxl_memdev. The cxl_region driver is responsible for region creation and
configuration, and the cxl_memdev driver is responsible for handling the CXL
specific (non-PCI) parts of CXL endpoints. In order to establish that in a clean
way, the cxl_core driver needed quite a bit of rework. The next step is to
complete the HDM decoder programming.
What's specifically not fully baked is the cxl_pci driver claims part of the
component register space, but the cxl_memdev driver also wants this resource.
Better coordination here needs to happen, most likely the cxl_pci driver must
relinquish any resources it won't be needing. Some of the patches started to
enable making that easy, but it's not complete and as a result I believe these
patches will OOPS (there may be other issues as well).
If you feel like reviewing any of these patches, that'd be great, but I'm
equally happy to resubmit when I'm back and have things fully working.
Patch breakdown
1-11: cxl_core reorganization
12-18: cxl_region driver
19-23: cxl_memdev driver
These patches can be obtained from my gitlab as well:
https://gitlab.com/bwidawsk/linux/-/tree/cxl_memdrver2
Ben Widawsky (23):
cxl: Move cxl_core to new directory
cxl/core: Improve CXL core kernel docs
cxl/core: Extract register and pmem functionality
cxl/mem: Move character device region creation
cxl: Pass fops and shutdown to memdev creation
cxl/core: Move memdev management to core
cxl/pci: Ignore unknown register block types
cxl/pci: Simplify register setup
cxl/pci: Retain map information in cxl_mem_probe
cxl/decoder: Support parentless decoders
cxl: Enable an endpoint decoder type
cxl/region: Add region creation ABI
cxl/region: Introduce concept of region configuration
cxl: Convert driver id to an enum
cxl/region: Introduce a cxl_region driver
cxl/core: Convert decoder range to resource
cxl/region: Handle region's address space allocation
cxl/region: Only allow CXL capable targets
cxl/mem: Introduce CXL mem driver
cxl/memdev: Determine CXL.mem capability
cxl/mem: Check that the device is CXL.mem capable
cxl/mem: Add device as a port
cxl/core: Map component registers for ports
Documentation/ABI/testing/sysfs-bus-cxl | 53 ++
.../driver-api/cxl/memory-devices.rst | 25 +-
drivers/cxl/Makefile | 9 +-
drivers/cxl/acpi.c | 44 +-
drivers/cxl/core/Makefile | 5 +
drivers/cxl/{core.c => core/bus.c} | 711 +++++++-----------
drivers/cxl/core/core.h | 22 +
drivers/cxl/core/memdev.c | 230 ++++++
drivers/cxl/core/pmem.c | 201 +++++
drivers/cxl/core/region.c | 389 ++++++++++
drivers/cxl/core/regs.c | 235 ++++++
drivers/cxl/cxl.h | 67 +-
drivers/cxl/mem.c | 94 +++
drivers/cxl/mem.h | 19 +
drivers/cxl/pci.c | 325 ++------
drivers/cxl/pci.h | 8 +-
drivers/cxl/region.c | 134 ++++
drivers/cxl/region.h | 34 +
drivers/cxl/trace.h | 33 +
19 files changed, 1867 insertions(+), 771 deletions(-)
create mode 100644 drivers/cxl/core/Makefile
rename drivers/cxl/{core.c => core/bus.c} (55%)
create mode 100644 drivers/cxl/core/core.h
create mode 100644 drivers/cxl/core/memdev.c
create mode 100644 drivers/cxl/core/pmem.c
create mode 100644 drivers/cxl/core/region.c
create mode 100644 drivers/cxl/core/regs.c
create mode 100644 drivers/cxl/mem.c
create mode 100644 drivers/cxl/region.c
create mode 100644 drivers/cxl/region.h
create mode 100644 drivers/cxl/trace.h
--
2.32.0
next reply other threads:[~2021-07-23 21:06 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-23 21:06 Ben Widawsky [this message]
2021-07-23 21:06 ` [PATCH 01/23] cxl: Move cxl_core to new directory Ben Widawsky
2021-07-23 21:06 ` [PATCH 02/23] cxl/core: Improve CXL core kernel docs Ben Widawsky
2021-07-23 21:06 ` [PATCH 03/23] cxl/core: Extract register and pmem functionality Ben Widawsky
2021-07-23 21:06 ` [PATCH 04/23] cxl/mem: Move character device region creation Ben Widawsky
2021-07-23 21:06 ` [PATCH 05/23] cxl: Pass fops and shutdown to memdev creation Ben Widawsky
2021-07-23 21:06 ` [PATCH 06/23] cxl/core: Move memdev management to core Ben Widawsky
2021-07-23 21:06 ` [PATCH 07/23] cxl/pci: Ignore unknown register block types Ben Widawsky
2021-07-23 21:06 ` [PATCH 08/23] cxl/pci: Simplify register setup Ben Widawsky
2021-07-23 21:06 ` [PATCH 09/23] cxl/pci: Retain map information in cxl_mem_probe Ben Widawsky
2021-07-23 21:06 ` [PATCH 10/23] cxl/decoder: Support parentless decoders Ben Widawsky
2021-07-30 21:03 ` Dan Williams
2021-07-23 21:06 ` [PATCH 11/23] cxl: Enable an endpoint decoder type Ben Widawsky
2021-07-23 21:06 ` [PATCH 12/23] cxl/region: Add region creation ABI Ben Widawsky
2021-08-14 2:19 ` Dan Williams
2021-08-26 21:01 ` Ben Widawsky
2021-08-26 21:44 ` Dan Williams
2021-07-23 21:06 ` [PATCH 13/23] cxl/region: Introduce concept of region configuration Ben Widawsky
2021-07-23 21:06 ` [PATCH 14/23] cxl: Convert driver id to an enum Ben Widawsky
2021-07-23 21:06 ` [PATCH 15/23] cxl/region: Introduce a cxl_region driver Ben Widawsky
2021-07-23 21:06 ` [PATCH 16/23] cxl/core: Convert decoder range to resource Ben Widawsky
2021-07-23 21:06 ` [PATCH 17/23] cxl/region: Handle region's address space allocation Ben Widawsky
2021-07-23 21:06 ` [PATCH 18/23] cxl/region: Only allow CXL capable targets Ben Widawsky
2021-07-23 21:06 ` [PATCH 19/23] cxl/mem: Introduce CXL mem driver Ben Widawsky
2021-07-23 21:06 ` [PATCH 20/23] cxl/memdev: Determine CXL.mem capability Ben Widawsky
2021-07-23 21:06 ` [PATCH 21/23] cxl/mem: Check that the device is CXL.mem capable Ben Widawsky
2021-07-23 21:06 ` [PATCH 22/23] cxl/mem: Add device as a port Ben Widawsky
2021-07-23 21:06 ` [PATCH 23/23] cxl/core: Map component registers for ports Ben Widawsky
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=20210723210623.114073-1-ben.widawsky@intel.com \
--to=ben.widawsky@intel.com \
--cc=Jonathan.Cameron@Huawei.com \
--cc=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=ira.weiny@intel.com \
--cc=linux-cxl@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 NNTP newsgroup(s).