Only enable LPM after all cores are onlined. This avoids potential
race between code boot sequence and low power modes on A57 cluster.
Change-Id: I95202f4ffe62dd8889efcc42085c8792b9ec04ba
Change boot freq of A57 to 960MHz to prevent scheduler from treating
A57 as little cluster due to reduced capacity.
Change-Id: Id9aa8a2802b49cbeb83d28c9badd9027ac27b3f1
Thermal mitigation may cause A57s to go offline and their cpufreq
folders might be unavailable which may cause writes to their
scaling_max nodes to be unsuccessful.
Set A57 max freq from msm_performance which provides a usperspace
interface to set frequency limits regardless of core online status.
Change-Id: I734d178f6e05d152444846c7048fd661d1ee7150
post_boot script is also executed during framework reboot, where all
A57s might be online running at max frequency. Disabling thermal
hotplug then could lead into thermal runaway.
Explicitly offline CPU 5-7 to make sure at most one A57 is online, and
limit its frequency to 960MHz when thermal hotplug is disabled.
Change-Id: I53b7541348ba0b14303006dba4b3c21770d36225
Set interactive governor parameters to achieve power-perf balance
for both the clusters on msm8994.
Change-Id: I43c66b5153378f01caa21176765297a9d5f6f0b5
Enery-awareness is started as a service in init.target.rc. Removing it from
the init.qcom.post_boot.sh
Change-Id: If604b0b91904c94e5642da8e6f45e7d469914c6f
Changing governor needs to be protected against hotplug. However,
disabling thermal and BCL hotplug for too long would cause potential
stability issue. Minimize the time that thermal and BCL hotplug is
disabled in post_bost script.
Change-Id: I9cb356914c3d019e4c3c5ee502f86b4e63292e3a
Path to default_values file has been changed and so the rm
command should be updated with new path for both APQ8084
and MSM8994.
Change-Id: I368bfe96e8b6f0fab9235fb70833e19ae2a15440
Enable the input boost feature on A53 cluster such that on touch
events the CPU frequency is raised to 1.3GHz for 40 ms
Change-Id: Ic2e4e893ecfc92d796ec4cec71eeddeacf3fa92e
This reverts commit 3f8c938fa4.
Reverting this change because the limit of CPU shares
is causing stability crashes
Change-Id: I6066a6afb2846dfe0e448199c27359d0ee3d72ea
This change enables interactive governor to use CPU runqueue loads
for each CPU over the last window from scheduler instead of just
getting CPU busy time. Task migration fixups are also enabled so
that task load can be adjusted at the source and destination CPU
runqueue during a migration.
Change-Id: I7a5c285c5061322dbb0b6d07d86520a981552d2e
Disable core control from thermal(KTM and BCL) during
governor configuration on MSM8994 in post boot script.
Change-Id: Id6d7058b2e6d2bd5bb240fe9397f65525d6ad5db
Cgroup feature provided by Linux kernel is one of the means used by
Android framework to control cpu usage of applications. Android
framework creates /apps and /apps/bg_non_interactive cgroups and
manages migration of tasks between those two cgroups. Tasks created
outside the scope of Android framework (kernel threads, mpdecision
etc) are however left in "root" cgroup, where each task is considered
to be a cgroup of its own, thus giving each such task more CPU
resource than desired. Such tasks have been found to interfere with
smooth functioning of Android application and have been responsible
for effects such as increased janks or bad user-experience.
Fix this problem by creating a /native cgroup to encapsulate all tasks
at bootup. /native cgroup is assigned shares of 1024 and real-time
bandwidth of 15% (150ms out of every 1sec). The real-time bandwidth is
unchanged (from what currently exists) while the combined shares of
1024 for all "native" tasks will help curb interference between native
and Android tasks.
Change-Id: I988b6145ab7cfbd94cbbab4d63fadc3bab6551fa
Changing packing parameter and interactive setting for consistent
and improved IO related performance on 8939 target
Change-Id: Ia4bd1d509109050dd2b518cdb11ec90fee94935a
Remove the default_values file and set the min_freq
prop to the correct freq value prior to start of perfd.
Change-Id: If0508d5e5d51b2ab3b7e62f81c0be8331d897fef
Start perfd for 8916,8939, 8936
For 8916,8936:define ro.min_freq_0
For 8939:define ro.min_freq_0 and ro.min_freq_4
Change-Id: I53e7afb6f29d9987c22e2c52d91cd25b614f9eeb
Set cpufreq governor to interactive (without load input from scheduler)
for both clusters on msm8994. Also set tunables per cluster for optimal
power/performance.
Change-Id: Icea285b3ecf14d70b02cf7bc004fc9578102ec51
With cluster architecture the low power mode sysfs nodes are changed.
Enable all low power modes through single control now for both these
targets.
Change-Id: I5ea404490742f679bf08fe1053854941afa9453c
Currently, idle pc is enabled only for core 0. Enable them for secondary
cores for supported targets.
Change-Id: I1cc29b5ad99653f709832076cf7a2e2868141206
Enable RPS configuration on 8994 by statically assigning it to
core 3. In stock configuration, we are observing worker queue
starvation due to contention with network stack and this leads
to data stalls.
CRs-fixed: 711771
Change-Id: I3933aea9d5495053adcd4854c76e53b2ed0fd551
Set cpufreq governor to interactive for both clusters on msm8994. Also set
up tunables per cluster to query the load from the scheduler and enable
migration notifications from the scheduler.
Change-Id: I24e197ee6ec4e2e94bbc6e8499f819be3a951cf4
Estimate per core power consumption and initialize
the energy-aware driver with these values.
Depends-on: 885673
Change-Id: I85fb4a1029d3dc1f8f1d38247a7e4a2117986771
8994 boots up with cores from the little cluster, Online the rest of
the cores from the big cluster after bootup is complete.
Change-Id: I483321a502ce9dd1bd556292ba9dc7a00f88be47
The cpu scaling drivers now specify 199.2 MHz as the minimum
rate; switch from 200MHz to 199.2Mhz.
Eventually, this code should go away since there is no point
overriding the minimum frequency with an identical value.
Change-Id: I74a2062081936bc64010596cde89d7c3d3550e8c
L2 and CCI low power modes have been validated and verified. Enable L2 and
CCI low power modes along with CPU low power modes on android boot
completion.
Change-Id: I5430fda0712801478abb3d6cc55c830b4e7ec9a1
This change sets the cpufreq governor to be interactive_pro and
configures the parameters for both clusters in msm8994. If
interactive_pro doesn't exist the fallback will be interactive
with default configuration.
Change-Id: Iedc979ff2824f88d782d5d1da2dd733f62df6bd7
For 8610 target, set the property that will enable
the device to have its scaling_min_freq set to
787 Mhz indefinitely.
Conflicts:
rootdir/etc/init.qcom.post_boot.sh
CRs-Fixed: 630893
Change-Id: I3bcd04206443e0c855663fc8411ff41b48f97f55
Enable A53 supported low power modes(wfi, standalone power collapse,
power collapse) by default for 8916.
Change-Id: If1dd6bba4b57b11589fb6286fb6f68f29814f8d8
MSM8974 pro and APQ8084 targets require two cores to be online
when the display is on to meet performance requirements.
Set ro.qualcomm.perf.cores_online property to a value of 2 to
enable this feature for said targets.
Change-Id: I054fee2c247b00bca3a129f86b488b2f77104ec7
Recently lpm_resources implementation has changed and moved
to lpm_levels. Hence remove the unnecessary sysfs entries of
lpm_resources and add lpm_levels sysfs entries.
Change-Id: I3a5c2c979e25ae2efcc85e0fb16daf018ef65a35
The interactive governor is configured with a hispeed
frequency of 1.5 GHz. This causes L2 to be bumped up to
1.5 GHz as well, which requires a turbo CX voltage and
affects power. To save power when the hispeed frequency
is triggered, change the hispeed frequency to 1.2 GHz,
which has the highest L2 frequency that can be supported
by a nominal CX voltage.
Change-Id: I6742770b79e9d9e929766c1039a73da99b3a89fc
1. Enable thread migration notifiers from scheduler
2. Enable input boost with boost frequency as 1.49 GHz and boost
duration of 40 ms
Change-Id: Ic8443905bba658234a5ceaad775d2c5369153660
System will boot up with static mapping governor,
"msm_cpufreq". Change this to "cpubw_hwmon" to
enable Krait Bus DCVS.
Change-Id: I04b41e0acab7dcd1992f49145ee99217f85095d3
A new Power management driver has been add a new module and the sysfs
modules are no longer valid.
Change-Id: Ice97d56d966fda46176a81736194ea33ee368c9f
If the interactive governor is being used, vote to turn off
io_is_busy when video encode starts to reduce power consumption.
Change-Id: I69738b989af3d6e0f1a708c21875b935b435cd91
Remove line that enables krait bus dcvs and replace it
with one that sets the devfreq governor to "cpubw_hwmon".
Change-Id: Ie1b3e7ff232ff06232e1dbada2ab762c95196c2d
The ondemand governor has the ability to adapt to multicore
targets to render better scaling. This change sets one of such
parameters i.e optimal frequency to the nominal max frequency
to achieve best perf/power. Along with that, this change also
tunes the down_differential_multi_core to a reasonable value.
Change-Id: I4fe76224f0166a3a6db2a79c18637e0ab760ceac
CRs-fixed: 561456
The ondemand governor has the ability to adapt to multicore
targets to render better scaling. This change sets one of such
parameters i.e optimal frequency to the nominal max frequency
to achieve best perf/power. Along with that, this change also
tunes the down_differential_multi_core to a reasonable value.
CRs-fixed: 561456
Change-Id: If0ea8e2f663982201f7d680144def44fbfd62c50
Enables the following parameters for input_boost:
1) input_boost_freq is set to 1.49 GHz
2) input_boost_ms which is the time for which the boost is effective
is set to 40ms
Change-Id: I697ddb1c2511ec3aa8cf9168bca392c7480a9a3d
A new Power management driver has been add a new module and the sysfs
modules are no longer valid.
Change-Id: I1f5b2bafce1c5a034f31b9268d9dee574907dae0
This change enables 40ms above_hispeed_delay parameter
for Interactive governor to apply for frequencies above
1.4 GHz.
Change-Id: Ib021da2fbfeac42cfa961d86357cfca67b090687
Enables the following paramters in post boot file for 8974 pro
1. Synchronize frequencies on thread migration for at least 20ms.
2. Limit frequency synchronization on thread migration to below 1.7GHz.
3. Enable SDF for interactive governor for 100 ms.
Change-Id: I6cbde98e16bb00f35a7ee5cc1913968530fa0df9
This enables L2 power collapse during APPS suspend.
The change is introduced to accomodate an intermediate
level for L2 power collapse.
Change-Id: I5d01bb5f2c9bdde94cca7d4a758788a097dd22a5
Change needed to help improve frequency scaling in ondemand
governor. Sampling Down Factor is set to 2 in the
init.qcom.post_boot.sh
Change-Id: If9f7ed11af0056851e19121d79eb8eb08776c215
Change the VM_MAX_READAHEAD value from the default 128K
to 512K in the init script. Do this only for apq8084.
Change-Id: I2131c171d94b1c949b69d889506d6d97a1719bc6
Currently input events like touch, boost the CPU to max frequency.
Instead of scaling to max freqeuncy, this change adds a node called
input_boost to the post boot file and sets its value to 1.19 GHz.
Change-Id: Icbc9b08055e23b746ec1ef008aa4bba179d42a9c
Events surrounding XO shutdown may cause voltage droop on the MX
rail on 8226v1 hardware. Avoid this by disabling XO shutdown.
This has been fixed in hardware for 8226v2.
Change-Id: I99866e292247c1e575d122256de7fa97f3672e95
Change needed to help improve frequency scaling
in ondemand governor. Sampling Down Factor
is set to 2 in the init.qcom.post_boot.sh
Change-Id: I1f8eb4fabce24ed7076251f2cc1ac96e8dc79dd4
Turn on the cpu.sync_on_migrate node to synchronize target cpu frequency
to that of source cpu frequency on foreground thread migration. To ensure
no impact on power, lowering sync_freq value to 960MHz
Change-Id: Ib61f7f4c17736fd4f44deeeccc6b01f05830d130
Initializing the sync_freq_value to 1.1 GHz in sysfs
in accordance with the new frequency table available
for 8974 v2. Also correcting the value of optimal_freq
from 918000 (not available on this device) to 960000.
Change-Id: I2a69b6afbf924536fb57ac21fa39fb880d0ebb0c
Enable stand alone power collapse and power collapse
for 8226 during idle and suspend.
CRs-Fixed: 472591
Change-Id: I708d1fd3b37662e1cb5f40cfd421725671d589a8
Kernel thermal migitation restricts the number of cores that can be
onlined, when in certain thermal situations. To set cpufreq parameters,
the core should be online. If the core_control feature is not disabled,
the cores cannot be brought online and the following commands will fail.
Enable core_control after the parameters are set.
CRs-Fixed: 460083
Change-Id: Icb8f073547483a1acdf97937cc1b6fae3add33a6
Change the VM_MAX_READAHEAD value from the default 128K
to 512K in the init script. Do this only for msm8974.
Change-Id: I29cdea3116574f6ca9eba8dfb9b4db7c9b2d5e13