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

Use temperature-based hysteresis #513

Open
crawfxrd opened this issue Jan 4, 2025 · 3 comments
Open

Use temperature-based hysteresis #513

crawfxrd opened this issue Jan 4, 2025 · 3 comments

Comments

@crawfxrd
Copy link
Member

crawfxrd commented Jan 4, 2025

We currently use a time-based hysteresis of the duty (output value). This method results in poor behavior of fans.

With HEATUP, it can result in:

  • slow response of increasing temps that could lead to the CPU throttling before fan reaches its max point

With COOLDOWN, it can result in:

  • fans being held at higher duties than necessary over periods of time
    • such as short temp spike at start of a CPU-intense workload like compilation
  • not reducing temps sufficiently below the point threshold, resulting in rapid oscillation of fan duty
    • noticeable at point 0, which can result in near-constant fan on/off

Use a temperature-based (input value) hysteresis instead.

@crawfxrd crawfxrd changed the title Use temperature-based hyteresis Use temperature-based hysteresis Jan 4, 2025
@earlruby
Copy link

earlruby commented Feb 3, 2025

I was just looking at the source code trying to figure out how to do this. Are you actively working on this problem or just noting the issue hoping someone will pick it up?

Any idea why the fan duty cycle is set to never exceed 65%, no matter how hot the system gets?

@crawfxrd
Copy link
Member Author

crawfxrd commented Feb 3, 2025

Initial attempt done in fan-temp-hyst.

@earlruby
Copy link

earlruby commented Feb 3, 2025

Nice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants