Merge tag 'fscache-fixes-20220121' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / drivers / dax / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig DAX
3         tristate "DAX: direct access to differentiated memory"
4         select SRCU
5         default m if NVDIMM_DAX
6
7 if DAX
8
9 config DEV_DAX
10         tristate "Device DAX: direct access mapping device"
11         depends on TRANSPARENT_HUGEPAGE
12         help
13           Support raw access to differentiated (persistence, bandwidth,
14           latency...) memory via an mmap(2) capable character
15           device.  Platform firmware or a device driver may identify a
16           platform memory resource that is differentiated from the
17           baseline memory pool.  Mappings of a /dev/daxX.Y device impose
18           restrictions that make the mapping behavior deterministic.
19
20 config DEV_DAX_PMEM
21         tristate "PMEM DAX: direct access to persistent memory"
22         depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX
23         default DEV_DAX
24         help
25           Support raw access to persistent memory.  Note that this
26           driver consumes memory ranges allocated and exported by the
27           libnvdimm sub-system.
28
29           Say M if unsure
30
31 config DEV_DAX_HMEM
32         tristate "HMEM DAX: direct access to 'specific purpose' memory"
33         depends on EFI_SOFT_RESERVE
34         select NUMA_KEEP_MEMINFO if (NUMA && X86)
35         default DEV_DAX
36         help
37           EFI 2.8 platforms, and others, may advertise 'specific purpose'
38           memory. For example, a high bandwidth memory pool. The
39           indication from platform firmware is meant to reserve the
40           memory from typical usage by default. This driver creates
41           device-dax instances for these memory ranges, and that also
42           enables the possibility to assign them to the DEV_DAX_KMEM
43           driver to override the reservation and add them to kernel
44           "System RAM" pool.
45
46           Say M if unsure.
47
48 config DEV_DAX_HMEM_DEVICES
49         depends on DEV_DAX_HMEM && DAX=y
50         def_bool y
51
52 config DEV_DAX_KMEM
53         tristate "KMEM DAX: volatile-use of persistent memory"
54         default DEV_DAX
55         depends on DEV_DAX
56         depends on MEMORY_HOTPLUG # for add_memory() and friends
57         help
58           Support access to persistent, or other performance
59           differentiated memory as if it were System RAM. This allows
60           easier use of persistent memory by unmodified applications, or
61           adds core kernel memory services to heterogeneous memory types
62           (HMEM) marked "reserved" by platform firmware.
63
64           To use this feature, a DAX device must be unbound from the
65           device_dax driver and bound to this kmem driver on each boot.
66
67           Say N if unsure.
68
69 endif