On 1/31/2022 12:55 PM, Lukasz Luba wrote:
Hi Manaf,I believe only way to change the governror via userspace at runtime.
On 1/27/22 6:11 PM, Manaf Meethalavalappu Pallikunhi wrote:
Whenever a thermal zone is in trip violated state, there is a chance
that the same thermal zone mode can be disabled either via
thermal core API or via thermal zone sysfs. Once it is disabled,
the framework bails out any re-evaluation of thermal zone. It leads
to a case where if it is already in mitigation state, it will stay
the same state forever.
To avoid above mentioned issue, add support to bind/unbind
governor from thermal zone during thermal zone mode change request
and clear all existing throttling in governor unbind_from_tz()
callback.
I have one use case:
This would be a bit dangerous, e.g. to switch governors while there is a
high temperature. Although, sounds reasonable to left a 'default' state
for a next governor.
Just re-evaluate thermal zone (thermal_zone_device_update) immediately after
thermal_zone_device_set_policy() in same policy_store() context, isn't it good enough ?
Not sure how a "default" state can be reverted once governor change is done.
Re-evaluating thermal zone doesn't guarantee that it will recover previous
set default state for all governors, right ?
I will update other governors as well in v6
Suggested-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Signed-off-by: Manaf Meethalavalappu Pallikunhi <quic_manafm@xxxxxxxxxxx>
---
drivers/thermal/gov_power_allocator.c | 3 +++
drivers/thermal/gov_step_wise.c | 26 ++++++++++++++++++++++++++
drivers/thermal/thermal_core.c | 31 +++++++++++++++++++++++++++----
3 files changed, 56 insertions(+), 4 deletions(-)
Why only two governors need that change and not all?
Because they don't have 'bind/unbind' callbacks, then maybe we should
change that as well to make it consistent?