Linux: skip offline cpu cores in cpu_freq #2376
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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. Ifcat
returns 0, thenscpufreq(0, 0, 0)
is appended and the loop continues to the next iteration. Otherwise, the function runs as normal.