brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 3d6f62b Raw
43 lines · python
1#!/usr/bin/env python32# SPDX-License-Identifier: GPL-2.0-only3 4import raw_pylibcpupower as p5 6# Simple function call7 8"""9Get cstate count10"""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 example36 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