1CSTATES() CSTATES()
2
3
4
6 General options
7 -h Show a short help message and exit.
8
9 -q Be quiet.
10
11 -d Print debugging information.
12
13 --version
14 Print version and exit.
15
16 -H HOSTNAME, --host HOSTNAME
17 Name of the host to run the command on.
18
19 -U USERNAME, --username USERNAME
20 Name of the user to use for logging into the remote host over
21 SSH. The default user name is 'root'.
22
23 -K PRIVKEY, --priv-key PRIVKEY
24 Path to the private SSH key that should be used for logging into
25 the remote host. By default the key is automatically found from
26 standard paths like '$HOME/.ssh'.
27
28 -T TIMEOUT, --timeout TIMEOUT
29 SSH connection timeout in seconds, default is 8.
30
31 -D DATASET, --dataset DATASET
32 This option is for debugging and testing purposes only, it de‐
33 fines the dataset that will be used to emulate a host for run‐
34 ning the command on. This option is typically used when running
35 'pepc' from the source directory, which includes datasets for
36 many different systems.
37
38 The argument can be the dataset path, 'all' to specify all
39 available dataset or name in which case the following locations
40 will be searched for.
41
42 1. './tests/data', in the directory of the running program
43
44 2. '$PEPC_DATA_PATH/tests/data'
45
46 3. '$HOME/.local/share/pepc/tests/data'
47
48 4. '/usr/local/share/pepc/tests/data'
49
50 5. '/usr/share/pepc/tests/data'
51
52 --force-color
53 Force coloring of the text output.
54
55 Subcommand 'info'
56 Get information about C-states on specified CPUs. By default, prints
57 all information for all CPUs.
58
59 --cpus CPUS
60 List of CPUs to get information about. The list can include in‐
61 dividual CPU numbers and CPU number ranges. For exam‐
62 ple,'1-4,7,8,10-12' would mean CPUs 1 to 4, CPUs 7, 8, and 10 to
63 12. Use the special keyword 'all' to specify all CPUs.
64
65 --cores CORES
66 List of cores to get information about. The list can include
67 individual core numbers and core number ranges. For example,
68 '1-4,7,8,10-12' would mean cores 1 to 4, cores 7, 8, and 10 to
69 12. Use the special keyword 'all' to specify all cores. This
70 option has to be accompanied by '--package' option, because core
71 numbers are per-package
72
73 --packages PACKAGES
74 List of packages to get information about. The list can include
75 individual package numbers and package number ranges. For exam‐
76 ple, '0,2-4' would mean package 0 and packages 2 to 4. Use the
77 special keyword 'all' to specify all packages.
78
79 --core-siblings CORE_SIBLINGS
80 List of core sibling indices to get information about. The list
81 can include individual core sibling indices or index ranges.
82 For example, core x includes CPUs 3 and 4, '0' would mean CPU 3
83 and '1' would mean CPU 4. This option can only be used to ref‐
84 erence online CPUs, because Linux does not provide topology in‐
85 formation for offline CPUs. In the previous example if CPU 3
86 was offline, then '0' would mean CPU 4.
87
88 --yaml Print information in YAML format.
89
90 --override-cpu-model
91 This option is for debugging and testing purposes only. Provide
92 the CPU model number which the tool treats the target system CPU
93 as. For example, use 0x8F to treat the target system as Sap‐
94 phire Rapids Xeon.
95
96 --cstates [CSTATES]
97 Comma-separated list of C-states to get information about. C-
98 states should be specified by name (e.g., 'C1'). Use 'all' to
99 specify all the available Linux C-states (this is the default).
100 Note, there is a difference between Linux C-states (e.g., 'C6')
101 and hardware C-states (e.g., Core C6 or Package C6 on many Intel
102 platforms). The former is what Linux can request, and on Intel
103 hardware this is usually about various 'mwait' instruction
104 hints. The latter are platform-specific hardware state, entered
105 upon a Linux request.
106
107 --pkg-cstate-limit
108 Get package C-state limit (details in 'pkg_cstate_limit'),
109 available package C-state limits (details in 'pkg_cstate_lim‐
110 its'), package C-state limit lock (details in 'pkg_cstate_lim‐
111 it_lock'), and package C-state limit aliases (details in
112 'pkg_cstate_limit_aliases').
113
114 --c1-demotion
115 Get current setting for C1 demotion (details in 'c1_demotion').
116
117 --c1-undemotion
118 Get current setting for C1 undemotion (details in 'c1_undemo‐
119 tion').
120
121 --c1e-autopromote
122 Get current setting for C1E autopromote (details in 'c1e_auto‐
123 promote').
124
125 --cstate-prewake
126 Get current setting for C-state prewake (details in 'cstate_pre‐
127 wake').
128
129 --idle-driver
130 Get idle driver (details in 'idle_driver').
131
132 --governor
133 Get idle governor (details in 'governor').
134
135 --governors
136 Get list of available idle governors (details in 'governors').
137
138 Subcommand 'config'
139 Configure C-states on specified CPUs. All options can be used without
140 a parameter, in which case the currently configured value(s) will be
141 printed.
142
143 --cpus CPUS
144 List of CPUs to configure C-States on. The list can include in‐
145 dividual CPU numbers and CPU number ranges. For exam‐
146 ple,'1-4,7,8,10-12' would mean CPUs 1 to 4, CPUs 7, 8, and 10 to
147 12. Use the special keyword 'all' to specify all CPUs.
148
149 --cores CORES
150 List of cores to configure C-States on. The list can include
151 individual core numbers and core number ranges. For example,
152 '1-4,7,8,10-12' would mean cores 1 to 4, cores 7, 8, and 10 to
153 1. Use the special keyword 'all' to specify all cores. This
154 option has to be accompanied by '--package' option, because core
155 numbers are per-package
156
157 --packages PACKAGES
158 List of packages to configure C-States on. The list can include
159 individual package numbers and package number ranges. For exam‐
160 ple, '0,2-4' would mean package 0 and packages 2 to 4. Use the
161 special keyword 'all' to specify all packages.
162
163 --core-siblings CORE_SIBLINGS
164 List of core sibling indices to configure C-States on. The list
165 can include individual core sibling indices or index ranges.
166 For example, core x includes CPUs 3 and 4, '0' would mean CPU 3
167 and '1' would mean CPU 4. This option can only be used to ref‐
168 erence online CPUs, because Linux does not provide topology in‐
169 formation for offline CPUs. In the previous example if CPU 3
170 was offline, then '0' would mean CPU 4.
171
172 --override-cpu-model
173 This option is for debugging and testing purposes only. Provide
174 the CPU model number which the tool treats the target system CPU
175 as. For example, use 0x8F to treat the target system as Sap‐
176 phire Rapids Xeon.
177
178 --enable [CSTATES]
179 Comma-separated list of C-states to enable. C-states should be
180 specified by name (e.g., 'C1'). Use 'all' to specify all the
181 available Linux C-states (this is the default). Note, there is
182 a difference between Linux C-states (e.g., 'C6') and hardware C-
183 states (e.g., Core C6 or Package C6 on many Intel platforms).
184 The former is what Linux can request, and on Intel hardware this
185 is usually about various 'mwait' instruction hints. The latter
186 are platform-specific hardware state, entered upon a Linux re‐
187 quest.
188
189 --disable [CSTATES]
190 Similar to '--enable', but specifies the list of C-states to
191 disable.
192
193 --pkg-cstate-limit [PKG_CSTATE_LIMIT]
194 Set package C-state limit (details in 'pkg_cstate_limit').
195
196 --c1-demotion [C1_DEMOTION]
197 Enable or disable C1 demotion (details in 'c1_demotion').
198
199 --c1-undemotion [C1_UNDEMOTION]
200 Enable or disable C1 undemotion (details in 'c1_undemotion').
201
202 --c1e-autopromote [C1E_AUTOPROMOTE]
203 Enable or disable C1E autopromote (details in 'c1e_autopro‐
204 mote').
205
206 --cstate-prewake [CSTATE_PREWAKE]
207 Enable or disable C-state prewake (details in 'cstate_prewake').
208
209 --governor [GOVERNOR]
210 Set idle governor (details in 'governor').
211
212 Subcommand 'save'
213 Save all the modifiable C-state settings into a file. This file can
214 later be used for restoring C-state settings with the 'pepc cstates re‐
215 store' command.
216
217 --cpus CPUS
218 List of CPUs to save C-state information about. The list can
219 include individual CPU numbers and CPU number ranges. For exam‐
220 ple,'1-4,7,8,10-12' would mean CPUs 1 to 4, CPUs 7, 8, and 10 to
221 12. Use the special keyword 'all' to specify all CPUs.
222
223 --cores CORES
224 List of cores to save C-state information about. The list can
225 include individual core numbers and core number ranges. For ex‐
226 ample, '1-4,7,8,10-12' would mean cores 1 to 4, cores 7, 8, and
227 10 to 12. Use the special keyword 'all' to specify all cores.
228 This option has to be accompanied by '--package' option, because
229 core numbers are per-package
230
231 --packages PACKAGES
232 List of packages to save C-state information about. The list
233 can include individual package numbers and package number
234 ranges. For example, '0,2-4' would mean package 0 and packages
235 2 to 4. Use the special keyword 'all' to specify all packages.
236
237 --core-siblings CORE_SIBLINGS
238 List of core sibling indices to save C-state information about.
239 The list can include individual core sibling indices or index
240 ranges. For example, core x includes CPUs 3 and 4, '0' would
241 mean CPU 3 and '1' would mean CPU 4. This option can only be
242 used to reference online CPUs, because Linux does not provide
243 topology information for offline CPUs. In the previous example
244 if CPU 3 was offline, then '0' would mean CPU 4.
245
246 -o OUTFILE, --outfile OUTFILE
247 Name of the file to save the settings to.
248
249 Subcommand 'restore'
250 Restore C-state settings from a file previously created with the 'pepc
251 cstates save' command.
252
253 -f INFILE, --from INFILE
254 Name of the file from which to restore the settings from, use
255 "-" to read from the standard output.
256
257 * * * * *
258
260 pkg_cstate_limit
261 pkg_cstate_limit - Package C-state limit
262
263 Synopsis
264 pepc cstates info [--pkg-cstate-limit]
265 pepc cstates config [--pkg-cstate-limit=<value>]
266
267 Description
268 The deepest package C-state the platform is allowed to enter.
269 MSR_PKG_CST_CONFIG_CONTROL (0xE2) register can be locked, in which case
270 the package C-state limit can only be read, but cannot be modified,
271 please refer to property pkg_cstate_limit_lock.
272
273 Source
274 MSR_PKG_CST_CONFIG_CONTROL (0xE2)
275
276 Package C-state limits are documented in Intel SDM, but it describes
277 all the possible package C-states for a CPU model. In practice, howev‐
278 er, specific platforms often do not support many of package C-states.
279 For example, Xeons typically do not support anything deeper than PC6.
280
281 Refer to 'PCStateConfigCtl.py' for all platforms and bits.
282
283 Scope
284 This option has core scope. With the following exceptions: Silvermonts
285 and Airmonts have module scope, Xeon Phis have package scope.
286
287 * * * * *
288
289 pkg_cstate_limits
290 pkg_cstate_limits - Available package C-state limits
291
292 Synopsis
293 pepc cstates info [--pkg-cstate-limits]
294
295 Description
296 All available package C-state limits.
297
298 Source
299 Hardcoded in 'PCStateConfigCtl.py' for platforms that we have verified.
300
301 Scope
302 This option has global scope.
303
304 * * * * *
305
306 pkg_cstate_limit_lock
307 pkg_cstate_limit_lock - Package C-state limit lock
308
309 Synopsis
310 pepc cstates info [--pkg-cstate-limit-lock]
311
312 Description
313 Whether the package C-state limit can be modified. When 'True', prop‐
314 erty 'pkg_cstate_limit' is read-only.
315
316 Source
317 MSR_PKG_CST_CONFIG_CONTROL (0xE2) Refer to 'PCStateConfigCtl.py' for
318 all platforms and bits.
319
320 Scope
321 This option has package scope.
322
323 * * * * *
324
325 pkg_cstate_limit_aliases
326 pkg_cstate_limit_aliases - Package C-state limit aliases
327
328 Synopsis
329 pepc cstates info [--pkg-cstate-limit-aliases]
330
331 Description
332 Package C-state limit aliases, for example on Ice Lakes 'PC6' is an
333 alias for 'PC6R'.
334
335 Source
336 Hardcoded in 'PCStateConfigCtl.py' for platforms that we have verified.
337
338 Scope
339 This option has global scope.
340
341 * * * * *
342
343 c1_demotion
344 c1_demotion - C1 demotion
345
346 Synopsis
347 pepc cstates info [--c1-demotion]
348 pepc cstates config [--c1-demotion=<value>]
349
350 Description
351 Allow or disallow the CPU to demote C6 or C7 requests to C1.
352
353 Source
354 MSR_PKG_CST_CONFIG_CONTROL (0xE2), bit 26.
355
356 Scope
357 This option has core scope. With the following exceptions, Silvermonts
358 and Airmonts have module scope, Xeon Phis have package scope.
359
360 * * * * *
361
362 c1_undemotion
363 c1_demotion - C1 undemotion
364
365 Synopsis
366 pepc cstates info [--c1-undemotion]
367 pepc cstates config [--c1-undemotion=<value>]
368
369 Description
370 Allow or disallow the CPU to un-demote previously demoted requests back
371 from C1 to C6 or C7.
372
373 Source
374 MSR_PKG_CST_CONFIG_CONTROL (0xE2), bit 28.
375
376 Scope
377 This option has core scope. With the following exceptions, Silvermonts
378 and Airmonts have module scope, Xeon Phis have package scope.
379
380 * * * * *
381
382 c1e_autopromote
383 c1e_autopromote - C1E autopromote
384
385 Synopsis
386 pepc cstates info [--c1e-autopromote]
387 pepc cstates config [--c1e-autopromote=<value>]
388
389 Description
390 When enabled, the CPU automatically converts all C1 requests to C1E re‐
391 quests.
392
393 Source
394 MSR_POWER_CTL (0x1FC), bit 1.
395
396 Scope
397 This option has package scope.
398
399 * * * * *
400
401 cstate_prewake
402 cstate_prewake - C-state prewake
403
404 Synopsis
405 pepc cstates info [--cstate-prewake]
406 pepc cstates config [--cstate-prewake=<value>]
407
408 Description
409 When enabled, the CPU will start exiting the C6 idle state in advance,
410 prior to the next local APIC timer event.
411
412 Source
413 MSR_POWER_CTL (0x1FC), bit 30.
414
415 Scope
416 This option has package scope.
417
418 * * * * *
419
420 idle_driver
421 idle_driver - Idle driver
422
423 Synopsis
424 pepc cstates info [--idle-driver]
425
426 Description
427 Idle driver is responsible for enumerating and requesting the C-states
428 available on the platform.
429
430 Source
431 "/sys/devices/system/cpu/cpuidle/current_governor"
432
433 Scope
434 This option has global scope.
435
436 * * * * *
437
438 governor
439 governor - Idle governor
440
441 Synopsis
442 pepc cstates info [--governor]
443 pepc cstates config [--governor=<value>]
444
445 Description
446 Idle governor decides which C-state to request on an idle CPU.
447
448 Source
449 "/sys/devices/system/cpu/cpuidle/scaling_governor"
450
451 Scope
452 This option has global scope.
453
454 * * * * *
455
456 governors
457 governors - Available idle governors
458
459 Synopsis
460 pepc cstates info [--governors]
461
462 Description
463 Idle governors decide which C-state to request on an idle CPU. Differ‐
464 ent governors implement different selection policy.
465
466 Source
467 "/sys/devices/system/cpu/cpuidle/available_governors"
468
469 Scope
470 This property has global scope.
471
472
473
474 09-03-2023 CSTATES()