1
0
Fork 0
alistair23-linux/drivers/nvdimm
Ross Zwisler 61031952f4 arch, x86: pmem api for ensuring durability of persistent memory updates
Based on an original patch by Ross Zwisler [1].

Writes to persistent memory have the potential to be posted to cpu
cache, cpu write buffers, and platform write buffers (memory controller)
before being committed to persistent media.  Provide apis,
memcpy_to_pmem(), wmb_pmem(), and memremap_pmem(), to write data to
pmem and assert that it is durable in PMEM (a persistent linear address
range).  A '__pmem' attribute is added so sparse can track proper usage
of pointers to pmem.

This continues the status quo of pmem being x86 only for 4.2, but
reworks to ioremap, and wider implementation of memremap() will enable
other archs in 4.3.

[1]: https://lists.01.org/pipermail/linux-nvdimm/2015-May/000932.html

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
[djbw: various reworks]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2015-06-26 11:23:38 -04:00
..
Kconfig libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory 2015-06-26 11:23:38 -04:00
Makefile libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory 2015-06-26 11:23:38 -04:00
blk.c libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only 2015-06-26 11:23:38 -04:00
btt.c libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only 2015-06-26 11:23:38 -04:00
btt.h libnvdimm, blk: add support for blk integrity 2015-06-26 11:23:38 -04:00
btt_devs.c libnvdimm: Add sysfs numa_node to NVDIMM devices 2015-06-26 11:23:38 -04:00
bus.c libnvdimm: Add sysfs numa_node to NVDIMM devices 2015-06-26 11:23:38 -04:00
core.c libnvdimm: enable iostat 2015-06-26 11:23:38 -04:00
dimm.c libnvdimm: pmem label sets and namespace instantiation. 2015-06-24 21:24:10 -04:00
dimm_devs.c libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory 2015-06-26 11:23:38 -04:00
label.c libnvdimm: infrastructure for btt devices 2015-06-25 04:20:04 -04:00
label.h libnvdimm: write blk label set 2015-06-24 21:24:10 -04:00
namespace_devs.c libnvdimm: Add sysfs numa_node to NVDIMM devices 2015-06-26 11:23:38 -04:00
nd-core.h libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory 2015-06-26 11:23:38 -04:00
nd.h libnvdimm: Set numa_node to NVDIMM devices 2015-06-26 11:23:38 -04:00
pmem.c arch, x86: pmem api for ensuring durability of persistent memory updates 2015-06-26 11:23:38 -04:00
region.c libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory 2015-06-26 11:23:38 -04:00
region_devs.c libnvdimm: Set numa_node to NVDIMM devices 2015-06-26 11:23:38 -04:00