1DAXCTL-RECONFIGURE-DEVICE(1) daxctl Manual DAXCTL-RECONFIGURE-DEVICE(1)
2
3
4
6 daxctl-reconfigure-device - Reconfigure a dax device into a different
7 mode
8
10 daxctl reconfigure-device <dax0.0> [<dax1.0>...<daxY.Z>] [<options>]
11
13 · Reconfigure dax0.0 to system-ram mode, don’t online the memory
14
15 # daxctl reconfigure-device --mode=system-ram --no-online dax0.0
16 [
17 {
18 "chardev":"dax0.0",
19 "size":16777216000,
20 "target_node":2,
21 "mode":"system-ram"
22 }
23 ]
24
25 · Reconfigure dax0.0 to devdax mode, attempt to offline the memory
26
27 # daxctl reconfigure-device --human --mode=devdax --force dax0.0
28 {
29 "chardev":"dax0.0",
30 "size":"15.63 GiB (16.78 GB)",
31 "target_node":2,
32 "mode":"devdax"
33 }
34
35 · Reconfigure all dax devices on region0 to system-ram mode
36
37 # daxctl reconfigure-device --mode=system-ram --region=0 all
38 [
39 {
40 "chardev":"dax0.0",
41 "size":16777216000,
42 "target_node":2,
43 "mode":"system-ram"
44 },
45 {
46 "chardev":"dax0.1",
47 "size":16777216000,
48 "target_node":3,
49 "mode":"system-ram"
50 }
51 ]
52
53 · Run a process called some-service using numactl to restrict its cpu
54 nodes to 0 and 1, and memory allocations to node 2 (determined
55 using daxctl_dev_get_target_node() or daxctl list)
56
57 # daxctl reconfigure-device --mode=system-ram dax0.0
58 [
59 {
60 "chardev":"dax0.0",
61 "size":16777216000,
62 "target_node":2,
63 "mode":"system-ram"
64 }
65 ]
66
67 # numactl --cpunodebind=0-1 --membind=2 -- some-service --opt1 --opt2
68
70 Reconfigure the operational mode of a dax device. This can be used to
71 convert a regular devdax mode device to the system-ram mode which
72 arranges for the dax range to be hot-plugged into the system as regular
73 memory.
74
75 Note
76 This is a destructive operation. Any data on the dax device will be
77 lost.
78
79 Note
80 Device reconfiguration depends on the dax-bus device model. See
81 daxctl-migrate-device-model(1) for more information. If dax-class
82 is in use (via the dax_pmem_compat driver), the reconfiguration
83 will fail with an error such as the following:
84
85 # daxctl reconfigure-device --mode=system-ram --region=0 all
86 libdaxctl: daxctl_dev_disable: dax3.0: error: device model is dax-class
87 dax3.0: disable failed: Operation not supported
88 error reconfiguring devices: Operation not supported
89 reconfigured 0 devices
90
91 daxctl-reconfigure-device nominally expects that it will online new
92 memory blocks as movable, so that kernel data doesn’t make it into this
93 memory. However, there are other potential agents that may be
94 configured to automatically online new hot-plugged memory as it
95 appears. Most notably, these are the
96 /sys/devices/system/memory/auto_online_blocks configuration, or system
97 udev rules. If such an agent races to online memory sections, daxctl
98 checks if the blocks were onlined as movable memory. If this was not
99 the case, and the memory blocks are found to be in a different zone,
100 then a warning is displayed. If it is desired that a different agent
101 control the onlining of memory blocks, and the associated memory zone,
102 then it is recommended to use the --no-online option described below.
103 This will abridge the device reconfiguration operation to just
104 hotplugging the memory, and refrain from then onlining it.
105
107 -r, --region=
108 Restrict the operation to devices belonging to the specified
109 region(s). A device-dax region is a contiguous range of memory that
110 hosts one or more /dev/daxX.Y devices, where X is the region id and
111 Y is the device instance id.
112
113 -m, --mode=
114 Specify the mode to which the dax device(s) should be reconfigured.
115
116 · "system-ram": hotplug the device into system memory.
117
118 · "devdax": switch to the normal "device dax" mode. This requires
119 the kernel to support hot-unplugging kmem based memory. If this
120 is not available, a reboot is the only way to switch back to
121 devdax mode.
122
123 -N, --no-online
124 By default, memory sections provided by system-ram devices will be
125 brought online automatically and immediately with the
126 online_movable policy. Use this option to disable the automatic
127 onlining behavior.
128
129 --no-movable
130 --movable is the default. This can be overridden to online new
131 memory such that is is not movable. This allows any allocation to
132 potentially be served from this memory. This may preclude
133 subsequent removal. With the --movable behavior (which is default),
134 kernel allocations will not consider this memory, and it will be
135 reserved for application use.
136
137 -f, --force
138 When converting from "system-ram" mode to "devdax", it is expected
139 that all the memory sections are first made offline. By default,
140 daxctl won’t touch online memory. However with this option, attempt
141 to offline the memory on the NUMA node associated with the dax
142 device before converting it back to "devdax" mode.
143
144 -u, --human
145 By default the command will output machine-friendly raw-integer
146 data. Instead, with this flag, numbers representing storage size
147 will be formatted as human readable strings with units, other
148 fields are converted to hexadecimal strings.
149
150 -v, --verbose
151 Emit more debug messages
152
154 Copyright (c) 2016 - 2019, Intel Corporation. License GPLv2: GNU GPL
155 version 2 http://gnu.org/licenses/gpl.html. This is free software: you
156 are free to change and redistribute it. There is NO WARRANTY, to the
157 extent permitted by law.
158
160 daxctl-list(1),daxctl-migrate-device-model[1]
161
162
163
164daxctl 2020-03-24 DAXCTL-RECONFIGURE-DEVICE(1)