PEPC-PMQOS(1)
β¨ Command pmqos β¨
okay so bestie, meet pmqos π
β the PM QoS (Power Management Quality of Service) command. Here's everything it can do, no skips, no cap.
π General options π
-hβ show a short help message and dip out. bye π-qβ be quiet. Only the important stuff gets printed, like warnings.-dβ print debugging information.--debug-modules MODNAME[,MODNAME1,...]β okay so-dturns on every single debug message, which is a lot. This option narrows them down to just the modules you name. For example,-d --debug-modules MSRwill only show debug messages coming from theMSRmodule. obsessed with the precision β¨--versionβ print the version number and exit.-H HOSTNAME,--host HOSTNAMEβ the host name or IP address of the target system. Thepepccommand will be executed on that system using SSH instead of running locally. If you don't specify it, the command runs locally. π-U USERNAME,--username USERNAMEβ the name of the user to use for logging into the remote host over SSH. By default it looks up the user name in SSH configuration files, and if it's not found there, it uses the current user name.-K PRIVKEY,--priv-key PRIVKEYβ path to the private SSH key for logging into the remote host. If you don't specify one, the keys configured for the host in SSH configuration files (e.g.~/.ssh/config) get used. If no keys are configured there, standard key files (e.g.~/.ssh/id_rsa) and the SSH agent are tried. π-D DATASET,--dataset DATASETβ this one is for debugging and testing, bestie. It specifies the dataset to use for emulating the host you're running the command on. The datasets live in thepepcsource code repository.
The argument can be a dataset path or a dataset name. If you specify it by name, these locations get searched for the dataset:
./tests/emul-datain the program's directory$PEPC_DATA_PATH/tests/emul-data$VIRTUAL_ENV/share/pepc/tests/emul-data$HOME/.local/share/pepc/tests/emul-data/usr/local/share/pepc/tests/emul-data/usr/share/pepc/tests/emul-data
--force-colorβ force colorized output even if the output stream is not a terminal (it adds ANSI escape codes). slay π--print-man-pathβ print thepepcmanual pages directory path and exit. Add this path to theMANPATHenvironment variable to make the manual pages available to themantool. π
πΈ Target CPU specification options πΈ
All subcommands (info, config) accept the following target CPU specification options. π―
--cpus CPUSβ the list can include individual CPU numbers and CPU number ranges. For example,1-4,7,8,10-12would mean CPUs 1 to 4, CPUs 7, 8, and 10 to 12. Use the special keywordallto specify all CPUs.--cores CORESβ the list can include individual core numbers and core number ranges. For example,1-4,7,8,10-12would mean cores 1 to 4, cores 7, 8, and 10 to 12. Use the special keywordallto specify all cores. Core numbers are relative to the package.--modules MODULESβ the list can include individual module numbers and module number ranges. For example,0,2-5would mean module 0 and modules 2, 3, 4, and 5. Use the special keywordallto specify all modules. Note that unlike core and die numbers, module numbers are absolute. π--dies DIESβ the list can include individual die numbers and die number ranges. For example,0-3,5would mean dies 0 to 3, and die 5. Use the special keywordallto specify all dies. On some systems, die numbers are globally unique, while on other systems they are relative to the package. it's giving "depends on the system" energy π--packages PACKAGESβ the list can include individual package numbers and package number ranges. For example,0,2-4would mean package 0 and packages 2 to 4. Use the special keywordallto specify all packages.--core-siblingsCORE_SIBLINGS β core siblings are CPUs sharing the same core. The list can include individual core sibling indices or index ranges. For example, if a core includes CPUs 3 and 4, index 0 would mean CPU 3 and index 1 would mean CPU 4. This option can only be used to reference online CPUs, because Linux does not provide topology information for offline CPUs. In the example with CPUs 3 and 4, if CPU 3 was offline, then index 0 would mean CPU 4 and index 1 would be invalid. π--module-siblingsMODULE_SIBLINGS β module siblings are CPUs sharing the same module. The list can include individual module sibling indices or index ranges. For example, if a module includes CPUs 3, 4, 5, and 6, index 0 would mean CPU 3, index 1 would mean CPU 4, index 2 would mean CPU 5, and index 3 would mean CPU 6. This option can only be used to reference online CPUs, because Linux does not provide topology information for offline CPUs. In the example with CPUs 3, 4, 5, and 6, if CPU 4 was offline, then index 1 would mean CPU 5, index 2 would mean CPU 6, and index 3 would be invalid. same energy, different sibling π§
π¦ Subcommand info π¦
Retrieve PM QoS (Power Management Quality of Service) information for specified CPUs. By default, display all details for all CPUs. Use the target CPU specification options to define a subset of CPUs, cores, dies, or packages. π
-m MECHANISMS,--mechanisms MECHANISMSβ a comma-separated list of mechanisms for retrieving information. Use--list-mechanismsto view the available mechanisms. Many options support only one mechanism (e.g.,sysfs), while others may support multiple. Mechanisms are tried in the specified order. By default, all mechanisms are allowed, and the most preferred ones are tried first.--list-mechanismsβ display the available mechanisms for retrieving PM QoS information.--latency-limitβ retrieve the per-CPU Linux PM QoS limit. This limit affects C-state selection by restricting the kernel from using C-states with latencies exceeding the specified limit. For example, a50uslimit ensures the kernel only selects C-states with latencies β€50us. The limit is read from/sys/devices/system/cpu/cpu<N>/power/pm_qos_resume_latency_us. π΄π€--global-latency-limitβ retrieve the global Linux PM QoS limit. This limit, unlike the per-CPU latency limit, applies globally. It is read from the/dev/cpu_dma_latencydevice node. π--yamlβ display information in YAML format. π
π Subcommand config π
Configure PM QoS (Power Management Quality of Service) for specified CPUs. If no parameter is provided, the current value(s) will be displayed. Use the target CPU specification options to define the subset of CPUs, cores, dies, or packages. π οΈ
-m MECHANISMS,--mechanisms MECHANISMSβ a comma-separated list of mechanisms allowed for configuring PM QoS. Use--list-mechanismsto view the available mechanisms. Mechanisms are tried in the specified order. By default, all mechanisms are allowed, and the most preferred ones are tried first.--list-mechanismsβ display the available mechanisms for configuring PM QoS.--latency-limit [LATENCY_LIMIT]β set the per-CPU Linux PM QoS limit, which restricts the kernel from using C-states with latencies exceeding the specified value. For example, a50uslimit ensures the kernel selects only C-states with latencies β€50us. The limit is configured via/sys/devices/system/cpu/cpu<N>/power/pm_qos_resume_latency_us. The default unit isus(microseconds), butns,ms, andsunits are also supported (e.g.,1ms). Value0disables the limit.
Note: Setting the global latency limit is unsupported. The /dev/cpu_dma_latency API requires the caller to keep the device open for the limit to remain in effect. The limit is removed as soon as the device is closed. so like... it evaporates the second you look away π
and that's the whole page, bestie π this was PEPC-PMQOS(1) from the General Commands Manual β that's the footer energy right there, and it's the whole vibe. go forth and QoS, you absolute icon πβ¨
π¦ where this page comes from
- epel 10: python3-pepc 2.0.7-2.el10_3 Β· BSD-3-Clause
- epel 9: python3-pepc 2.0.7-3.el9 Β· BSD-3-Clause
- fedora 44: python3-pepc 2.0.7-2.fc44 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms