mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 00:21:32 +00:00
8c2f7e8658
NVDIMM namespaces, in addition to accepting "struct bio" based requests, also have the capability to perform byte-aligned accesses. By default only the bio/block interface is used. However, if another driver can make effective use of the byte-aligned capability it can claim namespace interface and use the byte-aligned ->rw_bytes() interface. The BTT driver is the initial first consumer of this mechanism to allow adding atomic sector update semantics to a pmem or blk namespace. This patch is the sysfs infrastructure to allow configuring a BTT instance for a namespace. Enabling that BTT and performing i/o is in a subsequent patch. Cc: Greg KH <gregkh@linuxfoundation.org> Cc: Neil Brown <neilb@suse.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
40 lines
1.4 KiB
Plaintext
40 lines
1.4 KiB
Plaintext
menuconfig LIBNVDIMM
|
|
tristate "NVDIMM (Non-Volatile Memory Device) Support"
|
|
depends on PHYS_ADDR_T_64BIT
|
|
depends on BLK_DEV
|
|
help
|
|
Generic support for non-volatile memory devices including
|
|
ACPI-6-NFIT defined resources. On platforms that define an
|
|
NFIT, or otherwise can discover NVDIMM resources, a libnvdimm
|
|
bus is registered to advertise PMEM (persistent memory)
|
|
namespaces (/dev/pmemX) and BLK (sliding mmio window(s))
|
|
namespaces (/dev/ndX). A PMEM namespace refers to a memory
|
|
resource that may span multiple DIMMs and support DAX (see
|
|
CONFIG_DAX). A BLK namespace refers to an NVDIMM control
|
|
region which exposes an mmio register set for windowed
|
|
access mode to non-volatile memory.
|
|
|
|
if LIBNVDIMM
|
|
|
|
config BLK_DEV_PMEM
|
|
tristate "PMEM: Persistent memory block device support"
|
|
default LIBNVDIMM
|
|
depends on HAS_IOMEM
|
|
help
|
|
Memory ranges for PMEM are described by either an NFIT
|
|
(NVDIMM Firmware Interface Table, see CONFIG_NFIT_ACPI), a
|
|
non-standard OEM-specific E820 memory type (type-12, see
|
|
CONFIG_X86_PMEM_LEGACY), or it is manually specified by the
|
|
'memmap=nn[KMG]!ss[KMG]' kernel command line (see
|
|
Documentation/kernel-parameters.txt). This driver converts
|
|
these persistent memory ranges into block devices that are
|
|
capable of DAX (direct-access) file system mappings. See
|
|
Documentation/nvdimm/nvdimm.txt for more details.
|
|
|
|
Say Y if you want to use an NVDIMM
|
|
|
|
config BTT
|
|
def_bool y
|
|
|
|
endif
|