sched/walt: don't panic for accounting issues

walt's accounting issues are not fatal, reset the variables and
raise warning instead of panic.

Change-Id: Id9f8cdbc1bde1539c33c2000590c81567fc5312a
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
This commit is contained in:
Srinivasarao Pathipati committed 2023-04-07 13:06:41 +05:30
1 parent 081bc8248c
commit 7274a6f26b
1 file changed
+24 -4
+24 -4
View File
@@ -104,14 +104,34 @@ fixup_cumulative_runnable_avg(struct walt_sched_stats *stats,
s64 demand_scaled_delta,
s64 pred_demand_scaled_delta)
{
s64 cumulative_runnable_avg_scaled;
s64 pred_demands_sum_scaled;
if (sched_disable_window_stats)
return;
stats->cumulative_runnable_avg_scaled += demand_scaled_delta;
BUG_ON((s64)stats->cumulative_runnable_avg_scaled < 0);
cumulative_runnable_avg_scaled =
(s64)stats->cumulative_runnable_avg_scaled +
demand_scaled_delta;
pred_demands_sum_scaled =
(s64)stats->pred_demands_sum_scaled + pred_demand_scaled_delta;
stats->pred_demands_sum_scaled += pred_demand_scaled_delta;
BUG_ON((s64)stats->pred_demands_sum_scaled < 0);
if (cumulative_runnable_avg_scaled < 0) {
printk_deferred("WALT-BUG demand_scaled_delta=%lld cumulative_runnable_avg_scaled=%llu\n",
demand_scaled_delta,
stats->cumulative_runnable_avg_scaled);
cumulative_runnable_avg_scaled = 0;
}
stats->cumulative_runnable_avg_scaled =
(u64)cumulative_runnable_avg_scaled;
if (pred_demands_sum_scaled < 0) {
printk_deferred("WALT-BUG task pred_demand_scaled_delta=%lld pred_demands_sum_scaled=%llu\n",
pred_demand_scaled_delta,
stats->pred_demands_sum_scaled);
pred_demands_sum_scaled = 0;
}
stats->pred_demands_sum_scaled = (u64)pred_demands_sum_scaled;
}
static inline void