<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/android_kernel_m2note/drivers/cpufreq, branch lp-5.1</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://gitea.privatedns.org/xavi/android_kernel_m2note/atom?h=lp-5.1</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/atom?h=lp-5.1'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/'/>
<updated>2016-09-13T11:23:00+00:00</updated>
<entry>
<title>cpufreq: ondemand: Eliminate the deadband effect</title>
<updated>2016-09-13T11:23:00+00:00</updated>
<author>
<name>anarkia1976</name>
<email>stefano.villa1976@gmail.com</email>
</author>
<published>2015-10-25T18:56:57+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=3d9adbfd5ce6055248693b5d7611d823a71c3258'/>
<id>urn:sha1:3d9adbfd5ce6055248693b5d7611d823a71c3258</id>
<content type='text'>
    using the formula:
        Target frequency = C * load
        where C = policy-&gt;cpuinfo.max_freq / 100

    Though, in many cases, the minimum available frequency is pretty high and
    the above calculation introduces a dead band from load 0 to
    100 * policy-&gt;cpuinfo.min_freq / policy-&gt;cpuinfo.max_freq where the target
    frequency is always calculated to less than policy-&gt;cpuinfo.min_freq and
    the minimum frequency is selected.

    For example: on Intel i7-3770 @ 3.4GHz the policy-&gt;cpuinfo.min_freq = 1600000
    and the policy-&gt;cpuinfo.max_freq = 3400000 (without turbo). Thus, the CPU
    starts to scale up at a load above 47.
    On quad core 1500MHz Krait the policy-&gt;cpuinfo.min_freq = 384000
    and the policy-&gt;cpuinfo.max_freq = 1512000. Thus, the CPU starts to scale
    at load above 25.

    Change the calculation of target frequency to eliminate the above effect using
    the formula:

        Target frequency = A + B * load
        where A = policy-&gt;cpuinfo.min_freq and
              B = (policy-&gt;cpuinfo.max_freq - policy-&gt;cpuinfo-&gt;min_freq) / 100

    This will map load values 0 to 100 linearly to cpuinfo.min_freq to
    cpuinfo.max_freq.

    Also, use the CPUFREQ_RELATION_C in __cpufreq_driver_target to select the
    closest frequency in frequency_table. This is necessary to avoid selection
    of minimum frequency only when load equals to 0. It will also help for selection
    of frequencies using a more 'fair' criterion.

    Tables below show the difference in selected frequency for specific values
    of load without and with this patch. On Intel i7-3770 @ 3.40GHz:
        Without                 With
    Load        Target  Selected        Target  Selected
    0   0       1600000         1600000 1600000
    5   170050  1600000         1690050 1700000
    10  340100  1600000         1780100 1700000
    15  510150  1600000         1870150 1900000
    20  680200  1600000         1960200 2000000
    25  850250  1600000         2050250 2100000
    30  1020300 1600000         2140300 2100000
    35  1190350 1600000         2230350 2200000
    40  1360400 1600000         2320400 2400000
    45  1530450 1600000         2410450 2400000
    50  1700500 1900000         2500500 2500000
    55  1870550 1900000         2590550 2600000
    60  2040600 2100000         2680600 2600000
    65  2210650 2400000         2770650 2800000
    70  2380700 2400000         2860700 2800000
    75  2550750 2600000         2950750 3000000
    80  2720800 2800000         3040800 3000000
    85  2890850 2900000         3130850 3100000
    90  3060900 3100000         3220900 3300000
    95  3230950 3300000         3310950 3300000
    100 3401000 3401000         3401000 3401000

    On ARM quad core 1500MHz Krait:
        Without                 With
    Load        Target  Selected        Target  Selected
    0   0       384000          384000  384000
    5   75600   384000          440400  486000
    10  151200  384000          496800  486000
    15  226800  384000          553200  594000
    20  302400  384000          609600  594000
    25  378000  384000          666000  702000
    30  453600  486000          722400  702000
    35  529200  594000          778800  810000
    40  604800  702000          835200  810000
    45  680400  702000          891600  918000
    50  756000  810000          948000  918000
    55  831600  918000          1004400 1026000
    60  907200  918000          1060800 1026000
    65  982800  1026000         1117200 1134000
    70  1058400 1134000         1173600 1134000
    75  1134000 1134000         1230000 1242000
    80  1209600 1242000         1286400 1242000
    85  1285200 1350000         1342800 1350000
    90  1360800 1458000         1399200 1350000
    95  1436400 1458000         1455600 1458000
    100 1512000 1512000         1512000 1512000

    Tested on Intel i7-3770 CPU @ 3.40GHz and on ARM quad core 1500MHz Krait
    (Android smartphone).
    Benchmarks on Intel i7 shows a performance improvement on low and medium
    work loads with lower power consumption. Specifics:

    Phoronix Linux Kernel Compilation 3.1:
    Time: -0.40%, energy: -0.07%
    Phoronix Apache:
    Time: -4.98%, energy: -2.35%
    Phoronix FFMPEG:
    Time: -6.29%, energy: -4.02%

    Also, running mp3 decoding (very low load) shows no differences with and
    without this patch.

    Signed-off-by: Stratos Karafotis &lt;stratosk@semaphore.gr&gt;
    Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>sched: cpufreq: Adds a field cpu_power in the task_struct</title>
<updated>2016-09-10T14:03:52+00:00</updated>
<author>
<name>Ruchi Kandoi</name>
<email>kandoiruchi@google.com</email>
</author>
<published>2015-04-17T23:33:29+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=d568ebc24c10a87c465ada70d0009c2f707ef121'/>
<id>urn:sha1:d568ebc24c10a87c465ada70d0009c2f707ef121</id>
<content type='text'>
cpu_power has been added to keep track of amount of power each task is
consuming. cpu_power is updated whenever stime and utime are updated for
a task. power is computed by taking into account the frequency at which
the current core was running and the current for cpu actively
running at hat frequency.

Bug: 21498425
Change-Id: Ic535941e7b339aab5cae9081a34049daeb44b248
Signed-off-by: Ruchi Kandoi &lt;kandoiruchi@google.com&gt;
</content>
</entry>
<entry>
<title>cpufreq_stats: Adds the fucntionality to load current values for each frequency</title>
<updated>2016-09-10T14:03:51+00:00</updated>
<author>
<name>Ruchi Kandoi</name>
<email>kandoiruchi@google.com</email>
</author>
<published>2015-04-16T23:32:02+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=bbc4c63b8fa5bb5d5e855a65714d9f57a02ac737'/>
<id>urn:sha1:bbc4c63b8fa5bb5d5e855a65714d9f57a02ac737</id>
<content type='text'>
for all the cores.

The current values for the cpu cores needs to be added to the device
tree for this functionaly to work. It loads the current values for each
frequecy in uA for all the cores.

Bug: 21498425
Change-Id: If03311aaeb3e4c09375dd0beb9ad4fbb254b5c08
Signed-off-by: Ruchi Kandoi &lt;kandoiruchi@google.com&gt;
</content>
</entry>
<entry>
<title>cpufreq: remove race while accessing cur_policy</title>
<updated>2016-09-10T10:06:55+00:00</updated>
<author>
<name>Bibek Basu</name>
<email>bbasu@nvidia.com</email>
</author>
<published>2014-05-19T04:54:01+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=0a363ba133abd2036ce9b129eff1db32436ac250'/>
<id>urn:sha1:0a363ba133abd2036ce9b129eff1db32436ac250</id>
<content type='text'>
While accessing cur_policy during executing events
CPUFREQ_GOV_START, CPUFREQ_GOV_STOP, CPUFREQ_GOV_LIMITS,
same mutex lock is not taken, dbs_data-&gt;mutex, which leads
to race and data corruption while running continious suspend
resume test. This is seen with ondemand governor with suspend
resume test using rtcwake.

 Unable to handle kernel NULL pointer dereference at virtual address 00000028
 pgd = ed610000
 [00000028] *pgd=adf11831, *pte=00000000, *ppte=00000000
 Internal error: Oops: 17 [#1] PREEMPT SMP ARM
 Modules linked in: nvhost_vi
 CPU: 1 PID: 3243 Comm: rtcwake Not tainted 3.10.24-gf5cf9e5 #1
 task: ee708040 ti: ed61c000 task.ti: ed61c000
 PC is at cpufreq_governor_dbs+0x400/0x634
 LR is at cpufreq_governor_dbs+0x3f8/0x634
 pc : [&lt;c05652b8&gt;] lr : [&lt;c05652b0&gt;] psr: 600f0013
 sp : ed61dcb0 ip : 000493e0 fp : c1cc14f0
 r10: 00000000 r9 : 00000000 r8 : 00000000
 r7 : eb725280 r6 : c1cc1560 r5 : eb575200 r4 : ebad7740
 r3 : ee708040 r2 : ed61dca8 r1 : 001ebd24 r0 : 00000000
 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
 Control: 10c5387d Table: ad61006a DAC: 00000015
 [&lt;c05652b8&gt;] (cpufreq_governor_dbs+0x400/0x634) from [&lt;c055f700&gt;] (__cpufreq_governor+0x98/0x1b4)
 [&lt;c055f700&gt;] (__cpufreq_governor+0x98/0x1b4) from [&lt;c0560770&gt;] (__cpufreq_set_policy+0x250/0x320)
 [&lt;c0560770&gt;] (__cpufreq_set_policy+0x250/0x320) from [&lt;c0561dcc&gt;] (cpufreq_update_policy+0xcc/0x168)
 [&lt;c0561dcc&gt;] (cpufreq_update_policy+0xcc/0x168) from [&lt;c0561ed0&gt;] (cpu_freq_notify+0x68/0xdc)
 [&lt;c0561ed0&gt;] (cpu_freq_notify+0x68/0xdc) from [&lt;c008eff8&gt;] (notifier_call_chain+0x4c/0x8c)
 [&lt;c008eff8&gt;] (notifier_call_chain+0x4c/0x8c) from [&lt;c008f3d4&gt;] (__blocking_notifier_call_chain+0x50/0x68)
 [&lt;c008f3d4&gt;] (__blocking_notifier_call_chain+0x50/0x68) from [&lt;c008f40c&gt;] (blocking_notifier_call_chain+0x20/0x28)
 [&lt;c008f40c&gt;] (blocking_notifier_call_chain+0x20/0x28) from [&lt;c00aac6c&gt;] (pm_qos_update_bounded_target+0xd8/0x310)
 [&lt;c00aac6c&gt;] (pm_qos_update_bounded_target+0xd8/0x310) from [&lt;c00ab3b0&gt;] (__pm_qos_update_request+0x64/0x70)
 [&lt;c00ab3b0&gt;] (__pm_qos_update_request+0x64/0x70) from [&lt;c004b4b8&gt;] (tegra_pm_notify+0x114/0x134)
 [&lt;c004b4b8&gt;] (tegra_pm_notify+0x114/0x134) from [&lt;c008eff8&gt;] (notifier_call_chain+0x4c/0x8c)
 [&lt;c008eff8&gt;] (notifier_call_chain+0x4c/0x8c) from [&lt;c008f3d4&gt;] (__blocking_notifier_call_chain+0x50/0x68)
 [&lt;c008f3d4&gt;] (__blocking_notifier_call_chain+0x50/0x68) from [&lt;c008f40c&gt;] (blocking_notifier_call_chain+0x20/0x28)
 [&lt;c008f40c&gt;] (blocking_notifier_call_chain+0x20/0x28) from [&lt;c00ac228&gt;] (pm_notifier_call_chain+0x1c/0x34)
 [&lt;c00ac228&gt;] (pm_notifier_call_chain+0x1c/0x34) from [&lt;c00ad38c&gt;] (enter_state+0xec/0x128)
 [&lt;c00ad38c&gt;] (enter_state+0xec/0x128) from [&lt;c00ad400&gt;] (pm_suspend+0x38/0xa4)
 [&lt;c00ad400&gt;] (pm_suspend+0x38/0xa4) from [&lt;c00ac114&gt;] (state_store+0x70/0xc0)
 [&lt;c00ac114&gt;] (state_store+0x70/0xc0) from [&lt;c027b1e8&gt;] (kobj_attr_store+0x14/0x20)
 [&lt;c027b1e8&gt;] (kobj_attr_store+0x14/0x20) from [&lt;c019cd9c&gt;] (sysfs_write_file+0x104/0x184)
 [&lt;c019cd9c&gt;] (sysfs_write_file+0x104/0x184) from [&lt;c0143038&gt;] (vfs_write+0xd0/0x19c)
 [&lt;c0143038&gt;] (vfs_write+0xd0/0x19c) from [&lt;c0143414&gt;] (SyS_write+0x4c/0x78)
 [&lt;c0143414&gt;] (SyS_write+0x4c/0x78) from [&lt;c000f080&gt;] (ret_fast_syscall+0x0/0x30)
 Code: e1a00006 eb084346 e59b0020 e5951024 (e5903028)
 ---[ end trace 0488523c8f6b0f9d ]---

Signed-off-by: Bibek Basu &lt;bbasu@nvidia.com&gt;
Acked-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Cc: 3.11+ &lt;stable@vger.kernel.org&gt; # 3.11+
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: franciscofranco &lt;franciscofranco.1990@gmail.com&gt;
</content>
</entry>
<entry>
<title>cpufreq: use correct preset cpu frequency</title>
<updated>2016-08-26T18:40:42+00:00</updated>
<author>
<name>Moyster</name>
<email>oysterized@gmail.com</email>
</author>
<published>2016-08-26T18:40:42+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=0c215e13b8e299ccfb3d6db2cc5c5484296fbd33'/>
<id>urn:sha1:0c215e13b8e299ccfb3d6db2cc5c5484296fbd33</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cpufreq: Introduce new relation for freq selection</title>
<updated>2016-08-26T18:20:22+00:00</updated>
<author>
<name>Stratos Karafotis</name>
<email>stratosk@semaphore.gr</email>
</author>
<published>2014-06-30T16:59:33+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=6d1a0ace27b41d4f3f50ec42d0300a75ac5f7c68'/>
<id>urn:sha1:6d1a0ace27b41d4f3f50ec42d0300a75ac5f7c68</id>
<content type='text'>
Introduce CPUFREQ_RELATION_C for frequency selection.
It selects the frequency with the minimum euclidean distance to target.
In case of equal distance between 2 frequencies, it will select the
greater frequency.

Signed-off-by: Stratos Karafotis &lt;stratosk@semaphore.gr&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Stefan Guendhoer &lt;stefan@guendhoer.com&gt;
</content>
</entry>
<entry>
<title>hotplug cpu touch frequency</title>
<updated>2016-08-26T18:06:31+00:00</updated>
<author>
<name>Stefan Guendhoer</name>
<email>stefan@guendhoer.com</email>
</author>
<published>2016-01-07T20:52:28+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=a2253bb117db4df4f14e401fc16ea11f73569815'/>
<id>urn:sha1:a2253bb117db4df4f14e401fc16ea11f73569815</id>
<content type='text'>
</content>
</entry>
<entry>
<title>3.10.70 -&gt; 3.10.71</title>
<updated>2016-08-26T13:59:39+00:00</updated>
<author>
<name>Jan Engelmohr</name>
<email>jan.engelmohr@mailbox.tu-dresden.de</email>
</author>
<published>2016-07-26T16:10:00+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=d2ee3e254ee0939806c103c145035ddac9fe5953'/>
<id>urn:sha1:d2ee3e254ee0939806c103c145035ddac9fe5953</id>
<content type='text'>
</content>
</entry>
<entry>
<title>first commit</title>
<updated>2016-08-15T02:19:42+00:00</updated>
<author>
<name>Meizu OpenSource</name>
<email>patchwork@meizu.com</email>
</author>
<published>2016-08-15T02:19:42+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=d2e1446d81725c351dc73a03b397ce043fb18452'/>
<id>urn:sha1:d2e1446d81725c351dc73a03b397ce043fb18452</id>
<content type='text'>
</content>
</entry>
</feed>
