Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e787198f authored by Lingutla Chandrasekhar's avatar Lingutla Chandrasekhar
Browse files

sched: kill sched_use_walt_cpu_{task_}util sysctl knobs



sched_use_walt_cpu_{task_}util sysctl knobs are used to control
runtime whether to use WALT signals (cumulative_runnable_avg/
ravg.demand) or PELT signal (util_avg) for task and cpu utilization
for task placement and frequency guidance.

But there is a subtle impact with these tunables when we frequently
toggle them. When sched_use_walt_cpu_util set to 0, and hotplugging
the cpu makes sg_cpu() members reset to 0, which sets sg_cpu.walt_load
to 0, but the sg_policy->last_ws never reset to zero. When the knob is
set back to 1 exactly after load is queried but before sugov_calc_avg_cap()
is called, which would compare walt_load->ws (= 0) against the stale
value of sg_policy->last_ws and hits BUG_ON().

When walt is enabled, we always use walt signals for task placement and
frequency guidance. So kill these sysctl knobs.

Change-Id: Id7eea8aa36fcfc33539aa3887c512a70a2414fc0
Signed-off-by: default avatarLingutla Chandrasekhar <clingutla@codeaurora.org>
parent c1940edc
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -398,22 +398,6 @@ static struct ctl_table kern_table[] = {
		.mode		= 0644,
		.proc_handler	= proc_dointvec,
	},
#ifdef CONFIG_SCHED_WALT
	{
		.procname	= "sched_use_walt_cpu_util",
		.data		= &sysctl_sched_use_walt_cpu_util,
		.maxlen		= sizeof(unsigned int),
		.mode		= 0644,
		.proc_handler	= proc_dointvec,
	},
	{
		.procname	= "sched_use_walt_task_util",
		.data		= &sysctl_sched_use_walt_task_util,
		.maxlen		= sizeof(unsigned int),
		.mode		= 0644,
		.proc_handler	= proc_dointvec,
	},
#endif
	{
		.procname	= "sched_cstate_aware",
		.data		= &sysctl_sched_cstate_aware,