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 48*09d09e04SDan Williamsconfig DEV_DAX_CXL 49*09d09e04SDan Williams tristate "CXL DAX: direct access to CXL RAM regions" 50*09d09e04SDan Williams depends on CXL_REGION && DEV_DAX 51*09d09e04SDan Williams default CXL_REGION && DEV_DAX 52*09d09e04SDan Williams help 53*09d09e04SDan Williams CXL RAM regions are either mapped by platform-firmware 54*09d09e04SDan Williams and published in the initial system-memory map as "System RAM", mapped 55*09d09e04SDan Williams by platform-firmware as "Soft Reserved", or dynamically provisioned 56*09d09e04SDan Williams after boot by the CXL driver. In the latter two cases a device-dax 57*09d09e04SDan Williams instance is created to access that unmapped-by-default address range. 58*09d09e04SDan Williams Per usual it can remain as dedicated access via a device interface, or 59*09d09e04SDan Williams converted to "System RAM" via the dax_kmem facility. 60*09d09e04SDan Williams 61c01044ccSDan Williamsconfig DEV_DAX_HMEM_DEVICES 627dab174eSDan Williams depends on DEV_DAX_HMEM && DAX 63c01044ccSDan Williams def_bool y 64c01044ccSDan Williams 65c221c0b0SDave Hansenconfig DEV_DAX_KMEM 66e9ee9fe3SDan Williams tristate "KMEM DAX: map dax-devices as System-RAM" 67c221c0b0SDave Hansen default DEV_DAX 68c221c0b0SDave Hansen depends on DEV_DAX 69c221c0b0SDave Hansen depends on MEMORY_HOTPLUG # for add_memory() and friends 70c221c0b0SDave Hansen help 71a6c7f4c6SDan Williams Support access to persistent, or other performance 72a6c7f4c6SDan Williams differentiated memory as if it were System RAM. This allows 73a6c7f4c6SDan Williams easier use of persistent memory by unmodified applications, or 74a6c7f4c6SDan Williams adds core kernel memory services to heterogeneous memory types 75a6c7f4c6SDan Williams (HMEM) marked "reserved" by platform firmware. 76c221c0b0SDave Hansen 77c221c0b0SDave Hansen To use this feature, a DAX device must be unbound from the 78a6c7f4c6SDan Williams device_dax driver and bound to this kmem driver on each boot. 79c221c0b0SDave Hansen 80c221c0b0SDave Hansen Say N if unsure. 81c221c0b0SDave Hansen 82ab68f262SDan Williamsendif 83