1#!/usr/bin/env python3 2# SPDX-License-Identifier: GPL-2.0-only 3 4import raw_pylibcpupower as p 5 6# Simple function call 7 8""" 9Get cstate count 10""" 11cpu_cstates_count = p.cpuidle_state_count(0) 12if cpu_cstates_count > -1: 13 print(f"CPU 0 has {cpu_cstates_count} c-states") 14else: 15 print(f"cstate count error: return code: {cpu_cstates_count}") 16 17""" 18Disable cstate (will fail if the above is 0, ex: a virtual machine) 19""" 20cstate_disabled = p.cpuidle_state_disable(0, 0, 1) 21if cpu_cstates_count == 0: 22 print(f"CPU 0 has {cpu_cstates_count} c-states") 23else: 24 print(f"cstate count error: return code: {cpu_cstates_count}") 25 26match 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 37topo = p.cpupower_topology() 38total_cpus = p.get_cpu_topology(topo) 39if total_cpus > 0: 40 print(f"Number of total cpus: {total_cpus} and number of cores: {topo.cores}") 41else: 42 print(f"Error: could not get cpu topology") 43