xref: /linux/Documentation/ABI/testing/sysfs-bus-dax (revision 3e5a516f3bf1a33f2bf219f570e9b5c031616f6a)
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