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

Commit 6c8b01e7 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "sched/walt: Fix stale max_capacity issue during CPU hotplug"

parents b175ac5d f51d539b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -8031,6 +8031,7 @@ int sched_cpu_activate(unsigned int cpu)
	raw_spin_unlock_irqrestore(&rq->lock, flags);

	update_max_interval();
	walt_update_min_max_capacity();

	return 0;
}
@@ -8064,6 +8065,7 @@ int sched_cpu_deactivate(unsigned int cpu)
		return ret;
	}
	sched_domains_numa_masks_clear(cpu);
	walt_update_min_max_capacity();
	return 0;
}

+7 −1
Original line number Diff line number Diff line
@@ -2422,7 +2422,11 @@ static inline void __update_min_max_capacity(void)
	int i;
	int max_cap = 0, min_cap = INT_MAX;

	for_each_online_cpu(i) {
	for_each_possible_cpu(i) {

		if (!cpu_active(i))
			continue;

		max_cap = max(max_cap, cpu_capacity(i));
		min_cap = min(min_cap, cpu_capacity(i));
	}
@@ -2687,6 +2691,7 @@ static inline unsigned int power_cost(int cpu, bool max)
}

extern void walt_sched_energy_populated_callback(void);
extern void walt_update_min_max_capacity(void);

#else	/* CONFIG_SCHED_WALT */

@@ -2820,6 +2825,7 @@ static inline unsigned int power_cost(int cpu, bool max)
}

static inline void walt_sched_energy_populated_callback(void) { }
static inline void walt_update_min_max_capacity(void) { }

#endif	/* CONFIG_SCHED_WALT */

+2 −2
Original line number Diff line number Diff line
@@ -2185,7 +2185,7 @@ static int compute_max_possible_capacity(struct sched_cluster *cluster)
	return capacity;
}

static void update_min_max_capacity(void)
void walt_update_min_max_capacity(void)
{
	unsigned long flags;

@@ -2411,7 +2411,7 @@ static int cpufreq_notifier_policy(struct notifier_block *nb,
		return 0;

	if (val == CPUFREQ_REMOVE_POLICY || val == CPUFREQ_CREATE_POLICY) {
		update_min_max_capacity();
		walt_update_min_max_capacity();
		return 0;
	}