1 #!/usr/bin/env python3 2 # SPDX-License-Identifier: GPL-2.0-only 3 4 import raw_pylibcpupower as p 5 6 # Simple function call 7 8 """ 9 Get cstate count 10 """ 11 cpu_cstates_count = p.cpuidle_state_count(0) 12 if cpu_cstates_count > -1: 13 print(f"CPU 0 has {cpu_cstates_count} c-states") 14 else: 15 print(f"cstate count error: return code: {cpu_cstates_count}") 16 17 """ 18 Disable cstate (will fail if the above is 0, ex: a virtual machine) 19 """ 20 cstate_disabled = p.cpuidle_state_disable(0, 0, 1) 21 if cpu_cstates_count == 0: 22 print(f"CPU 0 has {cpu_cstates_count} c-states") 23 else: 24 print(f"cstate count error: return code: {cpu_cstates_count}") 25 26 match cstate_disabled: 27 case 0: 28 print(f"CPU state disabled") 29 case -1: 30 print(f"Idlestate not available") 31 case _: 32 print(f"Not documented") 33 34 35 # Pointer example 36 37 topo = p.cpupower_topology() 38 total_cpus = p.get_cpu_topology(topo) 39 if total_cpus > 0: 40 print(f"Number of total cpus: {total_cpus} and number of cores: {topo.cores}") 41 else: 42 print(f"Error: could not get cpu topology")
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.