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 35*a6c7f4c6SDan Williamsconfig DEV_DAX_HMEM 36*a6c7f4c6SDan Williams tristate "HMEM DAX: direct access to 'specific purpose' memory" 37*a6c7f4c6SDan Williams depends on EFI_SOFT_RESERVE 38*a6c7f4c6SDan Williams default DEV_DAX 39*a6c7f4c6SDan Williams help 40*a6c7f4c6SDan Williams EFI 2.8 platforms, and others, may advertise 'specific purpose' 41*a6c7f4c6SDan Williams memory. For example, a high bandwidth memory pool. The 42*a6c7f4c6SDan Williams indication from platform firmware is meant to reserve the 43*a6c7f4c6SDan Williams memory from typical usage by default. This driver creates 44*a6c7f4c6SDan Williams device-dax instances for these memory ranges, and that also 45*a6c7f4c6SDan Williams enables the possibility to assign them to the DEV_DAX_KMEM 46*a6c7f4c6SDan Williams driver to override the reservation and add them to kernel 47*a6c7f4c6SDan Williams "System RAM" pool. 48*a6c7f4c6SDan Williams 49*a6c7f4c6SDan Williams Say M if unsure. 50*a6c7f4c6SDan Williams 51c221c0b0SDave Hansenconfig DEV_DAX_KMEM 52c221c0b0SDave Hansen tristate "KMEM DAX: volatile-use of persistent memory" 53c221c0b0SDave Hansen default DEV_DAX 54c221c0b0SDave Hansen depends on DEV_DAX 55c221c0b0SDave Hansen depends on MEMORY_HOTPLUG # for add_memory() and friends 56c221c0b0SDave Hansen help 57*a6c7f4c6SDan Williams Support access to persistent, or other performance 58*a6c7f4c6SDan Williams differentiated memory as if it were System RAM. This allows 59*a6c7f4c6SDan Williams easier use of persistent memory by unmodified applications, or 60*a6c7f4c6SDan Williams adds core kernel memory services to heterogeneous memory types 61*a6c7f4c6SDan Williams (HMEM) marked "reserved" by platform firmware. 62c221c0b0SDave Hansen 63c221c0b0SDave Hansen To use this feature, a DAX device must be unbound from the 64*a6c7f4c6SDan Williams device_dax driver and bound to this kmem driver on each boot. 65c221c0b0SDave Hansen 66c221c0b0SDave Hansen Say N if unsure. 67c221c0b0SDave Hansen 68730926c3SDan Williamsconfig DEV_DAX_PMEM_COMPAT 69730926c3SDan Williams tristate "PMEM DAX: support the deprecated /sys/class/dax interface" 7067476656SAneesh Kumar K.V depends on m && DEV_DAX_PMEM=m 71730926c3SDan Williams default DEV_DAX_PMEM 72730926c3SDan Williams help 73730926c3SDan Williams Older versions of the libdaxctl library expect to find all 74730926c3SDan Williams device-dax instances under /sys/class/dax. If libdaxctl in 75730926c3SDan Williams your distribution is older than v58 say M, otherwise say N. 76ab68f262SDan Williams 77ab68f262SDan Williamsendif 78