lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 10 Jun 2021 15:25:57 -0700 From: Dan Williams <dan.j.williams@...el.com> To: linux-cxl@...r.kernel.org Cc: nvdimm@...ts.linux.dev, ben.widawsky@...el.com, alison.schofield@...el.com, vishal.l.verma@...el.com, ira.weiny@...el.com, linux-kernel@...r.kernel.org Subject: [PATCH 0/5] cxl/pmem: Add core infrastructure for PMEM support CXL Memory Expander devices (CXL 2.0 Type-3) support persistent memory in addition to volatile memory expansion. The most significant changes this requires of the existing LIBNVDIMM infrastructure, compared to what was needed to support ACPI NFIT defined PMEM, is the ability to dynamically provision regions in addition to namespaces, and a formal model for hotplug. Before region provisioning can be added the CXL enabling needs to enumerate "nvdimm" devices on a CXL nvdimm-bus. This is modeled as a CXL-nvdimm-bridge device (bridging CXL to nvdimm) and an associated driver to activate and deactivate that bus-bridge. Once the bridge is registered it scans for CXL nvdimm devices registered by endpoints. The CXL core bus is used as a rendezvous for nvdimm bridges and endpoints allowing them to be registered and enabled in any order. At the end of this series the ndctl utility can see CXL nvdimm resources just like any other nvdimm bus. # ndctl list -BDiu -b CXL { "provider":"CXL", "dev":"ndbus1", "dimms":[ { "dev":"nmem1", "state":"disabled" }, { "dev":"nmem0", "state":"disabled" } ] } Follow-on patches extend the nvdimm core label support for CXL region and namespace labels. For now just add the machinery to register the bus and nvdimm base objects. --- Dan Williams (5): cxl/core: Add cxl-bus driver infrastructure cxl/pmem: Add initial infrastructure for pmem support libnvdimm: Export nvdimm shutdown helper, nvdimm_delete() libnvdimm: Drop unused device power management support cxl/pmem: Register 'pmem' / cxl_nvdimm devices drivers/cxl/Kconfig | 13 ++ drivers/cxl/Makefile | 2 drivers/cxl/acpi.c | 37 +++++- drivers/cxl/core.c | 281 ++++++++++++++++++++++++++++++++++++++++++++ drivers/cxl/cxl.h | 57 +++++++++ drivers/cxl/mem.h | 2 drivers/cxl/pci.c | 23 +++- drivers/cxl/pmem.c | 230 ++++++++++++++++++++++++++++++++++++ drivers/nvdimm/bus.c | 64 ++++++---- drivers/nvdimm/dimm_devs.c | 18 +++ include/linux/libnvdimm.h | 1 11 files changed, 697 insertions(+), 31 deletions(-) create mode 100644 drivers/cxl/pmem.c base-commit: 40ba17afdfabb01688c61565dbe02a916241bc05
Powered by blists - more mailing lists