1 What: /sys/bus/dax/devices/daxX.Y/align
4 Contact: nvdimm@lists.linux.dev
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.
10 What: /sys/bus/dax/devices/daxX.Y/mapping
13 Contact: nvdimm@lists.linux.dev
15 (WO) Provides a way to allocate a mapping range under a dax
16 device. Specified in the format <start>-<end>.
18 What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/start
19 What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/end
20 What: /sys/bus/dax/devices/daxX.Y/mapping[0..N]/page_offset
23 Contact: nvdimm@lists.linux.dev
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.
33 What: /sys/bus/dax/devices/daxX.Y/resource
36 Contact: nvdimm@lists.linux.dev
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
43 What: /sys/bus/dax/devices/daxX.Y/size
46 Contact: nvdimm@lists.linux.dev
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.
53 What: /sys/bus/dax/devices/daxX.Y/numa_node
56 Contact: nvdimm@lists.linux.dev
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.
62 What: /sys/bus/dax/devices/daxX.Y/target_node
65 Contact: nvdimm@lists.linux.dev
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
74 What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/available_size
77 Contact: nvdimm@lists.linux.dev
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
84 What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/size
87 Contact: nvdimm@lists.linux.dev
89 (RO) The size attribute indicates the size of a given dax region
92 What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/align
95 Contact: nvdimm@lists.linux.dev
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
103 What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/seed
106 Contact: nvdimm@lists.linux.dev
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
114 What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/create
117 Contact: nvdimm@lists.linux.dev
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.
123 What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/delete
126 Contact: nvdimm@lists.linux.dev
128 (WO) The delete interface for a dax region provides for deletion
129 of any 0-sized and idle dax devices.
131 What: $(readlink -f /sys/bus/dax/devices/daxX.Y)/../dax_region/id
134 Contact: nvdimm@lists.linux.dev
136 (RO) The id attribute indicates the region id of a dax region.
138 What: /sys/bus/dax/devices/daxX.Y/memmap_on_memory
141 Contact: nvdimm@lists.linux.dev
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'."