linux/drivers/nvdimm
Dan Williams 6e0c90d691 libnvdimm, pmem, dax: export a cache control attribute
The dax_flush() operation can be turned into a nop on platforms where
firmware arranges for cpu caches to be flushed on a power-fail event.
The ACPI 6.2 specification defines a mechanism for the platform to
indicate this capability so the kernel can select the proper default.
However, for other platforms, the administrator must toggle this setting
manually.

Given this flush setting is a dax-specific mechanism we advertise it
through a 'dax' attribute group hanging off a host device. For example,
a 'pmem0' block-device gets a 'dax' sysfs-subdirectory with a
'write_cache' attribute to control response to dax cache flush requests.
This is similar to the 'queue/write_cache' attribute that appears under
block devices.

Cc: Jan Kara <jack@suse.cz>
Cc: Jeff Moyer <jmoyer@redhat.com>
Cc: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Suggested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2017-06-29 09:29:50 -07:00
..
Kconfig pmem: add dax_operations support 2017-04-19 15:14:35 -07:00
Makefile libnvdimm, dax: introduce device-dax infrastructure 2016-05-09 15:35:42 -07:00
blk.c libnvdimm: add an atomic vs process context flag to rw_bytes 2017-05-10 21:46:22 -07:00
btt.c libnvdimm, btt: ensure that initializing metadata clears poison 2017-05-10 21:46:22 -07:00
btt.h libnvdimm, btt: consolidate arena validation 2015-08-14 13:43:04 -04:00
btt_devs.c libnvdimm: add an atomic vs process context flag to rw_bytes 2017-05-10 21:46:22 -07:00
bus.c libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00
claim.c x86, libnvdimm, pmem: remove global pmem api 2017-06-27 16:29:54 -07:00
core.c libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00
dax_devs.c libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00
dimm.c libnvdimm: handle locked label storage areas 2017-05-04 15:41:39 -07:00
dimm_devs.c libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00
e820.c libnvdimm, e820: use module_platform_driver 2016-12-05 08:52:21 -08:00
label.c nvdimm: use the right length of "pmem" 2016-11-11 20:37:42 -08:00
label.h libnvdimm: write blk label set 2015-06-24 21:24:10 -04:00
namespace_devs.c libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00
nd-core.h libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00
nd.h libnvdimm: add an atomic vs process context flag to rw_bytes 2017-05-10 21:46:22 -07:00
pfn.h libnvdimm, dax: autodetect support 2016-05-20 22:02:57 -07:00
pfn_devs.c libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00
pmem.c libnvdimm, pmem, dax: export a cache control attribute 2017-06-29 09:29:50 -07:00
pmem.h x86, libnvdimm, pmem: remove global pmem api 2017-06-27 16:29:54 -07:00
region.c libnvdimm: rework region badblocks clearing 2017-04-29 15:24:03 -07:00
region_devs.c libnvdimm, nfit: enable support for volatile ranges 2017-06-27 16:44:13 -07:00