xref: /openbmc/linux/drivers/dax/Kconfig (revision 7dab174e)
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