1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 27b6be844SDan Williamsmenuconfig DAX 3ab68f262SDan Williams tristate "DAX: direct access to differentiated memory" 4956a4cd2SDan Williams select SRCU 57b6be844SDan Williams default m if NVDIMM_DAX 67b6be844SDan Williams 77b6be844SDan Williamsif DAX 87b6be844SDan Williams 97b6be844SDan Williamsconfig DEV_DAX 107b6be844SDan Williams tristate "Device DAX: direct access mapping device" 117b6be844SDan Williams depends on TRANSPARENT_HUGEPAGE 12ab68f262SDan Williams help 13ab68f262SDan Williams Support raw access to differentiated (persistence, bandwidth, 14ab68f262SDan Williams latency...) memory via an mmap(2) capable character 15ab68f262SDan Williams device. Platform firmware or a device driver may identify a 16ab68f262SDan Williams platform memory resource that is differentiated from the 17ab68f262SDan Williams baseline memory pool. Mappings of a /dev/daxX.Y device impose 18ab68f262SDan Williams restrictions that make the mapping behavior deterministic. 19ab68f262SDan Williams 20ab68f262SDan Williamsconfig DEV_DAX_PMEM 21ab68f262SDan Williams tristate "PMEM DAX: direct access to persistent memory" 2274d71a01SMike Galbraith depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX 23ab68f262SDan Williams default DEV_DAX 24ab68f262SDan Williams help 25ab68f262SDan Williams Support raw access to persistent memory. Note that this 26ab68f262SDan Williams driver consumes memory ranges allocated and exported by the 27ab68f262SDan Williams libnvdimm sub-system. 28ab68f262SDan Williams 29730926c3SDan Williams Say M if unsure 30730926c3SDan Williams 31a6c7f4c6SDan Williamsconfig DEV_DAX_HMEM 32a6c7f4c6SDan Williams tristate "HMEM DAX: direct access to 'specific purpose' memory" 33a6c7f4c6SDan Williams depends on EFI_SOFT_RESERVE 345ccac54fSDan Williams select NUMA_KEEP_MEMINFO if (NUMA && X86) 35a6c7f4c6SDan Williams default DEV_DAX 36a6c7f4c6SDan Williams help 37a6c7f4c6SDan Williams EFI 2.8 platforms, and others, may advertise 'specific purpose' 38a6c7f4c6SDan Williams memory. For example, a high bandwidth memory pool. The 39a6c7f4c6SDan Williams indication from platform firmware is meant to reserve the 40a6c7f4c6SDan Williams memory from typical usage by default. This driver creates 41a6c7f4c6SDan Williams device-dax instances for these memory ranges, and that also 42a6c7f4c6SDan Williams enables the possibility to assign them to the DEV_DAX_KMEM 43a6c7f4c6SDan Williams driver to override the reservation and add them to kernel 44a6c7f4c6SDan Williams "System RAM" pool. 45a6c7f4c6SDan Williams 46a6c7f4c6SDan Williams Say M if unsure. 47a6c7f4c6SDan Williams 48c01044ccSDan Williamsconfig DEV_DAX_HMEM_DEVICES 49*7dab174eSDan Williams depends on DEV_DAX_HMEM && DAX 50c01044ccSDan Williams def_bool y 51c01044ccSDan Williams 52c221c0b0SDave Hansenconfig DEV_DAX_KMEM 53c221c0b0SDave Hansen tristate "KMEM DAX: volatile-use of persistent memory" 54c221c0b0SDave Hansen default DEV_DAX 55c221c0b0SDave Hansen depends on DEV_DAX 56c221c0b0SDave Hansen depends on MEMORY_HOTPLUG # for add_memory() and friends 57c221c0b0SDave Hansen help 58a6c7f4c6SDan Williams Support access to persistent, or other performance 59a6c7f4c6SDan Williams differentiated memory as if it were System RAM. This allows 60a6c7f4c6SDan Williams easier use of persistent memory by unmodified applications, or 61a6c7f4c6SDan Williams adds core kernel memory services to heterogeneous memory types 62a6c7f4c6SDan Williams (HMEM) marked "reserved" by platform firmware. 63c221c0b0SDave Hansen 64c221c0b0SDave Hansen To use this feature, a DAX device must be unbound from the 65a6c7f4c6SDan Williams device_dax driver and bound to this kmem driver on each boot. 66c221c0b0SDave Hansen 67c221c0b0SDave Hansen Say N if unsure. 68c221c0b0SDave Hansen 69ab68f262SDan Williamsendif 70