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

Commit 27f28bc3 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "sched/walt: don't panic for accounting issues"

parents 388cd19a 7274a6f2
Loading
Loading
Loading
Loading
+25 −5
Original line number Diff line number Diff line
@@ -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;

	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;

	stats->pred_demands_sum_scaled += pred_demand_scaled_delta;
	BUG_ON((s64)stats->pred_demands_sum_scaled < 0);
	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