1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 22080e88aSDan Williamsconfig DAX_DRIVER 32080e88aSDan Williams select DAX 42080e88aSDan Williams bool 52080e88aSDan Williams 67b6be844SDan Williamsmenuconfig DAX 7ab68f262SDan Williams tristate "DAX: direct access to differentiated memory" 8956a4cd2SDan Williams select SRCU 97b6be844SDan Williams default m if NVDIMM_DAX 107b6be844SDan Williams 117b6be844SDan Williamsif DAX 127b6be844SDan Williams 137b6be844SDan Williamsconfig DEV_DAX 147b6be844SDan Williams tristate "Device DAX: direct access mapping device" 157b6be844SDan Williams depends on TRANSPARENT_HUGEPAGE 16ab68f262SDan Williams help 17ab68f262SDan Williams Support raw access to differentiated (persistence, bandwidth, 18ab68f262SDan Williams latency...) memory via an mmap(2) capable character 19ab68f262SDan Williams device. Platform firmware or a device driver may identify a 20ab68f262SDan Williams platform memory resource that is differentiated from the 21ab68f262SDan Williams baseline memory pool. Mappings of a /dev/daxX.Y device impose 22ab68f262SDan Williams restrictions that make the mapping behavior deterministic. 23ab68f262SDan Williams 24ab68f262SDan Williamsconfig DEV_DAX_PMEM 25ab68f262SDan Williams tristate "PMEM DAX: direct access to persistent memory" 2674d71a01SMike Galbraith depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX 27ab68f262SDan Williams default DEV_DAX 28ab68f262SDan Williams help 29ab68f262SDan Williams Support raw access to persistent memory. Note that this 30ab68f262SDan Williams driver consumes memory ranges allocated and exported by the 31ab68f262SDan Williams libnvdimm sub-system. 32ab68f262SDan Williams 33730926c3SDan Williams Say M if unsure 34730926c3SDan Williams 35a6c7f4c6SDan Williamsconfig DEV_DAX_HMEM 36a6c7f4c6SDan Williams tristate "HMEM DAX: direct access to 'specific purpose' memory" 37a6c7f4c6SDan Williams depends on EFI_SOFT_RESERVE 385ccac54fSDan Williams select NUMA_KEEP_MEMINFO if (NUMA && X86) 39a6c7f4c6SDan Williams default DEV_DAX 40a6c7f4c6SDan Williams help 41a6c7f4c6SDan Williams EFI 2.8 platforms, and others, may advertise 'specific purpose' 42a6c7f4c6SDan Williams memory. For example, a high bandwidth memory pool. The 43a6c7f4c6SDan Williams indication from platform firmware is meant to reserve the 44a6c7f4c6SDan Williams memory from typical usage by default. This driver creates 45a6c7f4c6SDan Williams device-dax instances for these memory ranges, and that also 46a6c7f4c6SDan Williams enables the possibility to assign them to the DEV_DAX_KMEM 47a6c7f4c6SDan Williams driver to override the reservation and add them to kernel 48a6c7f4c6SDan Williams "System RAM" pool. 49a6c7f4c6SDan Williams 50a6c7f4c6SDan Williams Say M if unsure. 51a6c7f4c6SDan Williams 52c01044ccSDan Williamsconfig DEV_DAX_HMEM_DEVICES 535ccac54fSDan Williams depends on NUMA_KEEP_MEMINFO # for phys_to_target_node() 54c01044ccSDan Williams depends on DEV_DAX_HMEM && DAX=y 55c01044ccSDan Williams def_bool y 56c01044ccSDan Williams 57c221c0b0SDave Hansenconfig DEV_DAX_KMEM 58c221c0b0SDave Hansen tristate "KMEM DAX: volatile-use of persistent memory" 59c221c0b0SDave Hansen default DEV_DAX 60c221c0b0SDave Hansen depends on DEV_DAX 61c221c0b0SDave Hansen depends on MEMORY_HOTPLUG # for add_memory() and friends 62c221c0b0SDave Hansen help 63a6c7f4c6SDan Williams Support access to persistent, or other performance 64a6c7f4c6SDan Williams differentiated memory as if it were System RAM. This allows 65a6c7f4c6SDan Williams easier use of persistent memory by unmodified applications, or 66a6c7f4c6SDan Williams adds core kernel memory services to heterogeneous memory types 67a6c7f4c6SDan Williams (HMEM) marked "reserved" by platform firmware. 68c221c0b0SDave Hansen 69c221c0b0SDave Hansen To use this feature, a DAX device must be unbound from the 70a6c7f4c6SDan Williams device_dax driver and bound to this kmem driver on each boot. 71c221c0b0SDave Hansen 72c221c0b0SDave Hansen Say N if unsure. 73c221c0b0SDave Hansen 74730926c3SDan Williamsconfig DEV_DAX_PMEM_COMPAT 75730926c3SDan Williams tristate "PMEM DAX: support the deprecated /sys/class/dax interface" 7667476656SAneesh Kumar K.V depends on m && DEV_DAX_PMEM=m 77730926c3SDan Williams default DEV_DAX_PMEM 78730926c3SDan Williams help 79730926c3SDan Williams Older versions of the libdaxctl library expect to find all 80730926c3SDan Williams device-dax instances under /sys/class/dax. If libdaxctl in 81730926c3SDan Williams your distribution is older than v58 say M, otherwise say N. 82ab68f262SDan Williams 83ab68f262SDan Williamsendif 84