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.

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 withTopicWhat differs
Linuxselecting CPUs: -PSolnix -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 }
Linuxprocessor sets and -a / -pSolnix -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 meaningSolnix -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
Linuxno-argument and interval 0 behaviourSolnix 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
Linuxcolumn names and contentSolnix 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
Linuxwt / %iowaitOn 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
Linuxall-CPU average rowLinux 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
Linuxstate-change messagesSolnix 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
Linuxmissing Linux optionsSolnix 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
Linuxzones and poolsIn 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
Linuxoutput stabilityThe 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 -P or -T meaning the same thing on both systems: -P selects a processor set on Solnix and a CPU list on Linux, and -T takes 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.