giampaolo / psutil

Cross-platform lib for process and system monitoring in Python
BSD 3-Clause "New" or "Revised" License
10.22k stars 1.38k forks source link

Linux: skip offline cpu cores in cpu_freq #2376

Closed shadeyg56 closed 7 months ago

shadeyg56 commented 7 months ago

Summary

Fixes #2254

Previously offline CPU cores would return an error in cpu_freq() since psutil didn't skip them. With this change, any CPU core found to be offline will return scpufreq(0, 0, 0) I figured it would be pretty common for programs to expect the cores to be returned in order which is why I had it append a tuple with all-zero values. If this is unwanted, it could be easily removed to only return online cpus and their frequencies.

Description

Runs cat on /sys/devices/system/cpu/cpu{i}/online to determine if a CPU is offline or not. If cat returns 0, then scpufreq(0, 0, 0) is appended and the loop continues to the next iteration. Otherwise, the function runs as normal.

giampaolo commented 7 months ago

Nice. Some remarks:

Thank you

shadeyg56 commented 7 months ago

Do I need to remove the f-string in order to support python 2?

giampaolo commented 7 months ago

Oh right. Yes.