Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux: skip offline cpu cores in cpu_freq #2376

Merged
merged 3 commits into from
Feb 26, 2024

Conversation

shadeyg56
Copy link
Contributor

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.

Signed-off-by: shadeyg56 <shadeyg56@gmail.com>
@giampaolo
Copy link
Owner

Nice. Some remarks:

  • I'd rather put the new logic in here, after if curr is None, and raise NotImplementedError if also the new file is unreadable.
  • the 0 value should be a float (0.0)
  • if you can, also update HISTORY.rst / CREDITS files

Thank you

@shadeyg56
Copy link
Contributor Author

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

@giampaolo
Copy link
Owner

Oh right. Yes.

Signed-off-by: shadeyg56 <shadeyg56@gmail.com>
Signed-off-by: shadeyg56 <shadeyg56@gmail.com>
@giampaolo giampaolo merged commit 4cf56e0 into giampaolo:master Feb 26, 2024
13 checks passed
@shadeyg56 shadeyg56 deleted the offline-cpu-fix branch February 26, 2024 18:08
ddelange added a commit to ddelange/psutil that referenced this pull request Feb 27, 2024
…mpaolo-master

* 'master' of https://github.com/giampaolo/psutil:
  add black opt to make lines more compact
  giampaolo#2366 [Windows]: log debug message when using slower process APIs
  Linux: skip offline cpu cores in cpu_freq (giampaolo#2376)
  fix py2 failure
  update style to latest black ver
  chore: update cibuildwheel on windows (giampaolo#2370)
  use unicode literals u"" instead of u("")
  make install-pip: fix installation on python 2
  more ruff rules
  adapt to new ruff config directives
  update CREDITS + mention @c0m4r for sponsorship (thanks!)
  Include net/if.h before net/if_dl.h (giampaolo#2361)
  pre-release
  fix failing tests
  refac t
ddelange added a commit to ddelange/psutil that referenced this pull request Feb 27, 2024
* giampaolo-master:
  add black opt to make lines more compact
  giampaolo#2366 [Windows]: log debug message when using slower process APIs
  Linux: skip offline cpu cores in cpu_freq (giampaolo#2376)
  fix py2 failure
  update style to latest black ver
  chore: update cibuildwheel on windows (giampaolo#2370)
  use unicode literals u"" instead of u("")
  make install-pip: fix installation on python 2
  more ruff rules
  adapt to new ruff config directives
  update CREDITS + mention @c0m4r for sponsorship (thanks!)
  Include net/if.h before net/if_dl.h (giampaolo#2361)
  pre-release
  fix failing tests
  refac t
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Linux] offline cpus raise NotImplementedError in cpu_freq
2 participants