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

Commit 5920d95f authored by Rohit Gupta's avatar Rohit Gupta Committed by Matt Wagantall
Browse files

cpufreq: interactive: Report CPU loads through govinfo notifier



Report CPU load to modules subscribed to cpufreq govinfo notification
chain every time governor timer expires to evaluate load.

Change-Id: I0b35947b1924c179649aafa0b7b93d974164af1a
Signed-off-by: default avatarRohit Gupta <rohgup@codeaurora.org>
parent ea984efb
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -398,6 +398,7 @@ static void cpufreq_interactive_timer(unsigned long data)
	unsigned int loadadjfreq;
	unsigned int index;
	unsigned long flags;
	struct cpufreq_govinfo int_info;

	if (!down_read_trylock(&pcpu->enable_sem))
		return;
@@ -436,8 +437,15 @@ static void cpufreq_interactive_timer(unsigned long data)
		do_div(cputime_speedadj, delta_time);
	}

	spin_lock_irqsave(&pcpu->target_freq_lock, flags);
	loadadjfreq = (unsigned int)cputime_speedadj * 100;

	int_info.cpu = data;
	int_info.load = loadadjfreq / pcpu->policy->max;
	int_info.sampling_rate_us = tunables->timer_rate;
	atomic_notifier_call_chain(&cpufreq_govinfo_notifier_list,
					CPUFREQ_LOAD_CHANGE, &int_info);

	spin_lock_irqsave(&pcpu->target_freq_lock, flags);
	cpu_load = loadadjfreq / pcpu->policy->cur;
	tunables->boosted = tunables->boost_val || now < tunables->boostpulse_endtime;