0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menuconfig DAX
0003 tristate "DAX: direct access to differentiated memory"
0004 select SRCU
0005 default m if NVDIMM_DAX
0006
0007 if DAX
0008
0009 config DEV_DAX
0010 tristate "Device DAX: direct access mapping device"
0011 depends on TRANSPARENT_HUGEPAGE
0012 help
0013 Support raw access to differentiated (persistence, bandwidth,
0014 latency...) memory via an mmap(2) capable character
0015 device. Platform firmware or a device driver may identify a
0016 platform memory resource that is differentiated from the
0017 baseline memory pool. Mappings of a /dev/daxX.Y device impose
0018 restrictions that make the mapping behavior deterministic.
0019
0020 config DEV_DAX_PMEM
0021 tristate "PMEM DAX: direct access to persistent memory"
0022 depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX
0023 default DEV_DAX
0024 help
0025 Support raw access to persistent memory. Note that this
0026 driver consumes memory ranges allocated and exported by the
0027 libnvdimm sub-system.
0028
0029 Say M if unsure
0030
0031 config DEV_DAX_HMEM
0032 tristate "HMEM DAX: direct access to 'specific purpose' memory"
0033 depends on EFI_SOFT_RESERVE
0034 select NUMA_KEEP_MEMINFO if (NUMA && X86)
0035 default DEV_DAX
0036 help
0037 EFI 2.8 platforms, and others, may advertise 'specific purpose'
0038 memory. For example, a high bandwidth memory pool. The
0039 indication from platform firmware is meant to reserve the
0040 memory from typical usage by default. This driver creates
0041 device-dax instances for these memory ranges, and that also
0042 enables the possibility to assign them to the DEV_DAX_KMEM
0043 driver to override the reservation and add them to kernel
0044 "System RAM" pool.
0045
0046 Say M if unsure.
0047
0048 config DEV_DAX_HMEM_DEVICES
0049 depends on DEV_DAX_HMEM && DAX=y
0050 def_bool y
0051
0052 config DEV_DAX_KMEM
0053 tristate "KMEM DAX: volatile-use of persistent memory"
0054 default DEV_DAX
0055 depends on DEV_DAX
0056 depends on MEMORY_HOTPLUG # for add_memory() and friends
0057 help
0058 Support access to persistent, or other performance
0059 differentiated memory as if it were System RAM. This allows
0060 easier use of persistent memory by unmodified applications, or
0061 adds core kernel memory services to heterogeneous memory types
0062 (HMEM) marked "reserved" by platform firmware.
0063
0064 To use this feature, a DAX device must be unbound from the
0065 device_dax driver and bound to this kmem driver on each boot.
0066
0067 Say N if unsure.
0068
0069 endif