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