mpstat(8) on Solnix vs Linux and the BSDs
On Solnix, mpstat is the illumos mpstat at /usr/bin/mpstat, documented in section 8. It reports per-CPU or per-processor-set counters (faults, cross-calls, context switches, mutex spins) plus usr/sys/wt/idl. The Linux sysstat mpstat has different options and columns, and it can print JSON.
The manual pages
- Solnix: mpstat(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: mpstat(1) sysstat-12.7.7
What Solnix runs
A default Solnix system runs the illumos mpstat at /usr/bin/mpstat. No other variants are shipped. The page is published in section 8 by pkgs.solnix.illumos-world-man. The bundle has no FreeBSD, OpenBSD or NetBSD mpstat page, so no BSD comparison is made.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | selecting CPUs: -P | Solnix -P takes a processor set ID and shows only the CPUs in that set. Linux -P takes a CPU list or ALL (for example 0,2,4-7) and selects individual processors.Source: Solnix mpstat(8) -P set; Linux mpstat(1) -P { cpu_list | ALL } |
| Linux | processor sets and -a / -p | Solnix -a aggregates output by processor set, and -p adds set membership to each CPU row. Neither exists on Linux, where the Linux page documents no processor-set concept.Source: Solnix mpstat(8) -a, -p; Linux mpstat(1) OPTIONS |
| Linux | -T meaning | Solnix -T u|d takes an argument and prints a timestamp, as a time(2) number (u) or in date(1) format (d). Linux -T takes no argument and adds CORE, SOCK and NODE topology columns to the CPU report.Source: Solnix mpstat(8) -T u | d; Linux mpstat(1) -T |
| Linux | no-argument and interval 0 behaviour | Solnix prints a first table covering all activity since boot, then one table per interval. Linux treats an interval of 0, or no parameters, as since-boot. Linux with an interval and no count reports continuously. The Solnix page does not state the no-count behaviour. Source: Solnix mpstat(8) DESCRIPTION, interval, count; Linux mpstat(1) DESCRIPTION |
| Linux | column names and content | Solnix reports minf, mjf, xcal, intr, ithr, csw, icsw, migr, smtx, srw, syscl, usr, sys, wt, idl, as rates per second except usr/sys/wt/idl. Linux -u reports %usr, %nice, %sys, %iowait, %irq, %soft, %steal, %guest, %gnice, %idle. Scripts parsing column headers will break.Source: Solnix mpstat(8) DESCRIPTION column list; Linux mpstat(1) -u |
| Linux | wt / %iowait | On Solnix, wt is always zero because I/O wait is no longer calculated. Linux %iowait is the percentage of idle time with an outstanding disk I/O request. Source: Solnix mpstat(8) wt; Linux mpstat(1) -u %iowait |
| Linux | all-CPU average row | Linux reports a global average row (all) alongside the per-CPU rows. The Solnix page describes one row per processor and no average row. With -a it aggregates by processor set.Source: Linux mpstat(1) DESCRIPTION, -P; Solnix mpstat(8) DESCRIPTION, -a |
| Linux | state-change messages | Solnix prints messages such as <<pset created: 1>> or <<processors added: 1, 3>> inside the output when CPUs or sets change. -q suppresses them. Linux has no -q, and -H handles hotplugged vCPUs.Source: Solnix mpstat(8) DESCRIPTION, -q; Linux mpstat(1) -H |
| Linux | missing Linux options | Solnix has no -A, --dec, -H, -I, -N, -n, -o JSON, -u or -V. Linux has no interrupt, NUMA node or JSON reporting on Solnix: use iostat(8) or sar for related data. The S_COLORS colour variable is documented only for Linux.Source: Solnix mpstat(8) SYNOPSIS; Linux mpstat(1) SYNOPSIS, OPTIONS, ENVIRONMENT |
| Linux | zones and pools | In a Solnix zone bound to an active pool, mpstat shows only the processors in that pool's processor set. The Linux page documents no equivalent restriction. Source: Solnix mpstat(8) NOTES |
| Linux | output stability | The Solnix mpstat command line is Evolving, and its output is Not-An-Interface and may change at any time. The Linux page documents JSON output (-o JSON) with an undefined field order.Source: Solnix mpstat(8) INTERFACE STABILITY; Linux mpstat(1) -o JSON |
Standards
- POSIX: mpstat is not a POSIX.1-2024 utility.
- Solnix: Interface Stability: the command line interface is Evolving. The output is Not-An-Interface and may change at any time.
Writing portable scripts
- Do not parse mpstat output in a portable script. Column names, counters and the first-table behaviour differ between Solnix and Linux, and Solnix documents its output as Not-An-Interface.
- Do not rely on
-Por-Tmeaning the same thing on both systems:-Pselects a processor set on Solnix and a CPU list on Linux, and-Ttakes an argument only on Solnix.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.