]> git.baikalelectronics.ru Git - kernel.git/commit
arch, x86: pmem api for ensuring durability of persistent memory updates
authorRoss Zwisler <ross.zwisler@linux.intel.com>
Thu, 25 Jun 2015 07:08:39 +0000 (03:08 -0400)
committerDan Williams <dan.j.williams@intel.com>
Fri, 26 Jun 2015 15:23:38 +0000 (11:23 -0400)
commit9752d14ac1456a8a0940e63dd44afe41865f4378
tree70a8b29fa96b6222bd19bb604d364bce404f14ae
parenta28a70df1204fd2096653b975c680b638cb59e40
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>
arch/x86/Kconfig
arch/x86/include/asm/cacheflush.h
arch/x86/include/asm/io.h
drivers/nvdimm/pmem.c
include/linux/compiler.h
include/linux/pmem.h [new file with mode: 0644]
lib/Kconfig