1What: /sys/bus/dax/devices/daxX.Y/align 2Date: October, 2020 3KernelVersion: v5.10 4Contact: nvdimm@lists.linux.dev 5Description: 6 (RW) Provides a way to specify an alignment for a dax device. 7 Values allowed are constrained by the physical address ranges 8 that back the dax device, and also by arch requirements. 9 10What: /sys/bus/dax/devices/daxX.Y/mapping 11Date: October, 2020 12KernelVersion: v5.10 13Contact: nvdimm@lists.linux.dev 14Description: 15 (WO) Provides a way to allocate a mapping range under a dax 16 device. Specified in the format <start>-<end>. 17 18What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/start 19What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/end 20What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/page_offset 21Date: October, 2020 22KernelVersion: v5.10 23Contact: nvdimm@lists.linux.dev 24Description: 25 (RO) A dax device may have multiple constituent discontiguous 26 address ranges. These are represented by the different 27 'mappingX' subdirectories. The 'start' attribute indicates the 28 start physical address for the given range. The 'end' attribute 29 indicates the end physical address for the given range. The 30 'page_offset' attribute indicates the offset of the current 31 range in the dax device. 32 33What: /sys/bus/dax/devices/daxX.Y/resource 34Date: June, 2019 35KernelVersion: v5.3 36Contact: nvdimm@lists.linux.dev 37Description: 38 (RO) The resource attribute indicates the starting physical 39 address of a dax device. In case of a device with multiple 40 constituent ranges, it indicates the starting address of the 41 first range. 42 43What: /sys/bus/dax/devices/daxX.Y/size 44Date: October, 2020 45KernelVersion: v5.10 46Contact: nvdimm@lists.linux.dev 47Description: 48 (RW) The size attribute indicates the total size of a dax 49 device. For creating subdivided dax devices, or for resizing 50 an existing device, the new size can be written to this as 51 part of the reconfiguration process. 52 53What: /sys/bus/dax/devices/daxX.Y/numa_node 54Date: November, 2019 55KernelVersion: v5.5 56Contact: nvdimm@lists.linux.dev 57Description: 58 (RO) If NUMA is enabled and the platform has affinitized the 59 backing device for this dax device, emit the CPU node 60 affinity for this device. 61 62What: /sys/bus/dax/devices/daxX.Y/target_node 63Date: February, 2019 64KernelVersion: v5.1 65Contact: nvdimm@lists.linux.dev 66Description: 67 (RO) The target-node attribute is the Linux numa-node that a 68 device-dax instance may create when it is online. Prior to 69 being online the device's 'numa_node' property reflects the 70 closest online cpu node which is the typical expectation of a 71 device 'numa_node'. Once it is online it becomes its own 72 distinct numa node. 73 74What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/available_size 75Date: October, 2020 76KernelVersion: v5.10 77Contact: nvdimm@lists.linux.dev 78Description: 79 (RO) The available_size attribute tracks available dax region 80 capacity. This only applies to volatile hmem devices, not pmem 81 devices, since pmem devices are defined by nvdimm namespace 82 boundaries. 83 84What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/size 85Date: July, 2017 86KernelVersion: v5.1 87Contact: nvdimm@lists.linux.dev 88Description: 89 (RO) The size attribute indicates the size of a given dax region 90 in bytes. 91 92What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/align 93Date: October, 2020 94KernelVersion: v5.10 95Contact: nvdimm@lists.linux.dev 96Description: 97 (RO) The align attribute indicates alignment of the dax region. 98 Changes on align may not always be valid, when say certain 99 mappings were created with 2M and then we switch to 1G. This 100 validates all ranges against the new value being attempted, post 101 resizing. 102 103What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/seed 104Date: October, 2020 105KernelVersion: v5.10 106Contact: nvdimm@lists.linux.dev 107Description: 108 (RO) The seed device is a concept for dynamic dax regions to be 109 able to split the region amongst multiple sub-instances. The 110 seed device, similar to libnvdimm seed devices, is a device 111 that starts with zero capacity allocated and unbound to a 112 driver. 113 114What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/create 115Date: October, 2020 116KernelVersion: v5.10 117Contact: nvdimm@lists.linux.dev 118Description: 119 (RW) The create interface to the dax region provides a way to 120 create a new unconfigured dax device under the given region, which 121 can then be configured (with a size etc.) and then probed. 122 123What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/delete 124Date: October, 2020 125KernelVersion: v5.10 126Contact: nvdimm@lists.linux.dev 127Description: 128 (WO) The delete interface for a dax region provides for deletion 129 of any 0-sized and idle dax devices. 130 131What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/id 132Date: July, 2017 133KernelVersion: v5.1 134Contact: nvdimm@lists.linux.dev 135Description: 136 (RO) The id attribute indicates the region id of a dax region. 137 138What: /sys/bus/dax/devices/daxX.Y/memmap_on_memory 139Date: January, 2024 140KernelVersion: v6.8 141Contact: nvdimm@lists.linux.dev 142Description: 143 (RW) Control the memmap_on_memory setting if the dax device 144 were to be hotplugged as system memory. This determines whether 145 the 'altmap' for the hotplugged memory will be placed on the 146 device being hotplugged (memmap_on_memory=1) or if it will be 147 placed on regular memory (memmap_on_memory=0). This attribute 148 must be set before the device is handed over to the 'kmem' 149 driver (i.e. hotplugged into system-ram). Additionally, this 150 depends on CONFIG_MHP_MEMMAP_ON_MEMORY, and a globally enabled 151 memmap_on_memory parameter for memory_hotplug. This is 152 typically set on the kernel command line - 153 memory_hotplug.memmap_on_memory set to 'true' or 'force'." 154