| .TH CHMEM 8 "October 2016" "util-linux" "System Administration" |
| .SH NAME |
| chmem \- configure memory |
| .SH SYNOPSIS |
| .B chmem |
| .RB [ \-h "] [" \-V "] [" \-v "] [" \-e | \-d "]" |
| [\fISIZE\fP|\fIRANGE\fP|\fB\-b\fP \fIBLOCKRANGE\fP] |
| .SH DESCRIPTION |
| The chmem command sets a particular size or range of memory online or offline. |
| . |
| .IP "\(hy" 2 |
| Specify \fISIZE\fP as <size>[m|M|g|G]. With m or M, <size> specifies the memory |
| size in MiB (1024 x 1024 bytes). With g or G, <size> specifies the memory size |
| in GiB (1024 x 1024 x 1024 bytes). The default unit is MiB. |
| . |
| .IP "\(hy" 2 |
| Specify \fIRANGE\fP in the form 0x<start>-0x<end> as shown in the output of the |
| \fBlsmem\fP command. <start> is the hexadecimal address of the first byte and <end> |
| is the hexadecimal address of the last byte in the memory range. |
| . |
| .IP "\(hy" 2 |
| Specify \fIBLOCKRANGE\fP in the form <first>-<last> or <block> as shown in the |
| output of the \fBlsmem\fP command. <first> is the number of the first memory block |
| and <last> is the number of the last memory block in the memory |
| range. Alternatively a single block can be specified. \fIBLOCKRANGE\fP requires |
| the \fB--blocks\fP option. |
| . |
| .PP |
| \fISIZE\fP and \fIRANGE\fP must be aligned to the Linux memory block size, as |
| shown in the output of the \fBlsmem\fP command. |
| |
| Setting memory online can fail for various reasons. On virtualized systems it |
| can fail if the hypervisor does not have enough memory left, for example |
| because memory was overcommitted. Setting memory offline can fail if Linux |
| cannot free the memory. If only part of the requested memory can be set online |
| or offline, a message tells you how much memory was set online or offline |
| instead of the requested amount. |
| |
| When setting memory online \fBchmem\fP starts with the lowest memory block |
| numbers. When setting memory offline \fBchmem\fP starts with the highest memory |
| block numbers. |
| .SH OPTIONS |
| .TP |
| .BR \-b ", " \-\-blocks |
| Use a \fIBLOCKRANGE\fP parameter instead of \fIRANGE\fP or \fISIZE\fP for the |
| \fB--enable\fP and \fB--disable\fP options. |
| .TP |
| .BR \-d ", " \-\-disable |
| Set the specified \fIRANGE\fP, \fISIZE\fP, or \fIBLOCKRANGE\fP of memory offline. |
| .TP |
| .BR \-e ", " \-\-enable |
| Set the specified \fIRANGE\fP, \fISIZE\fP, or \fIBLOCKRANGE\fP of memory online. |
| .TP |
| .BR \-h ", " \-\-help |
| Print a short help text, then exit. |
| .TP |
| .BR \-v ", " \-\-verbose |
| Verbose mode. Causes \fBchmem\fP to print debugging messages about it's |
| progress. |
| .TP |
| .BR \-V ", " \-\-version |
| Print the version number, then exit. |
| .SH RETURN CODES |
| .B chmem |
| has the following return codes: |
| .TP |
| .BR 0 |
| success |
| .TP |
| .BR 1 |
| failure |
| .TP |
| .BR 64 |
| partial success |
| .SH EXAMPLES |
| .TP |
| .B chmem --enable 1024 |
| This command requests 1024 MiB of memory to be set online. |
| .TP |
| .B chmem -e 2g |
| This command requests 2 GiB of memory to be set online. |
| .TP |
| .B chmem --disable 0x00000000e4000000-0x00000000f3ffffff |
| This command requests the memory range starting with 0x00000000e4000000 |
| and ending with 0x00000000f3ffffff to be set offline. |
| .TP |
| .B chmem -b -d 10 |
| This command requests the memory block number 10 to be set offline. |
| .SH SEE ALSO |
| .BR lsmem (1) |
| .SH AVAILABILITY |
| The \fBchmem\fP command is part of the util-linux package and is available from |
| .UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/ |
| Linux Kernel Archive |
| .UE . |