|
| 1 | +.\" Automatically generated by Pandoc 3.6.4 |
| 2 | +.\" |
| 3 | +.TH "PM QoS" "" "" "" |
| 4 | +.SH Command \f[I]\[aq]pmqos\[aq]\f[R] |
| 5 | +.SS General options |
| 6 | +.TP |
| 7 | +\f[B]\-h\f[R] |
| 8 | +Show a short help message and exit. |
| 9 | +.TP |
| 10 | +\f[B]\-q\f[R] |
| 11 | +Be quiet (print only important messages like warnings). |
| 12 | +.TP |
| 13 | +\f[B]\-d\f[R] |
| 14 | +Print debugging information. |
| 15 | +.TP |
| 16 | +\f[B]\-\-debug\-modules\f[R] \f[I]MODNAME[,MODNAME1,...]\f[R] |
| 17 | +While the \[aq]\-d\[aq] option enables all debug messages, this option |
| 18 | +limits them to the specified modules. |
| 19 | +For example, \[aq]\-d \-\-debug\-modules MSR\[aq] will only show debug |
| 20 | +messages from the \[aq]MSR\[aq] module. |
| 21 | +.TP |
| 22 | +\f[B]\-\-version\f[R] |
| 23 | +Print the version number and exit. |
| 24 | +.TP |
| 25 | +\f[B]\-H\f[R] \f[I]HOSTNAME\f[R], \f[B]\-\-host\f[R] \f[I]HOSTNAME\f[R] |
| 26 | +Host name or IP address of the target system. |
| 27 | +The pepc command will be executed on this system using SSH, instead of |
| 28 | +running it locally. |
| 29 | +If not specified, the command will be run locally. |
| 30 | +.TP |
| 31 | +\f[B]\-U\f[R] \f[I]USERNAME\f[R], \f[B]\-\-username\f[R] \f[I]USERNAME\f[R] |
| 32 | +Name of the user to use for logging into the remote host over SSH. |
| 33 | +The default user name is \[aq]root\[aq]. |
| 34 | +.TP |
| 35 | +\f[B]\-K\f[R] \f[I]PRIVKEY\f[R], \f[B]\-\-priv\-key\f[R] \f[I]PRIVKEY\f[R] |
| 36 | +Path to the private SSH key for logging into the remote host. |
| 37 | +Defaults to keys in standard paths like \[aq]$HOME/.ssh\[aq]. |
| 38 | +.TP |
| 39 | +\f[B]\-T\f[R] \f[I]TIMEOUT\f[R], \f[B]\-\-timeout\f[R] \f[I]TIMEOUT\f[R] |
| 40 | +Timeout for establishing an SSH connection in seconds. |
| 41 | +Defaults to 8. |
| 42 | +.TP |
| 43 | +\f[B]\-D\f[R] \f[I]DATASET\f[R], \f[B]\-\-dataset\f[R] \f[I]DATASET\f[R] |
| 44 | +This option is for debugging and testing. |
| 45 | +It specifies the dataset to use for emulating the host for running the |
| 46 | +command on. |
| 47 | +The datasets are available in \[aq]pepc\[aq] source code repository. |
| 48 | +.RS |
| 49 | +.PP |
| 50 | +The argument can be a dataset path or name. |
| 51 | +If specified by name, the following locations are searched for the |
| 52 | +dataset. |
| 53 | +.IP "1." 3 |
| 54 | +\[aq]./tests/emul\-data\[aq] in the program\[aq]s directory |
| 55 | +.IP "2." 3 |
| 56 | +\[aq]$PEPC_DATA_PATH/tests/emul\-data\[aq] |
| 57 | +.IP "3." 3 |
| 58 | +\[aq]$HOME/.local/share/pepc/tests/emul\-data\[aq] |
| 59 | +.IP "4." 3 |
| 60 | +\[aq]$VIRTUAL_ENV/share/tests/emul\-data\[aq] |
| 61 | +.IP "5." 3 |
| 62 | +\[aq]/usr/local/share/pepc/tests/emul\-data\[aq] |
| 63 | +.IP "6." 3 |
| 64 | +\[aq]/usr/share/pepc/tests/emul\-data\[aq] |
| 65 | +.RE |
| 66 | +.TP |
| 67 | +\f[B]\-\-force\-color\f[R] |
| 68 | +Force colorized output even if the output stream is not a terminal (adds |
| 69 | +ANSI escape codes). |
| 70 | +.TP |
| 71 | +\f[B]\-\-print\-man\-path\f[R] |
| 72 | +Print path to pepc manual pages directory and exit. |
| 73 | +This path can be added to the \[aq]MANPATH\[aq] environment variable to |
| 74 | +make the manual pages available to the \[aq]man\[aq] tool. |
| 75 | +.SS Target CPU specification options |
| 76 | +All subcommands (\f[I]\[aq]info\[aq]\f[R], \f[I]\[aq]config\[aq]\f[R]) |
| 77 | +accept the following target CPU specification options. |
| 78 | +.TP |
| 79 | +\f[B]\-\-cpus\f[R] \f[I]CPUS\f[R] |
| 80 | +The list can include individual CPU numbers and CPU number ranges. |
| 81 | +For example, \[aq]1\-4,7,8,10\-12\[aq] would mean CPUs 1 to 4, CPUs 7, |
| 82 | +8, and 10 to 12. |
| 83 | +Use the special keyword \[aq]all\[aq] to specify all CPUs. |
| 84 | +.TP |
| 85 | +\f[B]\-\-cores\f[R] \f[I]CORES\f[R] |
| 86 | +The list can include individual core numbers and core number ranges. |
| 87 | +For example, \[aq]1\-4,7,8,10\-12\[aq] would mean cores 1 to 4, cores 7, |
| 88 | +8, and 10 to 12. |
| 89 | +Use the special keyword \[aq]all\[aq] to specify all cores. |
| 90 | +This option has to be used with the \[aq]\-\-packages\[aq] option, |
| 91 | +because core numbers are relative to the package. |
| 92 | +.TP |
| 93 | +\f[B]\-\-modules\f[R] \f[I]MODULES\f[R] |
| 94 | +The list can include individual module numbers and module number ranges. |
| 95 | +For example, \[aq]0,2\-5\[aq] would mean module 0 and modules 2, 3, 4, |
| 96 | +and 5. |
| 97 | +Use the special keyword \[aq]all\[aq] to specify all modules. |
| 98 | +Note, unlike core and die numbers, module numbers are absolute. |
| 99 | +.TP |
| 100 | +\f[B]\-\-dies\f[R] \f[I]DIES\f[R] |
| 101 | +The list can include individual die numbers and die number ranges. |
| 102 | +For example, \[aq]0\-3,5\[aq] would mean dies 0 to 3, and die 5. |
| 103 | +Use the special keyword \[aq]all\[aq] to specify all dies. |
| 104 | +On some systems, die numbers are globally unique, while on other systems |
| 105 | +they are relative to the package. |
| 106 | +In the latter case, this option has to be used with the |
| 107 | +\[aq]\-\-packages\[aq] option. |
| 108 | +.TP |
| 109 | +\f[B]\-\-packages\f[R] \f[I]PACKAGES\f[R] |
| 110 | +The list can include individual package numbers and package number |
| 111 | +ranges. |
| 112 | +For example, \[aq]0,2\-4\[aq] would mean package 0 and packages 2 to 4. |
| 113 | +Use the special keyword \[aq]all\[aq] to specify all packages. |
| 114 | +.TP |
| 115 | +\f[B]\-\-core\-siblings\f[R] \f[I]CORE_SIBLINGS\f[R] |
| 116 | +Core siblings are CPUs sharing the same core. |
| 117 | +The list can include individual core sibling indices or index ranges. |
| 118 | +For example, if a core includes CPUs 3 and 4, index 0 would mean CPU 3 |
| 119 | +and index 1 would mean CPU 4. |
| 120 | +This option can only be used to reference online CPUs, because Linux |
| 121 | +does not provide topology information for offline CPUs. |
| 122 | +In the example with CPUs 3 and 4, if CPU 3 was offline, then index 0 |
| 123 | +would mean CPU 4 and index 1 would be invalid. |
| 124 | +.TP |
| 125 | +\f[B]\-\-module\-siblings\f[R] \f[I]MODULE_SIBLINGS\f[R] |
| 126 | +Module siblings are CPUs sharing the same module. |
| 127 | +The list can include individual module sibling indices or index ranges. |
| 128 | +For example, if a module includes CPUs 3, 4, 5, and 6, index 0 would |
| 129 | +mean CPU 3, index 1 would mean CPU 4, index 2 would mean CPU 5, and |
| 130 | +index 3 would mean CPU 6. |
| 131 | +This option can only be used to reference online CPUs, because Linux |
| 132 | +does not provide topology information for offline CPUs. |
| 133 | +In the example with CPUs 3, 4, 5, and 6, if CPU 4 was offline, then |
| 134 | +index 1 would mean CPU 5, index 2 would mean CPU 6, and index 3 would be |
| 135 | +invalid. |
| 136 | +.SS Subcommand \f[I]\[aq]info\[aq]\f[R] |
| 137 | +Retrieve PM QoS (Power Management Quality of Service) information for |
| 138 | +specified CPUs. |
| 139 | +By default, display all details for all CPUs. |
| 140 | +Use target CPU specification options to define a subset of CPUs, cores, |
| 141 | +dies, or packages. |
| 142 | +.TP |
| 143 | +\f[B]\-\-yaml\f[R] |
| 144 | +Display information in YAML format. |
| 145 | +.TP |
| 146 | +\f[B]\-\-latency\-limit\f[R] |
| 147 | +Retrieve the per\-CPU Linux PM QoS limit. |
| 148 | +This limit affects C\-state selection by restricting the kernel from |
| 149 | +using C\-states with latencies exceeding the specified limit. |
| 150 | +For example, a 50us limit ensures the kernel only selects C\-states with |
| 151 | +latencies ≤ 50us. |
| 152 | +The limit is read from |
| 153 | +\[aq]/sys/devices/system/cpu/cpu<NUMBER>/power/pm_qos_resume_latency_us\[aq]. |
| 154 | +.TP |
| 155 | +\f[B]\-\-global\-latency\-limit\f[R] |
| 156 | +Retrieve the global Linux PM QoS limit. |
| 157 | +This limit, unlike the per\-CPU latency limit, applies globally. |
| 158 | +It is read from the \[aq]/dev/cpu_dma_latency\[aq] device node. |
| 159 | +.SS Subcommand \f[I]\[aq]config\[aq]\f[R] |
| 160 | +Configure PM QoS (Power Management Quality of Service) for specified |
| 161 | +CPUs. |
| 162 | +If no parameter is provided, the current value(s) will be displayed. |
| 163 | +Use target CPU specification options to define the subset of CPUs, |
| 164 | +cores, dies, or packages. |
| 165 | +.TP |
| 166 | +\f[B]\-\-latency\-limit\f[R] \f[I][LIMIT]\f[R] |
| 167 | +Set the per\-CPU Linux PM QoS limit, which restricts the kernel from |
| 168 | +using C\-states with latencies exceeding the specified value. |
| 169 | +For example, a 50us limit ensures the kernel selects only C\-states with |
| 170 | +latencies ≤ 50us. |
| 171 | +The limit is configured via |
| 172 | +\[aq]/sys/devices/system/cpu/cpu<NUMBER>/power/pm_qos_resume_latency_us\[aq]. |
| 173 | +The default unit is \[aq]us\[aq] (microseconds), but \[aq]ns\[aq], |
| 174 | +\[aq]ms\[aq], and \[aq]s\[aq] units are also supported (e.g., |
| 175 | +\[aq]1ms\[aq]). |
| 176 | +Value 0 disables the limit. |
| 177 | +.PP |
| 178 | +Note: Setting the global latency limit is unsupported because the |
| 179 | +\[aq]/dev/cpu_dma_latency\[aq] API requires the setter to keep the |
| 180 | +device open for the limit to remain effective. |
| 181 | +The limit is removed as soon as the device is closed. |
0 commit comments