From 7274a6f26be3617521b0662541bd3b167ac19906 Mon Sep 17 00:00:00 2001 From: Srinivasarao Pathipati Date: Tue, 4 Apr 2023 16:59:46 +0530 Subject: [PATCH] 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 --- kernel/sched/walt.h | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/kernel/sched/walt.h b/kernel/sched/walt.h index 32b3de3217e0..f466a7172089 100644 --- a/kernel/sched/walt.h +++ b/kernel/sched/walt.h @@ -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