Kconfig 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config DAX_DRIVER
  3. select DAX
  4. bool
  5. menuconfig DAX
  6. tristate "DAX: direct access to differentiated memory"
  7. select SRCU
  8. default m if NVDIMM_DAX
  9. if DAX
  10. config DEV_DAX
  11. tristate "Device DAX: direct access mapping device"
  12. depends on TRANSPARENT_HUGEPAGE
  13. help
  14. Support raw access to differentiated (persistence, bandwidth,
  15. latency...) memory via an mmap(2) capable character
  16. device. Platform firmware or a device driver may identify a
  17. platform memory resource that is differentiated from the
  18. baseline memory pool. Mappings of a /dev/daxX.Y device impose
  19. restrictions that make the mapping behavior deterministic.
  20. config DEV_DAX_PMEM
  21. tristate "PMEM DAX: direct access to persistent memory"
  22. depends on LIBNVDIMM && NVDIMM_DAX && DEV_DAX
  23. default DEV_DAX
  24. help
  25. Support raw access to persistent memory. Note that this
  26. driver consumes memory ranges allocated and exported by the
  27. libnvdimm sub-system.
  28. Say M if unsure
  29. config DEV_DAX_HMEM
  30. tristate "HMEM DAX: direct access to 'specific purpose' memory"
  31. depends on EFI_SOFT_RESERVE
  32. select NUMA_KEEP_MEMINFO if (NUMA && X86)
  33. default DEV_DAX
  34. help
  35. EFI 2.8 platforms, and others, may advertise 'specific purpose'
  36. memory. For example, a high bandwidth memory pool. The
  37. indication from platform firmware is meant to reserve the
  38. memory from typical usage by default. This driver creates
  39. device-dax instances for these memory ranges, and that also
  40. enables the possibility to assign them to the DEV_DAX_KMEM
  41. driver to override the reservation and add them to kernel
  42. "System RAM" pool.
  43. Say M if unsure.
  44. config DEV_DAX_HMEM_DEVICES
  45. depends on DEV_DAX_HMEM && DAX=y
  46. def_bool y
  47. config DEV_DAX_KMEM
  48. tristate "KMEM DAX: volatile-use of persistent memory"
  49. default DEV_DAX
  50. depends on DEV_DAX
  51. depends on MEMORY_HOTPLUG # for add_memory() and friends
  52. help
  53. Support access to persistent, or other performance
  54. differentiated memory as if it were System RAM. This allows
  55. easier use of persistent memory by unmodified applications, or
  56. adds core kernel memory services to heterogeneous memory types
  57. (HMEM) marked "reserved" by platform firmware.
  58. To use this feature, a DAX device must be unbound from the
  59. device_dax driver and bound to this kmem driver on each boot.
  60. Say N if unsure.
  61. config DEV_DAX_PMEM_COMPAT
  62. tristate "PMEM DAX: support the deprecated /sys/class/dax interface"
  63. depends on m && DEV_DAX_PMEM=m
  64. default DEV_DAX_PMEM
  65. help
  66. Older versions of the libdaxctl library expect to find all
  67. device-dax instances under /sys/class/dax. If libdaxctl in
  68. your distribution is older than v58 say M, otherwise say N.
  69. endif