Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


CPUCTL(8)                   System Manager's Manual                  CPUCTL(8)

NAME
     cpuctl - program to control CPUs

SYNOPSIS
     cpuctl [-v] command [arguments]

DESCRIPTION
     The cpuctl command can be used to control and inspect the state of CPUs
     in the system.

     The first argument, command, specifies the action to take.  Valid
     commands are:

     identify cpu [cpu ...]
               Output information on the specified CPU's features and
               capabilities.  Not available on all architectures.

     intr cpu [cpu ...]
               Enable interrupts for the specified CPUs if supported.

     list      For each CPU in the system, display the current state and time
               of the last state change.

     nointr cpu [cpu ...]
               Disable interrupts for the specified CPUs if supported.

     offline cpu [cpu ...]
               Set the specified CPUs off line.

               Unbound LWPs (lightweight processes) will not be executed on a
               CPU while it is off line.  Bound LWPs will continue to be
               executed on the CPUs, and device interrupts routed to the CPUs
               will continue to be handled.  A future release of the system
               may allow device interrupts to be re-routed away from
               individual CPUs.

               At least one CPU in the system must remain on line.

     online cpu [cpu ...]
               Set the specified CPUs on line, making them available to run
               unbound LWPs.

     ucode [cpu] [file]
               This applies the microcode patch to CPUs.  Unless -v was given,
               errors indicating that the microcode already exists on the CPU
               in question are ignored.  If cpu is not specified or -1, all
               CPUs are updated.  (AMD CPU updates need to be update all CPUs
               at once.)  If cpu is -2, the current CPUs are updated.  The
               default filename is used if no filename is specified.  The file
               pathname containing the ucode updates are searched relative to
               the default firmware path found in sysctl(7) hw.firmware.path.
               The identify command prints the installed version on the
               specified CPUs.  On success the identify command shows
               different ucode versions before and after this command.

               Some problems will only be reported in the kernel message
               buffer, so check dmesg(8) in case of errors.

     Valid flags are:

     -v      Be more verbose.

FILES
     /dev/cpuctl  control device
     /libdata/firmware/x86/amd/
                  The directory to install the microcode file for AMD CPUs
                  into.  The default filename is microcode_amd.bin for CPU
                  families 0x10 to 0x14.  The default filename is
                  microcode_amd_famXXh.bin where XX is the CPU family starting
                  with 15 (hex).  Get it from
                  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amd-ucode

EXAMPLES
     Run
           cpuctl identify 0
     and you should see something like this:

           cpu0: UCode version: 0x1000080

     After applying the microcode patch with
           cpuctl ucode 0
     you can see with
           cpuctl identify 0
     that the patch got applied:

           cpu0: UCode version: 0x1000083

SEE ALSO
     intrctl(8), psrset(8), schedctl(8), sysctl(8), firmload(9)

HISTORY
     The cpuctl command first appeared in NetBSD 5.0.

NetBSD 10.99                  September 12, 2023                  NetBSD 10.99