Files
linux/kernel
Viresh Kumar 87cdf4eda5 BACKPORT: schedutil: Reset cached freq if it is not in sync with next_freq
'cached_raw_freq' is used to get the next frequency quickly but should
always be in sync with sg_policy->next_freq. There are cases where it is
not and in such cases it should be reset to avoid switching to incorrect
frequencies.

Consider this case for example:
- policy->cur is 1.2 GHz (Max)
- New request comes for 780 MHz and we store that in cached_raw_freq.
- Based on 780 MHz, we calculate the effective frequency as 800 MHz.
- We then decide not to update the frequency as
  sugov_up_down_rate_limit() return true.
- Here cached_raw_freq is 780 MHz and sg_policy->next_freq is 1.2 GHz.
- Now if the utilization doesn't change in next request, then the next
  target frequency will still be 780 MHz and it will match with
  cached_raw_freq and so we will directly return 1.2 GHz instead of 800
  MHz.

BACKPORT of upstream commit 07458f6a5171 ("cpufreq: schedutil: Reset
cached_raw_freq when not in sync with next_freq").

This also updates sugov_update_commit() for handling up/down tunables,
which aren't present in mainline.

Change-Id: Ie86465231e7cb265e5b4c26f59d6faf8d9630b0a
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2017-12-04 16:23:03 +00:00
..
2017-10-12 22:31:24 +02:00
2017-09-02 07:07:53 +02:00
2017-10-12 22:31:24 +02:00
2017-10-12 22:31:24 +02:00
2017-08-11 13:55:02 -07:00
2017-08-07 14:21:32 -07:00
2017-10-12 22:31:24 +02:00
2017-05-20 14:28:40 +02:00
2017-07-05 14:40:24 +02:00
2017-08-24 17:12:21 -07:00
2017-11-07 10:31:04 +05:30