Re: [PATCH] cpufreq: Rebuild sched-domains when removing cpufreq driver

From: Pierre Gondois
Date: Tue Sep 19 2023 - 03:50:01 EST




On 9/19/23 01:03, Dietmar Eggemann wrote:
On 18/09/2023 13:29, Pierre Gondois wrote:
The Energy Aware Scheduler (EAS) relies on the schedutil governor.
When moving to/from the schedutil governor, sched domains must be
rebuilt to allow re-evaluating the enablement conditions of EAS.
This is done through sched_cpufreq_governor_change().

Having a cpufreq governor assumes having a cpufreq driver running.
Inserting/removing a cpufreq driver should trigger a re-evaluation
of EAS enablement conditions, avoiding to see EAS enabled when
removing a running cpufreq driver.

Add a sched_cpufreq_governor_change() call in cpufreq driver removal
path.

Rebuilding SDs when inserting the driver is already covered by

cpufreq_online()
cpufreq_set_policy()
sched_cpufreq_governor_change()
if (old or new gov eq. schedutil)
schedule_work(&rebuild_sd_work)

So what's missing is only a sched_cpufreq_governor_change() call when
removing the driver, right?

Yes exact, removing a cpufreq driver (e.g. `rmmod cppc_cpufreq.ko`) goes
through:
cpufreq_remove_dev()
\-__cpufreq_offline()

so the path you mentioned is not used in this case.

Regards,
Pierre