Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
7b6be844 | 2 | menuconfig DAX |
ab68f262 DW |
3 | tristate "DAX: direct access to differentiated memory" |
4 | default m if NVDIMM_DAX | |
7b6be844 DW |
5 | |
6 | if DAX | |
7 | ||
8 | config DEV_DAX | |
9 | tristate "Device DAX: direct access mapping device" | |
dee41079 | 10 | depends on TRANSPARENT_HUGEPAGE |
ab68f262 DW |
11 | help |
12 | Support raw access to differentiated (persistence, bandwidth, | |
13 | latency...) memory via an mmap(2) capable character | |
14 | device. Platform firmware or a device driver may identify a | |
15 | platform memory resource that is differentiated from the | |
16 | baseline memory pool. Mappings of a /dev/daxX.Y device impose | |
17 | restrictions that make the mapping behavior deterministic. | |
18 | ||
ab68f262 DW |
19 | config DEV_DAX_PMEM |
20 | tristate "PMEM DAX: direct access to persistent memory" | |
74d71a01 | 21 | depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX |
ab68f262 DW |
22 | default DEV_DAX |
23 | help | |
24 | Support raw access to persistent memory. Note that this | |
25 | driver consumes memory ranges allocated and exported by the | |
26 | libnvdimm sub-system. | |
27 | ||
730926c3 DW |
28 | Say M if unsure |
29 | ||
a6c7f4c6 DW |
30 | config DEV_DAX_HMEM |
31 | tristate "HMEM DAX: direct access to 'specific purpose' memory" | |
32 | depends on EFI_SOFT_RESERVE | |
5ccac54f | 33 | select NUMA_KEEP_MEMINFO if (NUMA && X86) |
a6c7f4c6 DW |
34 | default DEV_DAX |
35 | help | |
36 | EFI 2.8 platforms, and others, may advertise 'specific purpose' | |
37 | memory. For example, a high bandwidth memory pool. The | |
38 | indication from platform firmware is meant to reserve the | |
39 | memory from typical usage by default. This driver creates | |
40 | device-dax instances for these memory ranges, and that also | |
41 | enables the possibility to assign them to the DEV_DAX_KMEM | |
42 | driver to override the reservation and add them to kernel | |
43 | "System RAM" pool. | |
44 | ||
45 | Say M if unsure. | |
46 | ||
09d09e04 DW |
47 | config DEV_DAX_CXL |
48 | tristate "CXL DAX: direct access to CXL RAM regions" | |
0c16c83e | 49 | depends on CXL_BUS && CXL_REGION && DEV_DAX |
09d09e04 DW |
50 | default CXL_REGION && DEV_DAX |
51 | help | |
52 | CXL RAM regions are either mapped by platform-firmware | |
53 | and published in the initial system-memory map as "System RAM", mapped | |
54 | by platform-firmware as "Soft Reserved", or dynamically provisioned | |
55 | after boot by the CXL driver. In the latter two cases a device-dax | |
56 | instance is created to access that unmapped-by-default address range. | |
57 | Per usual it can remain as dedicated access via a device interface, or | |
58 | converted to "System RAM" via the dax_kmem facility. | |
59 | ||
c01044cc | 60 | config DEV_DAX_HMEM_DEVICES |
7dab174e | 61 | depends on DEV_DAX_HMEM && DAX |
c01044cc DW |
62 | def_bool y |
63 | ||
c221c0b0 | 64 | config DEV_DAX_KMEM |
e9ee9fe3 | 65 | tristate "KMEM DAX: map dax-devices as System-RAM" |
c221c0b0 DH |
66 | default DEV_DAX |
67 | depends on DEV_DAX | |
68 | depends on MEMORY_HOTPLUG # for add_memory() and friends | |
69 | help | |
a6c7f4c6 DW |
70 | Support access to persistent, or other performance |
71 | differentiated memory as if it were System RAM. This allows | |
72 | easier use of persistent memory by unmodified applications, or | |
73 | adds core kernel memory services to heterogeneous memory types | |
74 | (HMEM) marked "reserved" by platform firmware. | |
c221c0b0 DH |
75 | |
76 | To use this feature, a DAX device must be unbound from the | |
a6c7f4c6 | 77 | device_dax driver and bound to this kmem driver on each boot. |
c221c0b0 DH |
78 | |
79 | Say N if unsure. | |
80 | ||
ab68f262 | 81 | endif |