psradm(8) on Solnix vs Linux and the BSDs

psradm is the illumos command at /usr/sbin/psradm that sets a processor's operational state (on-line, off-line, spare, faulted, no-intr, disabled). Linux chcpu and NetBSD cpuctl do similar jobs, but with different flags and states. psradm can also disable SMT siblings with -aS.

What Solnix runs

A default Solnix system runs the illumos psradm at /usr/sbin/psradm. No other variants are shipped. Only users with the PRIV_SYS_RES_CONFIG privilege can run it. To view processor state, see psrinfo(8).

Differences

Compared withTopicWhat differs
Linux, NetBSDcommand modelpsradm takes one state flag (-f, -i, -n, -s) plus processor IDs. Linux chcpu uses -e, -d, -c, -g with a cpu-list. NetBSD cpuctl takes a subcommand word (online, offline, intr, nointr). Flags do not carry over between them.
Source: Solnix psradm(8) SYNOPSIS; Linux chcpu(8) SYNOPSIS; NetBSD cpuctl(8) SYNOPSIS
LinuxID list syntaxpsradm takes IDs separated by spaces and ranges like 1-4, for example 1-3 5 7-8. Linux chcpu takes one comma-separated list such as 0,5,7,9-11.
Source: Solnix psradm(8) OPERANDS; Linux chcpu(8) DESCRIPTION
NetBSDID list syntaxpsradm accepts ranges such as 1-4 as processor_id. The NetBSD cpuctl page shows only 'cpu [cpu ...]' operands and does not mention ranges.
Source: Solnix psradm(8) OPERANDS; NetBSD cpuctl(8) offline, online
Linux, NetBSDprocessor statespsradm has six states: on-line, off-line, spare, faulted, no-intr and disabled. chcpu pages describe enable/disable (online/offline) and configure/deconfigure. cpuctl describes online, offline, and interrupts on or off. Neither page has spare or faulted.
Source: Solnix psradm(8) DESCRIPTION; Linux chcpu(8) -c, -d, -e, -g; NetBSD cpuctl(8) online, offline, intr, nointr
Linux, NetBSDforcing off-line with bound threadsOn Solnix, a processor with bound LWPs cannot go off-line, disabled or spare unless -F is used; -F removes the bindings first. The chcpu page does not mention bindings. NetBSD says bound LWPs keep running on an off-line CPU.
Source: Solnix psradm(8) DESCRIPTION, -F; NetBSD cpuctl(8) offline; Linux chcpu(8) -d
Linux, NetBSDdisabling SMTpsradm -aS puts the SMT siblings of each core in the disabled state, leaving one CPU per core in use. -a is required, and -F is needed to bring a CPU out of disabled. The chcpu and cpuctl pages document no SMT option.
Source: Solnix psradm(8) DESCRIPTION, -S; Linux chcpu(8) OPTIONS; NetBSD cpuctl(8) DESCRIPTION
Linux, NetBSDall-CPU optionpsradm -a applies the action to all processors, or as many as possible. The chcpu and cpuctl pages show no equivalent flag; you must name each CPU.
Source: Solnix psradm(8) -a; Linux chcpu(8) SYNOPSIS; NetBSD cpuctl(8) SYNOPSIS
Linuxexit statuspsradm returns 0 on success and >0 on any error. chcpu returns 0 for success, 1 for failure and 64 for partial success.
Source: Solnix psradm(8) EXIT STATUS; Linux chcpu(8) EXIT STATUS
Linux, NetBSDextra functionspsradm only changes processor state. chcpu also rescans for new CPUs (-r) and sets dispatch mode (-p). cpuctl also lists CPUs (list), identifies them (identify) and applies microcode (ucode). On Solnix, listing is done with psrinfo(8).
Source: Solnix psradm(8) SEE ALSO; Linux chcpu(8) -r, -p; NetBSD cpuctl(8) list, identify, ucode
NetBSD-v meaningpsradm -v prints a message with the result of each attempted operation. NetBSD cpuctl -v makes output more verbose and, for ucode, also reports errors for microcode already present.
Source: Solnix psradm(8) -v; NetBSD cpuctl(8) -v, ucode

Everyday tasks

TaskSolnixLinuxNetBSD
take a CPU off-linepsradm -f processor_idchcpu -d cpu-listcpuctl offline cpu
bring a CPU on-linepsradm -n processor_idchcpu -e cpu-listcpuctl online cpu
stop a CPU taking device interruptspsradm -i processor_id—cpuctl nointr cpu
allow a CPU to take interruptspsradm -n processor_id—cpuctl intr cpu
list CPU statesee psrinfo(8)see lscpu(1)cpuctl list

Standards

Writing portable scripts

  • Wrap CPU on-line and off-line changes in a function that picks psradm, chcpu or cpuctl by what is installed. Flags, ID list syntax and state names all differ.
  • Do not assume the same set of states elsewhere: spare, faulted and disabled are documented only for psradm.

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.