Commit Graph

4 Commits

Author SHA1 Message Date
Amir Vajid
69e3655227 cpufreq: cpu-boost: utilize latest sched_boost API
Update sched_boost_on_input to be an unsigned int
so that it can utilize the latest sched_boost APIs.

Change-Id: I42f626c9f0112aee3bb9f37fd62d77709f03ebcf
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
[avilaj@codeaurora.org: Change to sysfs from module_param]
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
2019-01-11 14:09:47 -08:00
Rohit Gupta
220c8fe010 cpufreq: cpu-boost: Force most/all tasks to big cluster on input event
Scheduler provides an API to force tasks to the big cluster. To
improve performance, use this API to move most/all tasks to the
big cluster for short duration on an input event. On the removal of
frequency boost (after input_boost_ms), this scheduler boost is also
deactivated.

Change-Id: I9d643914ebc75266478cc22260a45862faad6236
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
2019-01-11 14:09:47 -08:00
Junjie Wu
ad47217c49 cpufreq: cpu-boost: Support separate input_boost_freq for different CPUs
Different types of CPUs could have different frequency to satisfy same
input workload. Add support for using different input_boost_freq on
different CPUs.

input_boost_freq now either takes a single number which applies to all
CPUs, or cpuid:freq pairs separated by space for different CPUs.

Change-Id: I20506a9fbdb4d532d94168bbd61744595bebc8e5
Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
[avilaj@codeaurora.org: Change to sysfs from module param]
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
2019-01-11 14:09:46 -08:00
Saravana Kannan
6373fc0023 cpufreq: cpu-boost: Add input boost driver
When certain bursty and important events take place, it might take a while
for the current cpufreq governor to notice the new load and react to it.
That would result in poor user experience. To alleviate this, the cpu-boost
driver boosts the frequency of a CPU for at least input_boost_ms duration
on incoming input events to maintain good user experience while the
governor catches up. This is accomplished by changing the policy->min of
all the online cpus to input_boost_freq.

Since this driver enforces the boost by hooking into standard cpufreq
ADJUST notifiers, it has several advantages:
- More portable across kernel versions where the cpufreq internals might
  have been rewritten.
- Governor agnostic and hence works with multiple governors like
  conservative, ondemand, interactive, etc.
- Does not affect the sampling period/logic of existing governors.
- Can have the boost period adjusted independent of governor sampling
  period.

Change-Id: Idb0ab75d68ae4ceff259cbbaaec1a9bb3bc871d3
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[avilaj@codeaurora.org: Change from module_param to sysfs.]
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
2019-01-11 14:09:35 -08:00