PEPC-CPU-HOTPLUG(1)

πŸ“¦
version 2.0.7 Β· 2 versions
, in epel 10, epel 9, fedora 44

πŸ’– PEPC-CPU-HOTPLUG β€” bestie edition πŸ’–

okay so real talk: this is the pepc-cpu-hotplug command, hanging out in section 1 of the General Commands Manual. It's the little sibling command that handles CPU hotplug β€” turning CPUs on and off like a light switch, but for cores. Slay. Let's get into it. πŸŽ€


✨ GENERAL OPTIONS ✨

Every good girlboss command needs her starter pack of flags. Here's the whole roster. πŸ’…

  • -h β€” show a short help message and dip out. bye. πŸ‘‹
  • -q β€” be quiet. Like, only the important stuff gets through (warnings and whatnot). 🀫
  • -d β€” spill the debugging tea. 🍡
  • --debug-modules MODNAME[,MODNAME1,...] β€” so -d turns on all the debug messages, which is a LOT. This one narrows it down to just the modules you name. Example: -d --debug-modules MSR shows only the debug messages coming from the MSR module. Targeted. Focused. Main character energy. ✨
  • --version β€” print the version number and exit.
  • -H HOSTNAME, --host HOSTNAME β€” the host name or IP address of the target system. The pepc command gets run over on that system using SSH instead of locally. Don't specify it? Then it just runs locally, nbd. 🏠
  • -U USERNAME, --username USERNAME β€” which user you're logging in as on the remote host over SSH. By default it goes looking for the user name in SSH configuration files, and if it can't find one, it falls back to your current user name.
  • -K PRIVKEY, --priv-key PRIVKEY β€” path to the private SSH key for logging into the remote host. Not specified? Then the keys configured for that host in SSH configuration files (like ~/.ssh/config) get used. And if there's nothing configured there either, it tries the standard key files (like ~/.ssh/id_rsa) plus the SSH agent. It's giving "I'll find a way in, trust". πŸ”‘
  • -D DATASET, --dataset DATASET β€” heads up, this one is for debugging and testing only. It says which dataset to use for emulating the host that the command runs on. The datasets live in the pepc source code repository. The argument can be either a dataset path or a dataset name β€” and if you go with a name, it searches these spots, in order:
    1. ./tests/emul-data in the program's directory
    2. $PEPC_DATA_PATH/tests/emul-data
    3. $VIRTUAL_ENV/share/pepc/tests/emul-data
    4. $HOME/.local/share/pepc/tests/emul-data
    5. /usr/local/share/pepc/tests/emul-data
    6. /usr/share/pepc/tests/emul-data
  • --force-color β€” forces colorized output even when the output stream isn't a terminal (it just adds ANSI escape codes). Rainbow mode: activated. 🌈
  • --print-man-path β€” prints the pepc manual pages directory path and exits. Drop that path into the MANPATH environment variable and boom, the manual pages are available to the man tool. 🫢

πŸ¦‹ SUBCOMMAND 'info' πŸ¦‹

Displays the list of online and offline CPUs. It reads from /sys/devices/system/cpu/online and /sys/devices/system/cpu/offline. That's it, that's the whole vibe. ✨


πŸ”₯ SUBCOMMAND 'online' πŸ”₯

Brings the CPUs you specify online by writing 1 to /sys/devices/system/cpu/cpu<N>/online.

  • --cpus CPUS β€” the list can hold individual CPU numbers and CPU number ranges. For example, 1-4,7,8,10-12 means CPUs 1 to 4, CPUs 7, 8, and 10 to 12. There's also the special keyword all to grab every CPU. πŸ‘‘

πŸ’œ SUBCOMMAND 'offline' πŸ’œ

Brings the CPUs you specify offline by writing 0 to /sys/devices/system/cpu/cpu<N>/online. This one has the full arsenal of selectors, so let's go. πŸ’…

  • --cpus CPUS β€” individual CPU numbers and CPU number ranges. For example, 1-4,7,8,10-12 means CPUs 1 to 4, CPUs 7, 8, and 10 to 12. Special keyword all = every CPU.
  • --cores CORES β€” individual core numbers and core number ranges. For example, 1-4,7,9-11 means cores 1 to 4, cores 7, 9, 10, and 11. Special keyword all = every core. Core numbers are relative to the package. Just so you know. πŸ’«
  • --modules MODULES β€” individual module numbers and module number ranges. For example, 0,2-5 means module 0 and modules 2, 3, 4, and 5. Special keyword all = every module. Watch out: unlike core and die numbers, module numbers are absolute. 😀
  • --dies DIES β€” individual die numbers and die number ranges. For example, 0-3,5 means dies 0 to 3, and die 5. Special keyword all = every die. Lowkey chaotic detail: on some systems die numbers are globally unique, while on others they're relative to the package. πŸ™ˆ
  • --packages PACKAGES β€” individual package numbers and package number ranges. For example, 0,2-4 means package 0 and packages 2, 3, and 4. Special keyword all = every package.
  • --core-siblings *CORE_SIBLINGS* β€” core siblings are the CPUs that share the same core. The list can hold individual core sibling indices or index ranges. Example: if a core includes CPUs 2 and 3, then index 0 means CPU 2 and index 1 means CPU 3. Important: this option can only reference online CPUs, because Linux does not provide topology information for offline CPUs. So in that same example, if CPU 2 were offline, index 0 would mean CPU 3. On Intel processors with hyper-threading, this is typically used to offline hyperthreads. 🧡
  • --module-siblings *MODULE_SIBLINGS* β€” module siblings are the CPUs that share the same module. The list can hold individual module sibling indices or index ranges. Example: if a module includes CPUs 4, 5, 6, and 7, then index 0 means CPU 4, index 1 means CPU 5, index 2 means CPU 6, and index 3 means CPU 7. Same warning as above: this can only reference online CPUs, because Linux doesn't hand out topology info for offline CPUs. In that example with CPUs 4, 5, 6, and 7 β€” if CPU 5 were offline, index 1 would mean CPU 6, index 2 would mean CPU 7, and index 3 would be invalid. πŸ’€

and that's the whole page, bestie!! you made it to the end, I'm so proud πŸ₯Ή

This has been PEPC-CPU-HOTPLUG(1), brought to you by the General Commands Manual β€” same manual, same name up top, same name down here, no cap. Now go forth and hotplug responsibly, queen. πŸ‘‘πŸ’–πŸŒΈ

πŸ“¦ where this page comes from