In virtualized environments, the CPU architecture information displayed reflects the configuration of the guest operating system which is typically different from the physical (host) system. On architectures that support retrieving physical topology information, *lscpu* also displays the number of physical sockets, chips, cores in the host system.
-Options that result in an output table have a _list_ argument. Use this argument to customize the command output. Specify a comma-separated list of column labels to limit the output table to only the specified columns, arranged in the specified order. See *COLUMNS* for a list of valid column labels. The column labels are not case sensitive.
-
+Options that produce an output table accept an optional _list_ argument.
+This _list_ is a comma-separated series of column labels to limit the
+table to only the specified columns, arranged in the specified order.
+Use *--help* to see a list of valid column labels.
+The labels are case insensitive.
Not all columns are supported on all architectures. If an unsupported column is specified, *lscpu* prints the column but does not provide any data for it.
The cache sizes are reported as summary from all CPUs. The versions before v2.34 reported per-core sizes, but this output was confusing due to complicated CPUs topology and the way how caches are shared between CPUs. For more details about caches see *--cache*. Since version v2.37 *lscpu* follows cache IDs as provided by Linux kernel and it does not always start from zero.
+
If the _list_ argument is omitted, all columns for which data is available are included in the command output.
+
-When specifying the _list_ argument, the string of option, equal sign (=), and _list_ must not contain any blanks or other whitespace. Examples: *-C=NAME,ONE-SIZE* or *--caches=NAME,ONE-SIZE*.
+When specifying the _list_ argument, the option string plus the
+equal sign (=) plus the _list_ may not contain any whitespace.
+Examples: *-C=NAME,ONE-SIZE* or *--caches=NAME,ONE-SIZE*.
+
The default list of columns may be extended if list is specified in the format +list (e.g., **lscpu -C=+ALLOC-POLICY**).
*-c*, *--offline*::
Limit the output to offline CPUs. This option may only be specified together with option *-e* or *-p*.
-*--hierarchic*[**=**_when_]::
-Use subsections in summary output. For backward compatibility, the default is to use subsections only when output on a terminal and flattened output on a non-terminal. The optional argument _when_ can be *never*, *always* or *auto*. If the _when_ argument is omitted, it defaults to "always".
-
*-e*, *--extended*[**=**_list_]::
Display the CPU information in human-readable format.
+
If the _list_ argument is omitted, the default columns are included in the command output. The default output is subject to change.
+
-When specifying the _list_ argument, the string of option, equal sign (=), and _list_ must not contain any blanks or other whitespace. Examples: '*-e=cpu,node*' or '*--extended=cpu,node*'.
+When specifying the _list_ argument, the option string plus the
+equal sign (=) plus the _list_ may not contain any whitespace.
+Examples: *-e=cpu,node* or *--extended=cpu,node*.
+
The default list of columns may be extended if list is specified in the format +list (e.g., lscpu -e=+MHZ).
+*--hierarchic*[**=**_when_]::
+Use subsections in summary output. For backward compatibility, the default is to use subsections only when output on a terminal, and to use flattened output on a non-terminal. The optional argument _when_ can be *never*, *always*, or *auto*. If the _when_ argument is omitted, it defaults to *always*.
+
*-J*, *--json*::
Use JSON output format for the default summary or extended output (see
*--extended*). For backward compatibility, JSON output follows the default
summary behavior for non-terminals (e.g., pipes) where subsections are missing. See
also *--hierarchic*.
+*--output-all*::
+Output all available columns. This option must be combined with either *--extended*, *--parse*, or *--caches*.
+
*-p*, *--parse*[**=**_list_]::
Optimize the command output for easy parsing.
+
If the _list_ argument is omitted, the command output is compatible with earlier versions of *lscpu*. In this compatible format, two commas are used to separate CPU cache columns. If no CPU caches are identified the cache column is omitted. If the _list_ argument is used, cache columns are separated with a colon (:).
+
-When specifying the _list_ argument, the string of option, equal sign (=), and _list_ must not contain any blanks or other whitespace. Examples: '*-p=cpu,node*' or '*--parse=cpu,node*'.
+When specifying the _list_ argument, the option string plus the
+equal sign (=) plus the _list_ may not contain any whitespace.
+Examples: *-p=cpu,online,mhz* or *--parse=cpu,online,mhz*.
+
The default list of columns may be extended if list is specified in the format +list (e.g., lscpu -p=+MHZ).
+
The CPU logical numbers are not affected by this option.
-*--output-all*::
-Output all available columns. This option must be combined with either *--extended*, *--parse* or *--caches*.
-
include::man-common/help-version.adoc[]
== BUGS