|
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | ENVIRONMENT | AUTHORS | SEE ALSO | REPORTING BUGS | AVAILABILITY |
|
|
|
LSMEM(1) User Commands LSMEM(1)
lsmem - list the ranges of available memory with their online
status
lsmem [options]
The lsmem command lists the ranges of available memory with their
online status. The listed memory blocks correspond to the memory
block representation in sysfs. The command also shows the memory
block size and the amount of memory in online and offline state.
The default output is compatible with original implementation from
s390-tools, but it’s strongly recommended to avoid using default
outputs in your scripts. Always explicitly define expected columns
by using the --output option together with a columns list in
environments where a stable output is required.
The lsmem command lists a new memory range always when the current
memory block distinguish from the previous block by some output
column. This default behavior is possible to override by the
--split option (e.g., lsmem --split=ZONES). The special word
"none" may be used to ignore all differences between memory blocks
and to create as large as possible continuous ranges. The opposite
semantic is --all to list individual memory blocks.
Note that some output columns may provide inaccurate information
if a split policy forces lsmem to ignore differences in some
attributes. For example if you merge removable and non-removable
memory blocks to the one range than all the range will be marked
as non-removable on lsmem output.
The supported columns are RANGE, SIZE, STATE, REMOVABLE, BLOCK,
NODE, ZONES, CONFIGURED, MEMMAP-ON-MEMORY. RANGE The start and end
physical address of the memory range.
SIZE The size of the memory range, representing the total amount
of memory in that range.
STATE The current online status of the memory range. Common states
include online, offline or transitional states.
BLOCK The specific memory block number.
NODE The NUMA (Non-Uniform Memory Access) node to which the memory
block belongs.
ZONES The memory zones to which the blocks belongs, such as DMA,
Normal, Movable.
CONFIGURED The configuration state of a memory block. Refer to
chmem for details on configuring or deconfiguring memory blocks.
MEMMAP-ON-MEMORY The memmap-on-memory state of the memory block at
configuration time. This setting indicates where memory hotplug
stores its internal metadata (the struct pages array or memmap).
If MEMMAP-ON-MEMORY is set to 1, the metadata is allocated
directly from the newly added hotplugged memory, enabling hot-add
operations even when the system is under high memory pressure. If
set to 0, the memmap metadata is allocated from existing system
memory.
Possible BLOCK, CONFIGURED, STATE, MEMMAP-ON-MEMORY states
┌───────┬─────────┬────────────┬──────────────────┬──────────────────┐
│ │ │ │ │ │
│ BLOCK │ STATE │ CONFIGURED │ MEMMAP-ON-MEMORY │ Description │
├───────┼─────────┼────────────┼──────────────────┼──────────────────┤
│ │ │ │ │ │
│ 0 │ online │ yes │ yes/no │ The memory │
│ │ │ │ │ is │
│ │ │ │ │ configured │
│ │ │ │ │ with │
│ │ │ │ │ memmap-on-memory │
│ │ │ │ │ set to (1 or │
│ │ │ │ │ 0) and │
│ │ │ │ │ memory is │
│ │ │ │ │ currently │
│ │ │ │ │ online. │
├───────┼─────────┼────────────┼──────────────────┼──────────────────┤
│ │ │ │ │ │
│ 1 │ offline │ yes │ yes/no │ The memory is │
│ │ │ │ │ configured, but │
│ │ │ │ │ memory is │
│ │ │ │ │ offline. │
├───────┼─────────┼────────────┼──────────────────┼──────────────────┤
│ │ │ │ │ │
│ 2 │ offline │ no │ yes/no │ The memory is │
│ │ │ │ │ offline and │
│ │ │ │ │ deconfigured. │
└───────┴─────────┴────────────┴──────────────────┴──────────────────┘
Not all columns are supported on all systems. If an unsupported
column is specified, lsmem prints the column but does not provide
any data for it. Additionally, lsmem may skip columns like
CONFIGURED or MEMMAP-ON-MEMORY if these states are not relevant to
the system’s architecture.
Use the --help option to see the columns description.
Memmap on memory parameter output displays the globally enabled
memmap-on-memory setting for memory_hotplug. This is typically set
on the kernel command line via memory_hotplug.memmap_on_memory.
-a, --all
List each individual memory block, instead of combining memory
blocks with similar attributes.
-b, --bytes
Print sizes in bytes rather than in human-readable form.
By default, sizes are shown in units that are powers of 1024
bytes. The formal abbreviations for these units (KiB, MiB,
GiB, ...) are further shortened to just their first letter: K,
M, G, ....
-J, --json
Use JSON output format.
-n, --noheadings
Do not print a header line.
-o, --output list
Specify which output columns to print. Use --help to obtain a
list of all supported columns. To extend the default list of
columns specify list in the format +list. For example, lsmem
-o +NODE.
--output-all
Output all available columns.
-P, --pairs
Produce output in the form of key="value" pairs. All
potentially unsafe value characters are hex-escaped
(\x<code>).
-r, --raw
Produce output in raw format. All potentially unsafe
characters are hex-escaped (\x<code>).
-S, --split list
Specify which columns are used to split memory blocks to
ranges. The supported columns are STATE, REMOVABLE, NODE,
ZONES, CONFIGURED, MEMMAP-ON-MEMORY or "none". The other
columns are silently ignored. For more details see DESCRIPTION
above.
-s, --sysroot directory
Gather memory data for a Linux instance other than the
instance from which the lsmem command is issued. The specified
directory is the system root of the Linux instance to be
inspected.
--summary[=when]
This option controls summary lines output. The optional
argument when can be never, always or only. If the when
argument is omitted, it defaults to "only". The summary output
is suppressed for --raw, --pairs and --json.
-h, --help
Display help text and exit.
-V, --version
Display version and exit.
LSMEM_COLUMNS=
Specifies a comma-separated list of output columns to print.
All columns listed in --help can be used.
lsmem was originally written by Gerald Schaefer for s390-tools in
Perl. The C version for util-linux was written by Clemens von
Mann, Heiko Carstens and Karel Zak.
chmem(8)
For bug reports, use the issue tracker
<https://github.com/util-linux/util-linux/issues>.
The lsmem command is part of the util-linux package which can be
downloaded from Linux Kernel Archive
<https://www.kernel.org/pub/linux/utils/util-linux/>. This page is
part of the util-linux (a random collection of Linux utilities)
project. Information about the project can be found at
⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩. If you have a
bug report for this manual page, send it to
util-linux@vger.kernel.org. This page was obtained from the
project's upstream Git repository
⟨git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git⟩ on
2026-01-16. (At that time, the date of the most recent commit that
was found in the repository was 2026-01-14.) If you discover any
rendering problems in this HTML version of the page, or you
believe there is a better or more up-to-date source for the page,
or you have corrections or improvements to the information in this
COLOPHON (which is not part of the original manual page), send a
mail to man-pages@man7.org
util-linux 2.42-start-1036-e... 2025-12-04 LSMEM(1)
Pages that refer to this page: chmem(8)