Commit Graph

198 Commits

Author SHA1 Message Date
Azure-Helper
87eea85026 [SQUASH] Revert workaround for pixel thermal hal
Revert "disable simple thermal hal"

This reverts commit aeedbd92ef.

Revert "ARM64: configs: raphael: enable THERMAL_EMULATION mode"

This reverts commit ea5101b76a.

Revert "ARM64: dts: raphael: Create sdm-therm thermal-zone"

This reverts commit 6ceb1abc9c.

Revert "ARM64: dts: raphael: Configure thermal-mitigation for Pixel ThermalHAL"

This reverts commit e18eafce65.

Revert "drivers: arch_topology: wire up thermal limit for arch_scale_max_freq_capacity"

This reverts commit f820821b07.

Revert "thermal: adc-tm: implement emul_temp function"

This reverts commit 20bdcbdf99.

Revert "adc: ignore when adc voltage reading zero"

This reverts commit ca31ecb53d.

Revert "drivers: thermal: lmh_dcvs: Correct limits initial value"

This reverts commit f203051c5c.

Revert "thermal: core: Use high value to init low temp tracking thermal_zone"

This reverts commit 426d9ff3ea.

Revert "FROMLIST: thermal: make thermal_cooling_device_register accepts const string"

This reverts commit 010b3e53b0.

Revert "arm64: dts: raphael: increase bcl-vbat threshold"

This reverts commit 7da3cd0632.

Revert "bcl: expose VBat threshold changes to dtsi"

This reverts commit eefe15c762.

Revert "Thermal: Sensor fusion to trigger throttling"

This reverts commit bf6455f995.

Revert "Revert "driver: thermal: bcl_pmic5: Use mitigation level interrupts""

This reverts commit c17d1f293c.

Revert "Revert "drivers: thermal: bcl_pmic5: filter out BCL spurious interrupts""

This reverts commit 206b9180bd.

Revert "Thermal: thermal_zone_get_cdev_by_name added"

This reverts commit 41efd8454d.

Revert "Thermal: Added VIRT_COUNT_THRESHOLD to virtual sensor"

This reverts commit 8bd7e68836.

Revert "thermal: Skip thermal sensor update if emul temp set"

This reverts commit 5cf5c72029.

Revert "thermal: create tz and cdev softlink in thermal class"

This reverts commit 6bd56036cd.

Revert "thermal: tracing: Move clock_set_rate outsides CONFIG_COMMON_CLK_MSM"

This reverts commit 7f27cb8ed1.

Revert "thermal: qcom: tracing: add clock_set_rate tracing for lmh"

This reverts commit 10cd66e83b.

Revert "thermal: Create softlink by name for thermal_zone and cooling device"

This reverts commit 0770b960e9.

Signed-off-by: Azure-Helper <azurehelper219@gmail.com>
2023-08-09 17:28:37 -05:00
Wei Wang
f820821b07 drivers: arch_topology: wire up thermal limit for arch_scale_max_freq_capacity
before patch and "echo 50000 > /sys/class/thermal/tz-by-name/sdm-therm/emul_temp"
com.android.uibench.janktests.UiBenchJankTests#testInvalidateTree: PASSED (02m6.247s)
        gfx-avg-slow-ui-thread: 0.07110321338664297
        gfx-avg-missed-vsync: 0.0
        gfx-avg-high-input-latency: 74.25140826299423
        gfx-max-frame-time-50: 12
        gfx-min-total-frames: 2250
        gfx-avg-frame-time-99: 11.8
        gfx-avg-num-frame-deadline-missed: 1.6
        gfx-avg-frame-time-50: 9.6
        gfx-max-high-input-latency: 99.86666666666667
        gfx-avg-frame-time-90: 11.0
        gfx-avg-frame-time-95: 11.0
        gfx-max-frame-time-95: 13
        gfx-max-frame-time-90: 13
        gfx-max-slow-draw: 0.0
        gfx-max-frame-time-99: 13
        gfx-avg-slow-draw: 0.0
        gfx-max-total-frames: 2251
        gfx-avg-jank: 43.678000000000004
        gfx-max-slow-bitmap-uploads: 0.0
        gfx-max-missed-vsync: 0.0
        gfx-avg-total-frames: 2250
        gfx-max-jank: 96.67
        gfx-max-slow-ui-thread: 0.13333333333333333
        gfx-max-num-frame-deadline-missed: 3
        gfx-avg-slow-bitmap-uploads: 0.0

aefore patch and "echo 50000 > /sys/class/thermal/tz-by-name/sdm-therm/emul_temp"
google/perf/jank/UIBench/UIBench (1 Test)
----------------------------------------
[1/1] com.android.uibench.janktests.UiBenchJankTests#testInvalidateTree: PASSED (02m7.027s)
        gfx-avg-slow-ui-thread: 0.0
        gfx-avg-missed-vsync: 0.0
        gfx-avg-high-input-latency: 11.53777777777778
        gfx-max-frame-time-50: 7
        gfx-min-total-frames: 2250
        gfx-avg-frame-time-99: 8.0
        gfx-avg-num-frame-deadline-missed: 0.0
        gfx-avg-frame-time-50: 7.0
        gfx-max-high-input-latency: 41.15555555555556
        gfx-avg-frame-time-90: 7.2
        gfx-avg-frame-time-95: 7.8
        gfx-max-frame-time-95: 8
        gfx-max-frame-time-90: 8
        gfx-max-slow-draw: 0.0
        gfx-max-frame-time-99: 8
        gfx-avg-slow-draw: 0.0
        gfx-max-total-frames: 2250
        gfx-avg-jank: 0.0
        gfx-max-slow-bitmap-uploads: 0.0
        gfx-max-missed-vsync: 0.0
        gfx-avg-total-frames: 2250
        gfx-max-jank: 0.0
        gfx-max-slow-ui-thread: 0.0
        gfx-max-num-frame-deadline-missed: 0
        gfx-avg-slow-bitmap-uploads: 0.0

Bug: 143162654
Test: use emul_temp to change thermal condition and see capacity changed
Change-Id: Idbf943f9c831c288db40d820682583ade3bbf05e
Signed-off-by: Wei Wang <wvw@google.com>
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
2022-05-11 14:13:04 +00:00
Pavankumar Kondeti
399546962f sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I50d41aa3338803cbd45ff6314b2bb3978c59282b
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2022-04-18 11:35:55 +00:00
Wei Wang
0c53cbe4b2 Revert "sched: Improve the scheduler"
This reverts commit a3dd94a1bb.

Bug:133481659
Test: build
Change-Id: Ib23609315f3446223521612621fe54469537c172
Signed-off-by: Wei Wang <wvw@google.com>
2022-04-18 11:35:43 +00:00
kondors1995
732ff49539 Revert 4.19 walt backports
Squashed commit of the following:

commit e0da409d20a1120c48f7c7c59a86df2d0e78dff1
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:28 2022 +0000

    Revert "Revert "sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()""

    This reverts commit 8cb322ba44.

commit 04e33109bae2cb907809e9e72dc78b4b0e9d90d9
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:27 2022 +0000

    Revert "sched/fair: Derive the downmigration margin wrt the destination CPU"

    This reverts commit 51e64c1746.

commit dc6a3a970d523bc734e97ad0596990a553958bf0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:26 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit b1d4f5bde5.

commit 51e5e01f3aefc05555161d6d1ababc6d6820dd88
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:25 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e376cd40d2.

commit bb816a5803a37721c54fc9911a8a715b0198713c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:24 2022 +0000

    Revert "sched/fair: Refactor packing eligible test"

    This reverts commit cf6c2a22b4.

commit 1008281e2aacf59465ea31d1176870759f91a774
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:23 2022 +0000

    Revert "sched: improve the scheduler"

    This reverts commit 64813e3d15.

commit 3b75a59b7b65dee631983e5abde1c002f460a521
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:22 2022 +0000

    Revert "sched/fair: Allow prev cpu in find best target"

    This reverts commit 1fe0f64b5a.

commit e197f8cdca5c05f70ba6ada8dd3e2e800bafe0fc
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:21 2022 +0000

    Revert "sched/fair: Fix excessive packing on the max capacity CPU"

    This reverts commit a88cad82cf.

commit 1d908d935c132824ab580f976d9fce751ab502f8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:20 2022 +0000

    Revert "sched/fair: upadte adjust_cpus_for_packing()"

    This reverts commit 08fc238c86.

commit 35dfbb767009eea348be9ac3417b26981abdd084
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:19 2022 +0000

    Revert "sched: clean-up unused/duplicate functions & variables"

    This reverts commit f79c18f23b.

commit 628d78cac047cf164f1cca797b759a43b31696a9
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:17 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e9fb7c0c28.

commit 0c142a2c77c8e418112613305eb7c87063057890
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:16 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit ad12d47ad6.

commit 2391d0e3d7d4af22524dce0b26d795f882fde0db
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:15 2022 +0000

    Revert "sched: Cleanup unused variables in walt"

    This reverts commit 0e968578ac.

commit e91fd23c44195b9c78a5886cff0cd56990d61137
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:14 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 863d26df6d.

commit e24b63cc81d5972d0e34a6c37e060cdd64f89771
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:13 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 994a047706.

commit a34d6a00b583d4a7317a82d92522d5f3bda3298b
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:12 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit baa8d4249a.

commit a662ab5cc78cc1cac9a60d2724ae61535cf59b44
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:10 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e265dccce7.

commit 62d089b4eb705f00a516a2a385c15be3fad2d121
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:09 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 336a7071de.

commit 099a09326ea2861a907fe1b4100f9ffc919bb81f
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:08 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 44961a76c8.

commit 68a7976e08cb6bff6dff6e4cea50797db7f97d46
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:07 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit b3bb2f6702.

commit ce15f63df0b323f21571e578b78279f5b73ac55a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:06 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 5e8ba22939.

commit da639b7d4ed1640374429b7e84a228aab2594b60
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:05 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 0d154364e0.

commit 6453444f3a69837c4c59d7b3776b1e9a6c83d3b0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:04 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 2d4e6b3850.

commit 60c9ef39c478a270982b4ac74be4cfdd949fcea4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:03 2022 +0000

    Revert "Revert "sched/walt: Fix clusters sorting when cpufreq is disabled""

    This reverts commit ecb2fca5a5.

commit 33af0f5a305d28ab8f987fe3757d125a2bf8f130
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:02 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit f00a64321e.

commit f3fe9acea84ec9559e5b535398cd834f625adafd
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:15:01 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit ca3cf0c1f8.

commit fff2855a694922257cafba5c566d738658410006
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:59 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit c66e488424.

commit 330f224e9601caf2400b15949cccdbb08f8761eb
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:58 2022 +0000

    Revert "sched/fair: Fix incorrect CPU access in check_for_migration()"

    This reverts commit 16dc974f96.

commit eb3f2244ddf02170cc0fccb6aa9c2fc2b6dfd6ca
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:57 2022 +0000

    Revert "sched/isolcpus: Fix "isolcpus=" boot parameter handling when !CONFIG_CPUMASK_OFFSTACK"

    This reverts commit 5ef4e5cef6.

commit b64c764d8daf65dfd447efd89413d6d5f3381751
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:56 2022 +0000

    Revert "sched/walt: drop preferred_cluster from rtg"

    This reverts commit 1ce7c8a179.

commit 457b01d4c8813018619e195955775e6d4ea66c9a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:55 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit bd092bfed6.

commit 47c826dd511e3737e4b53cd9f0472c3f823ecbd3
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:54 2022 +0000

    Revert "sched/core_ctl: Improve the scheduler"

    This reverts commit 8964743af3.

commit f0cf13df89999757c4da2e886c6cdd765ea2e3b6
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:53 2022 +0000

    Revert "sched/core_ctl: Improve the scheduler"

    This reverts commit 92e14b075c.

commit 1adc283c65f9515513e5a30cd905b4b8b6809332
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:52 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 5c94ee0b1a.

commit 1e8a22f9053996f2180bf36e628680989f7f90bb
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:51 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 3ae8342c24.

commit e45b6f52bdc9b22c01eec659861960506724bca7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:50 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 9990dee761.

commit 033162e61ddfbe1246f67a753ea0e8d43e15fa7a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:49 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit e3bae83cac.

commit 100777f449cab40087d7c7eaffeea6f10c5585f0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:47 2022 +0000

    Revert "arm64/kernel/topology: Cleanup for upstream commit"

    This reverts commit a25719b05f.

commit 0391ca54d164ad24c8376adc70def2e7a5faa6a0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:46 2022 +0000

    Revert "arch_topology: Add possible sibling cpu mask for cpu_topology"

    This reverts commit 3f85bf06fc.

commit 734e104fbb95479ccc65e8328d4593d75f9ddffc
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:45 2022 +0000

    Revert "sched: core: Fix usage of cpu core group mask"

    This reverts commit 2d611d5b65.

commit dc146ddb1e552bfb36bdc8bec88c0b7cd216db55
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:44 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 2c99a96fa9.

commit 81507941532a132c8cb6ec88b2826e5b2395df26
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:43 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 834321e1fa.

commit f9f1c603aafec86a0cae9510b12f6775ca32319a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:42 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit d56300430c.

commit 070be3e6c57af46d64b10d2d7668f6cd8d4fe81c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:41 2022 +0000

    Revert "sched: Introduce sched_busy_hysteresis_enable_cpus tunable"

    This reverts commit 4ec8a76524.

commit da2d5427df5ca95ad10619565f51fa8289eeddb0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:40 2022 +0000

    Revert "sched: Use bitmask for sched_busy_hysteresis_enable_cpus tunable"

    This reverts commit 8ff5bf1a85.

commit af0dd2fa72ae04535e7b2a6ba7344bd4fc261fac
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:38 2022 +0000

    Revert "sched: Remove unused code in sched_avg.c"

    This reverts commit 33d95a041f.

commit 365ccf7a4b2255ac4bc7e55479a9d0baa7de9cf8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:37 2022 +0000

    Revert "lpm-levels: Optimize and make way for upstream changes"

    This reverts commit 6b1e097698.

commit 27379e7c071a3b1b00e53dccd8c9fd7aa720aa19
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:36 2022 +0000

    Revert "cpuidle: lpm-levels: get bias time from scheduler"

    This reverts commit facfee4aad.

commit b08d8d2fca732aa7b69f3c71bff0274cfa3d17cb
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:35 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit cc9cafa54a.

commit 1ce46c9093dcfc81288a2d9927af040bdcf73e14
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:34 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 4543b1af46.

commit 08cfdca5dd69adae0a5d9ece4aa7c91bd1d26199
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:33 2022 +0000

    Revert "sched: walt: Improve the Scheduler"

    This reverts commit e7ea5478b6.

commit deb41564605954c1c933cd8e2b4303e9511d2026
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:32 2022 +0000

    Revert "sched: walt: remove unused variable"

    This reverts commit db642f679e.

commit 9daaaa5c3e5e550973d241360e6cb4ae71eff1f2
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:31 2022 +0000

    Revert "sched: improve the scheduler"

    This reverts commit 0a8cbbef67.

commit 6b92b54daacfdfc35beeddcad64db64933122cf1
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:30 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit a8f97c3ca1.

commit fb4945792c7b9986e65a0c67c87158cc0d79ed68
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:28 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 5c0ced5d9d.

commit c3059eedcb167b8497f285886048449dabaa3329
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:27 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit b46bc087bd.

commit e484ee8fe7035dbce43cb177b6672cfeddbd7d56
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:26 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 3366cd2842.

commit 779543197fe683968ce5fcee6f439c62edfdbd9a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:25 2022 +0000

    Revert "sched: walt: Dump walt status on BUG_ON"

    This reverts commit c6983696d2.

commit ac1128af676e0228ffd17c99d858398dd7bc2c12
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:24 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 71925eb668.

commit 5dbef64c7db76e1d41f5afd7c695974cfaac1144
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:23 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 276ff38e69.

commit 4ee3bde67112f36c6773e53be4ec155378a58c57
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:22 2022 +0000

    Revert "sched: walt: fix sched_cluster initialization"

    This reverts commit 616dfe7582.

commit 504de651828c72fac4a1faf310b393a85c73dba4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:21 2022 +0000

    Revert "sched: core: Use sched_clusters for updown migration handler"

    This reverts commit bcf375b081.

commit 8174458135535f1821f4818968d93001377f0276
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:20 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit 26703509e9.

commit 8040981a5cd14d38db10e5dbbd80a14e8008c8a9
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:19 2022 +0000

    Revert "sched/walt: Avoid walt irq work in offlined cpu"

    This reverts commit ca0a0ab303.

commit 74e9893b6c08224fabf46a121e86906965812eb7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:18 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 582c417446.

commit d9a19150ca651bc83d3343747b22ccce17bb0b81
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:16 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit a33ebcf1a5.

commit 04cfe69badf318b7e17a21b170366f90bdf43b30
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:15 2022 +0000

    Revert "sched/walt: cleanup unused code"

    This reverts commit e6b442ca5b.

commit 56e3aa3effab63ec2b676085b39dcf67703f468a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:14 2022 +0000

    Revert "sched: walt: improve the scheduler"

    This reverts commit 9ba601ed8e.

commit cb051b1f707e4882aecee1c8dd7eb1ec3b0410f0
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:13 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 044275646a.

commit 881007c0098c70dddeab5f95aa3183bbf775603d
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:12 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit 57dde83208.

commit 4b2477928d4c47db7fc73234ee1674091e281414
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:11 2022 +0000

    Revert "sched: walt: Improve the scheduler"

    This reverts commit e2d12493b9.

commit 488d2f7d29d551d77baaef3dd6373bb8834c2e6f
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:10 2022 +0000

    Revert "sched/walt: Fix kernel panic issue by uninitialized data"

    This reverts commit 188d0b63d8.

commit 883e23ece4e293f03e4a82af560acf25acf239ab
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:14:08 2022 +0000

    Revert "sched: core_ctl: Improve the scheduler"

    This reverts commit 9b7e0b5f21.

commit 958cb0d96b1d482367fc098d8cc272e87f951778
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:40 2022 +0000

    Revert "sched/fair: Don't place wakee on waker cpu if colocate enabled"

    This reverts commit 8601883f77.

commit d210850cb0ed56404e69d8f1bd861f3d60ea11c7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:27 2022 +0000

    Revert "sched/cpufreq_schedutil: create a function for common steps"

    This reverts commit 9d8e438e96.

commit c99ccf59736d9ad8c85b671257d51b5d77fc6ae6
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:26 2022 +0000

    Revert "cpufreq: schedutil: Queue sugov irq work on policy online cpu"

    This reverts commit f4a7dc5aa1.

commit ec851ca3918470d88c17c28625b31f1f9aaa3817
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:25 2022 +0000

    Revert "cpufreq: Avoid leaving stale IRQ work items during CPU offline"

    This reverts commit 03029dc44f.

commit d369a7c3f411362e7e86838c0c5b245496e5ecf3
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:24 2022 +0000

    Revert "sched: fair: Stop running idle_balance on active migration kick"

    This reverts commit f8fdaaa848.

commit 0933780bb1ef84cf5f7a1beba11128888e67bef8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:23 2022 +0000

    Revert "sched: Improve the scheduler"

    This reverts commit 84ace0489f.

commit f9531a065ca011b87ad8f2f3c6aa4fdf11228f19
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:21 2022 +0000

    Revert "sched: fair: Improve the scheduler"

    This reverts commit a5b78d7ac5.

commit 4e8db29f70d6793d50cd7c88e40f763c6e97b84c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:20 2022 +0000

    Revert "sched/fair: remove unused variable"

    This reverts commit 1dcc8eb8a5.

commit 509b3a23dd53000fdb9734e95aa173d36de0072c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:19 2022 +0000

    Revert "sched/fair: Cleanup for incoming upstream changes"

    This reverts commit 23bda40eae.

commit 5c3a880db3a913d35a679b490a904d82baf0fcb7
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:18 2022 +0000

    Revert "sched/fair: Cleanup for incoming upstream changes"

    This reverts commit 3be3cb8ef9.

commit 3de879456c8e4dd958976f5401458c8a1e7d06bf
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:17 2022 +0000

    Revert "sched/fair: Force gold cpus to do idle lb when silver has big tasks"

    This reverts commit 9a28daeff9.

commit fc407cdd5f935dc09138232eda906be64babe078
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:15 2022 +0000

    Revert "sched/fair: Avoid force newly idle load balance if have iowait task"

    This reverts commit 7ab60698b4.

commit aa2f0e5475d7617825863870cbfe911c94bb349c
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:14 2022 +0000

    Revert "sched: Add support to spread tasks"

    This reverts commit 498769889e.

commit dfb558643fcad1eb47eeedd3c3b79526dccf29af
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:13 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 66934ec9de.

commit 5331542fb14397de915e0ee8401f2d4834cfcce5
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:12 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 9775bcc63e.

commit 699dab97a2a180453621562c1c25e9374c15942a
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:11 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit 0673f890b2.

commit 8dbc5b59fa5b0baae560a7080b45c5785ce17825
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:10 2022 +0000

    Revert "sched/walt: Improve the scheduler"

    This reverts commit f2c76a4b63.

commit 613fc288a80db796b7d366aebbafd036010f918b
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:08 2022 +0000

    Revert "sched/fair: Tighten prefer_spread feature"

    This reverts commit 88be255f29.

commit 852249f0a586ed1d1acec2efc653b5dfbc4095a8
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:07 2022 +0000

    Revert "sched/fair: Add timeout for detach_tasks() in load balance"

    This reverts commit e4b2c9df2a.

commit 3f4e2e4785b1986d338f3ff8e9f38ef6f9c666bd
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:06 2022 +0000

    Revert "sched/walt: Avoid taking rq lock for every IRQ update"

    This reverts commit b03a5af6b4.

commit a94a2242cb47d1fc216173b69ef1fe15ecc152b4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:13:02 2022 +0000

    Revert "ANDROID: sched: fair: balance for single core cluster"

    This reverts commit b30f8c0381.

commit e3b844e3251e3fcf5b89ca3935e4aaa3c383bff4
Author: kondors1995 <normandija1945@gmail.com>
Date:   Tue Apr 12 07:11:50 2022 +0000

    Revert "rcu/nocb: Perform deferred wake up before last idle's need_resched() check"

    This reverts commit 8a6d3eaab1.
2022-04-18 11:35:12 +00:00
nato66613
e3efe37049 Revert "arch_topology: Wire up thermal limit for arch_scale_max_freq_capacity"
This reverts commit ae617376f2.
2021-09-01 13:22:12 +00:00
Wei Wang
ae617376f2 arch_topology: Wire up thermal limit for arch_scale_max_freq_capacity
before patch and "echo 50000 > /sys/class/thermal/tz-by-name/sdm-therm/emul_temp"
com.android.uibench.janktests.UiBenchJankTests#testInvalidateTree: PASSED (02m6.247s)
        gfx-avg-slow-ui-thread: 0.07110321338664297
        gfx-avg-missed-vsync: 0.0
        gfx-avg-high-input-latency: 74.25140826299423
        gfx-max-frame-time-50: 12
        gfx-min-total-frames: 2250
        gfx-avg-frame-time-99: 11.8
        gfx-avg-num-frame-deadline-missed: 1.6
        gfx-avg-frame-time-50: 9.6
        gfx-max-high-input-latency: 99.86666666666667
        gfx-avg-frame-time-90: 11.0
        gfx-avg-frame-time-95: 11.0
        gfx-max-frame-time-95: 13
        gfx-max-frame-time-90: 13
        gfx-max-slow-draw: 0.0
        gfx-max-frame-time-99: 13
        gfx-avg-slow-draw: 0.0
        gfx-max-total-frames: 2251
        gfx-avg-jank: 43.678000000000004
        gfx-max-slow-bitmap-uploads: 0.0
        gfx-max-missed-vsync: 0.0
        gfx-avg-total-frames: 2250
        gfx-max-jank: 96.67
        gfx-max-slow-ui-thread: 0.13333333333333333
        gfx-max-num-frame-deadline-missed: 3
        gfx-avg-slow-bitmap-uploads: 0.0

aefore patch and "echo 50000 > /sys/class/thermal/tz-by-name/sdm-therm/emul_temp"
google/perf/jank/UIBench/UIBench (1 Test)
----------------------------------------
[1/1] com.android.uibench.janktests.UiBenchJankTests#testInvalidateTree: PASSED (02m7.027s)
        gfx-avg-slow-ui-thread: 0.0
        gfx-avg-missed-vsync: 0.0
        gfx-avg-high-input-latency: 11.53777777777778
        gfx-max-frame-time-50: 7
        gfx-min-total-frames: 2250
        gfx-avg-frame-time-99: 8.0
        gfx-avg-num-frame-deadline-missed: 0.0
        gfx-avg-frame-time-50: 7.0
        gfx-max-high-input-latency: 41.15555555555556
        gfx-avg-frame-time-90: 7.2
        gfx-avg-frame-time-95: 7.8
        gfx-max-frame-time-95: 8
        gfx-max-frame-time-90: 8
        gfx-max-slow-draw: 0.0
        gfx-max-frame-time-99: 8
        gfx-avg-slow-draw: 0.0
        gfx-max-total-frames: 2250
        gfx-avg-jank: 0.0
        gfx-max-slow-bitmap-uploads: 0.0
        gfx-max-missed-vsync: 0.0
        gfx-avg-total-frames: 2250
        gfx-max-jank: 0.0
        gfx-max-slow-ui-thread: 0.0
        gfx-max-num-frame-deadline-missed: 0
        gfx-avg-slow-bitmap-uploads: 0.0

Bug: 143162654
Test: use emul_temp to change thermal condition and see capacity changed
Change-Id: Idbf943f9c831c288db40d820682583ade3bbf05e
Signed-off-by: Wei Wang <wvw@google.com>
Signed-off-by: Danny Lin <danny@kdrag0n.dev>
2021-08-15 18:37:47 +00:00
Rafael J. Wysocki
03029dc44f cpufreq: Avoid leaving stale IRQ work items during CPU offline
commit 85572c2c4a45a541e880e087b5b17a48198b2416 upstream.

The scheduler code calling cpufreq_update_util() may run during CPU
offline on the target CPU after the IRQ work lists have been flushed
for it, so the target CPU should be prevented from running code that
may queue up an IRQ work item on it at that point.

Unfortunately, that may not be the case if dvfs_possible_from_any_cpu
is set for at least one cpufreq policy in the system, because that
allows the CPU going offline to run the utilization update callback
of the cpufreq governor on behalf of another (online) CPU in some
cases.

If that happens, the cpufreq governor callback may queue up an IRQ
work on the CPU running it, which is going offline, and the IRQ work
may not be flushed after that point.  Moreover, that IRQ work cannot
be flushed until the "offlining" CPU goes back online, so if any
other CPU calls irq_work_sync() to wait for the completion of that
IRQ work, it will have to wait until the "offlining" CPU is back
online and that may not happen forever.  In particular, a system-wide
deadlock may occur during CPU online as a result of that.

The failing scenario is as follows.  CPU0 is the boot CPU, so it
creates a cpufreq policy and becomes the "leader" of it
(policy->cpu).  It cannot go offline, because it is the boot CPU.
Next, other CPUs join the cpufreq policy as they go online and they
leave it when they go offline.  The last CPU to go offline, say CPU3,
may queue up an IRQ work while running the governor callback on
behalf of CPU0 after leaving the cpufreq policy because of the
dvfs_possible_from_any_cpu effect described above.  Then, CPU0 is
the only online CPU in the system and the stale IRQ work is still
queued on CPU3.  When, say, CPU1 goes back online, it will run
irq_work_sync() to wait for that IRQ work to complete and so it
will wait for CPU3 to go back online (which may never happen even
in principle), but (worse yet) CPU0 is waiting for CPU1 at that
point too and a system-wide deadlock occurs.

To address this problem notice that CPUs which cannot run cpufreq
utilization update code for themselves (for example, because they
have left the cpufreq policies that they belonged to), should also
be prevented from running that code on behalf of the other CPUs that
belong to a cpufreq policy with dvfs_possible_from_any_cpu set and so
in that case the cpufreq_update_util_data pointer of the CPU running
the code must not be NULL as well as for the CPU which is the target
of the cpufreq utilization update in progress.

Accordingly, change cpufreq_this_cpu_can_update() into a regular
function in kernel/sched/cpufreq.c (instead of a static inline in a
header file) and make it check the cpufreq_update_util_data pointer
of the local CPU if dvfs_possible_from_any_cpu is set for the target
cpufreq policy.

Also update the schedutil governor to do the
cpufreq_this_cpu_can_update() check in the non-fast-switch
case too to avoid the stale IRQ work issues.

Change-Id: Idb7f18129f59a82485a5eb93dc26c6f1a463a76a
Fixes: 99d14d0e16 ("cpufreq: Process remote callbacks from any CPU if the platform permits")
Link: https://lore.kernel.org/linux-pm/20191121093557.bycvdo4xyinbc5cb@vireshk-i7/
Reported-by: Anson Huang <anson.huang@nxp.com>
Tested-by: Anson Huang <anson.huang@nxp.com>
Cc: 4.14+ <stable@vger.kernel.org> # 4.14+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Tested-by: Peng Fan <peng.fan@nxp.com> (i.MX8QXP-MEK)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 85572c2c4a45a541e880e087b5b17a48198b2416
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
[render: Account for function name differences]
Signed-off-by: Zachariah Kennedy <zkennedy87@gmail.com>
2021-04-12 07:13:38 +00:00
UtsavBalar1231
90b07e68aa thermal: core: Implement thermal config switch
- Used by mi_thermald to switch between various thermal profiles.
- Extracted from MiCode/Xiaomi_Kernel_OpenSource
  from branch 'cepheus-q-oss'
- Cleaned up logging
- Fixed coding style
- use the qcom default notifier to remove dependency on xiaomi drm notifier

Change-Id: Ifd3f9b33959e38aa55b96342b34f68691dc7f68a
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
2021-03-11 10:22:25 +05:30
Santosh Mardi
17050e7054 devfreq: introduce the devfreq-cpufreq governor
Introduce the devfreq-cpufreq governor, used to scale the
DDR device frequency based on the current cpu frequency.

Change-Id: I0cf0bb2128cd104dccc44e3e3781d1d958d532ef
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2020-11-30 03:47:29 -08:00
Pavankumar Kondeti
41e8a9519b cpufreq: schedutil: Fix for limits update with fast switch enabled
When the policy limits are applied with fast switch enabled, the
policy->cur is not updated. This can result in incorrect calculation
of the average capacity and any subsequent limit updates.

Update cpufreq_policy_apply_limits_fast() API to return a non-zero
value when the frequency is updated. Make use of this return value
and update policy->cur. While at it, print cpu_frequency trace point,
when frequency is changed due to change in limits.

Change-Id: I51732fa061aac11231d1f18ca70f31f252f0a0dd
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2019-07-03 10:02:42 +05:30
qctecmdr
8afe7e3258 Merge "Merge android-4.14.107 (0892a3e) into msm-4.14" 2019-05-03 14:35:30 -07:00
Blagovest Kolenichev
b36940959e Merge android-4.14.106 (8ed9bc6) into msm-4.14
* refs/heads/tmp-8ed9bc6:
  Revert "staging: android: ion: fix sys heap pool's gfp_flags"
  Linux 4.14.106
  perf/x86/intel: Implement support for TSX Force Abort
  x86: Add TSX Force Abort CPUID/MSR
  perf/x86/intel: Generalize dynamic constraint creation
  perf/x86/intel: Make cpuc allocations consistent
  driver core: Postpone DMA tear-down until after devres release
  ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom
  gfs2: Fix missed wakeups in find_insert_glock
  ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+
  drm: disable uncached DMA optimization for ARM and arm64
  ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
  ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3
  arm64: dts: hikey: Give wifi some time after power-on
  scsi: aacraid: Fix missing break in switch statement
  iscsi_ibft: Fix missing break in switch statement
  Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
  Input: wacom_serial4 - add support for Wacom ArtPad II tablet
  qed: Consider TX tcs while deriving the max num_queues for PF.
  qed: Fix EQ full firmware assert.
  fs: ratelimit __find_get_block_slow() failure message.
  i2c: omap: Use noirq system sleep pm ops to idle device for suspend
  MIPS: Remove function size check in get_frame_info()
  perf trace: Support multiple "vfs_getname" probes
  perf symbols: Filter out hidden symbols from labels
  s390/qeth: fix use-after-free in error path
  netfilter: nf_nat: skip nat clash resolution for same-origin entries
  selftests: netfilter: add simple masq/redirect test cases
  selftests: netfilter: fix config fragment CONFIG_NF_TABLES_INET
  dmaengine: dmatest: Abort test in case of mapping error
  vsock/virtio: reset connected sockets on device removal
  vsock/virtio: fix kernel panic after device hot-unplug
  dmaengine: at_xdmac: Fix wrongfull report of a channel as in use
  drm/sun4i: tcon: Prepare and enable TCON channel 0 clock at init
  bpf: fix lockdep false positive in percpu_freelist
  bpf, selftests: fix handling of sparse CPU allocations
  relay: check return of create_buf_file() properly
  irqchip/gic-v3-its: Fix ITT_entry_size accessor
  net: stmmac: Disable EEE mode earlier in XMIT callback
  net: stmmac: Send TSO packets always from Queue 0
  net: stmmac: Fallback to Platform Data clock in Watchdog conversion
  irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable
  usb: phy: fix link errors
  DTS: CI20: Fix bugs in ci20's device tree.
  arm64: dts: add msm8996 compatible to gicv3
  ARM: pxa: ssp: unneeded to free devm_ allocated data
  bpf: sock recvbuff must be limited by rmem_max in bpf_setsockopt()
  soc: fsl: qbman: avoid race in clearing QMan interrupt
  arm64: dts: renesas: r8a7796: Enable DMA for SCIF2
  ARM: dts: omap4-droid4: Fix typo in cpcap IRQ flags
  autofs: fix error return in autofs_fill_super()
  autofs: drop dentry reference only when it is never used
  fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
  lib/test_kmod.c: potential double free in error handling
  mm, memory_hotplug: test_pages_in_a_zone do not pass the end of zone
  mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone
  x86_64: increase stack size for KASAN_EXTRA
  x86/kexec: Don't setup EFI info if EFI runtime is not enabled
  apparmor: Fix aa_label_build() error handling for failed merges
  arm64: kprobe: Always blacklist the KVM world-switch code
  x86/microcode/amd: Don't falsely trick the late loading mechanism
  cifs: fix computation for MAX_SMB2_HDR_SIZE
  platform/x86: Fix unmet dependency warning for SAMSUNG_Q10
  scsi: 53c700: pass correct "dev" to dma_alloc_attrs()
  scsi: libfc: free skb when receiving invalid flogi resp
  qed: Fix stack out of bounds bug
  qed: Fix system crash in ll2 xmit
  qed: Fix VF probe failure while FLR
  qed: Fix LACP pdu drops for VFs
  qed: Fix bug in tx promiscuous mode settings
  nfs: Fix NULL pointer dereference of dev_name
  selftests: timers: use LDLIBS instead of LDFLAGS
  gpio: vf610: Mask all GPIO interrupts
  netfilter: ebtables: compat: un-break 32bit setsockopt when no rules are present
  net: stmmac: dwmac-rk: fix error handling in rk_gmac_powerup()
  net: hns: Fix wrong read accesses via Clause 45 MDIO protocol
  net: hns: Restart autoneg need return failed when autoneg off
  net: hns: Fix for missing of_node_put() after of_parse_phandle()
  net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case
  xtensa: SMP: limit number of possible CPUs by NR_CPUS
  xtensa: SMP: mark each possible CPU as present
  xtensa: smp_lx200_defconfig: fix vectors clash
  xtensa: SMP: fix secondary CPU initialization
  selftests: cpu-hotplug: fix case where CPUs offline > CPUs present
  xtensa: SMP: fix ccount_timer_shutdown
  iommu/amd: Fix IOMMU page flush when detach device from a domain
  ipvs: Fix signed integer overflow when setsockopt timeout
  iommu/amd: Unmap all mapped pages in error path of map_sg
  iommu/amd: Call free_iova_fast with pfn in map_sg
  IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM
  perf tools: Handle TOPOLOGY headers with no CPU
  perf core: Fix perf_proc_update_handler() bug
  vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel
  media: uvcvideo: Fix 'type' check leading to overflow
  scsi: core: reset host byte in DID_NEXUS_FAILURE case
  exec: Fix mem leak in kernel_read_file
  Bluetooth: Fix locking in bt_accept_enqueue() for BH context
  xtensa: fix get_wchan
  hugetlbfs: fix races and page leaks during migration
  MIPS: irq: Allocate accurate order pages for irq stack
  applicom: Fix potential Spectre v1 vulnerabilities
  x86/CPU/AMD: Set the CPB bit unconditionally on F17h
  net: dsa: mv88e6xxx: Fix statistics on mv88e6161
  net: phy: Micrel KSZ8061: link failure after cable connect
  tun: remove unnecessary memory barrier
  tun: fix blocking read
  mpls: Return error for RTA_GATEWAY attribute
  ipv6: Return error for RTA_VIA attribute
  ipv4: Return error for RTA_VIA attribute
  net: avoid use IPCB in cipso_v4_error
  net: Add __icmp_send helper.
  xen-netback: fix occasional leak of grant ref mappings under memory pressure
  xen-netback: don't populate the hash cache on XenBus disconnect
  net: socket: set sock->sk to NULL after calling proto_ops::release()
  net: sit: fix memory leak in sit_init_net()
  net: phy: phylink: fix uninitialized variable in phylink_get_mac_state
  net: nfc: Fix NULL dereference on nfc_llcp_build_tlv fails
  net: netem: fix skb length BUG_ON in __skb_to_sgvec
  netlabel: fix out-of-bounds memory accesses
  net: dsa: mv88e6xxx: Fix u64 statistics
  hv_netvsc: Fix IP header checksum for coalesced packets
  geneve: correctly handle ipv6.disable module parameter
  bnxt_en: Drop oversize TX packets to prevent errors.
  tipc: fix RDM/DGRAM connect() regression
  team: Free BPF filter when unregistering netdev
  sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
  net-sysfs: Fix mem leak in netdev_register_kobject
  net: dsa: mv88e6xxx: handle unknown duplex modes gracefully in mv88e6xxx_port_set_duplex
  ip6mr: Do not call __IP6_INC_STATS() from preemptible context
  staging: android: ion: fix sys heap pool's gfp_flags
  staging: wilc1000: fix to set correct value for 'vif_num'
  staging: comedi: ni_660x: fix missing break in switch statement
  USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
  USB: serial: cp210x: add ID for Ingenico 3070
  USB: serial: option: add Telit ME910 ECM composition
  cpufreq: Use struct kobj_attribute instead of struct global_attr
  ANDROID: cuttlefish: enable CONFIG_INET_UDP_DIAG=y
  ANDROID: cuttlefish: enable CONFIG_USB_RTL8152=y

Change-Id: Id5bc9a3c0ca235fcf07904455ea829c7f49618ad
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
2019-04-22 06:27:20 -07:00
Jonathan Avila
94997ce9a6 cpufreq: schedutil: Add fast switch to sugov_limits path
When new cpufreq min/max limits are set, the expectation is that the CPU
frequency will be updated appropriately.  This happens for targets which do
not utilize the cpufreq fast switch APIs, but the code to do this is not
present by default for the fast switch path.  Add the necessary code to
update frequency to reflect the new cpufreq limits for targets with fast
switch enabled.

Change-Id: I211b6117005df9d340dfe0d825032cd7600cbffa
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
2019-04-18 13:55:10 -07:00
Pavankumar Kondeti
a3dd94a1bb sched: Improve the scheduler
This change is for general scheduler improvement.

Change-Id: I50d41aa3338803cbd45ff6314b2bb3978c59282b
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2019-04-01 14:35:59 +05:30
Greg Kroah-Hartman
8ed9bc6e64 Merge 4.14.106 into android-4.14
Changes in 4.14.106
	cpufreq: Use struct kobj_attribute instead of struct global_attr
	USB: serial: option: add Telit ME910 ECM composition
	USB: serial: cp210x: add ID for Ingenico 3070
	USB: serial: ftdi_sio: add ID for Hjelmslund Electronics USB485
	staging: comedi: ni_660x: fix missing break in switch statement
	staging: wilc1000: fix to set correct value for 'vif_num'
	staging: android: ion: fix sys heap pool's gfp_flags
	ip6mr: Do not call __IP6_INC_STATS() from preemptible context
	net: dsa: mv88e6xxx: handle unknown duplex modes gracefully in mv88e6xxx_port_set_duplex
	net-sysfs: Fix mem leak in netdev_register_kobject
	sky2: Disable MSI on Dell Inspiron 1545 and Gateway P-79
	team: Free BPF filter when unregistering netdev
	tipc: fix RDM/DGRAM connect() regression
	bnxt_en: Drop oversize TX packets to prevent errors.
	geneve: correctly handle ipv6.disable module parameter
	hv_netvsc: Fix IP header checksum for coalesced packets
	net: dsa: mv88e6xxx: Fix u64 statistics
	netlabel: fix out-of-bounds memory accesses
	net: netem: fix skb length BUG_ON in __skb_to_sgvec
	net: nfc: Fix NULL dereference on nfc_llcp_build_tlv fails
	net: phy: phylink: fix uninitialized variable in phylink_get_mac_state
	net: sit: fix memory leak in sit_init_net()
	net: socket: set sock->sk to NULL after calling proto_ops::release()
	xen-netback: don't populate the hash cache on XenBus disconnect
	xen-netback: fix occasional leak of grant ref mappings under memory pressure
	net: Add __icmp_send helper.
	net: avoid use IPCB in cipso_v4_error
	ipv4: Return error for RTA_VIA attribute
	ipv6: Return error for RTA_VIA attribute
	mpls: Return error for RTA_GATEWAY attribute
	tun: fix blocking read
	tun: remove unnecessary memory barrier
	net: phy: Micrel KSZ8061: link failure after cable connect
	net: dsa: mv88e6xxx: Fix statistics on mv88e6161
	x86/CPU/AMD: Set the CPB bit unconditionally on F17h
	applicom: Fix potential Spectre v1 vulnerabilities
	MIPS: irq: Allocate accurate order pages for irq stack
	hugetlbfs: fix races and page leaks during migration
	xtensa: fix get_wchan
	Bluetooth: Fix locking in bt_accept_enqueue() for BH context
	exec: Fix mem leak in kernel_read_file
	scsi: core: reset host byte in DID_NEXUS_FAILURE case
	media: uvcvideo: Fix 'type' check leading to overflow
	vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel
	perf core: Fix perf_proc_update_handler() bug
	perf tools: Handle TOPOLOGY headers with no CPU
	IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM
	iommu/amd: Call free_iova_fast with pfn in map_sg
	iommu/amd: Unmap all mapped pages in error path of map_sg
	ipvs: Fix signed integer overflow when setsockopt timeout
	iommu/amd: Fix IOMMU page flush when detach device from a domain
	xtensa: SMP: fix ccount_timer_shutdown
	selftests: cpu-hotplug: fix case where CPUs offline > CPUs present
	xtensa: SMP: fix secondary CPU initialization
	xtensa: smp_lx200_defconfig: fix vectors clash
	xtensa: SMP: mark each possible CPU as present
	xtensa: SMP: limit number of possible CPUs by NR_CPUS
	net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case
	net: hns: Fix for missing of_node_put() after of_parse_phandle()
	net: hns: Restart autoneg need return failed when autoneg off
	net: hns: Fix wrong read accesses via Clause 45 MDIO protocol
	net: stmmac: dwmac-rk: fix error handling in rk_gmac_powerup()
	netfilter: ebtables: compat: un-break 32bit setsockopt when no rules are present
	gpio: vf610: Mask all GPIO interrupts
	selftests: timers: use LDLIBS instead of LDFLAGS
	nfs: Fix NULL pointer dereference of dev_name
	qed: Fix bug in tx promiscuous mode settings
	qed: Fix LACP pdu drops for VFs
	qed: Fix VF probe failure while FLR
	qed: Fix system crash in ll2 xmit
	qed: Fix stack out of bounds bug
	scsi: libfc: free skb when receiving invalid flogi resp
	scsi: 53c700: pass correct "dev" to dma_alloc_attrs()
	platform/x86: Fix unmet dependency warning for SAMSUNG_Q10
	cifs: fix computation for MAX_SMB2_HDR_SIZE
	x86/microcode/amd: Don't falsely trick the late loading mechanism
	arm64: kprobe: Always blacklist the KVM world-switch code
	apparmor: Fix aa_label_build() error handling for failed merges
	x86/kexec: Don't setup EFI info if EFI runtime is not enabled
	x86_64: increase stack size for KASAN_EXTRA
	mm, memory_hotplug: is_mem_section_removable do not pass the end of a zone
	mm, memory_hotplug: test_pages_in_a_zone do not pass the end of zone
	lib/test_kmod.c: potential double free in error handling
	fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
	autofs: drop dentry reference only when it is never used
	autofs: fix error return in autofs_fill_super()
	ARM: dts: omap4-droid4: Fix typo in cpcap IRQ flags
	arm64: dts: renesas: r8a7796: Enable DMA for SCIF2
	soc: fsl: qbman: avoid race in clearing QMan interrupt
	bpf: sock recvbuff must be limited by rmem_max in bpf_setsockopt()
	ARM: pxa: ssp: unneeded to free devm_ allocated data
	arm64: dts: add msm8996 compatible to gicv3
	DTS: CI20: Fix bugs in ci20's device tree.
	usb: phy: fix link errors
	irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable
	net: stmmac: Fallback to Platform Data clock in Watchdog conversion
	net: stmmac: Send TSO packets always from Queue 0
	net: stmmac: Disable EEE mode earlier in XMIT callback
	irqchip/gic-v3-its: Fix ITT_entry_size accessor
	relay: check return of create_buf_file() properly
	bpf, selftests: fix handling of sparse CPU allocations
	bpf: fix lockdep false positive in percpu_freelist
	drm/sun4i: tcon: Prepare and enable TCON channel 0 clock at init
	dmaengine: at_xdmac: Fix wrongfull report of a channel as in use
	vsock/virtio: fix kernel panic after device hot-unplug
	vsock/virtio: reset connected sockets on device removal
	dmaengine: dmatest: Abort test in case of mapping error
	selftests: netfilter: fix config fragment CONFIG_NF_TABLES_INET
	selftests: netfilter: add simple masq/redirect test cases
	netfilter: nf_nat: skip nat clash resolution for same-origin entries
	s390/qeth: fix use-after-free in error path
	perf symbols: Filter out hidden symbols from labels
	perf trace: Support multiple "vfs_getname" probes
	MIPS: Remove function size check in get_frame_info()
	i2c: omap: Use noirq system sleep pm ops to idle device for suspend
	fs: ratelimit __find_get_block_slow() failure message.
	qed: Fix EQ full firmware assert.
	qed: Consider TX tcs while deriving the max num_queues for PF.
	Input: wacom_serial4 - add support for Wacom ArtPad II tablet
	Input: elan_i2c - add id for touchpad found in Lenovo s21e-20
	iscsi_ibft: Fix missing break in switch statement
	scsi: aacraid: Fix missing break in switch statement
	arm64: dts: hikey: Give wifi some time after power-on
	ARM: dts: exynos: Fix pinctrl definition for eMMC RTSN line on Odroid X2/U3
	ARM: dts: exynos: Add minimal clkout parameters to Exynos3250 PMU
	drm: disable uncached DMA optimization for ARM and arm64
	ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+
	gfs2: Fix missed wakeups in find_insert_glock
	ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom
	driver core: Postpone DMA tear-down until after devres release
	perf/x86/intel: Make cpuc allocations consistent
	perf/x86/intel: Generalize dynamic constraint creation
	x86: Add TSX Force Abort CPUID/MSR
	perf/x86/intel: Implement support for TSX Force Abort
	Linux 4.14.106

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-03-13 14:18:51 -07:00
Viresh Kumar
85cf551905 cpufreq: Use struct kobj_attribute instead of struct global_attr
commit 625c85a62cb7d3c79f6e16de3cfa972033658250 upstream.

The cpufreq_global_kobject is created using kobject_create_and_add()
helper, which assigns the kobj_type as dynamic_kobj_ktype and show/store
routines are set to kobj_attr_show() and kobj_attr_store().

These routines pass struct kobj_attribute as an argument to the
show/store callbacks. But all the cpufreq files created using the
cpufreq_global_kobject expect the argument to be of type struct
attribute. Things work fine currently as no one accesses the "attr"
argument. We may not see issues even if the argument is used, as struct
kobj_attribute has struct attribute as its first element and so they
will both get same address.

But this is logically incorrect and we should rather use struct
kobj_attribute instead of struct global_attr in the cpufreq core and
drivers and the show/store callbacks should take struct kobj_attribute
as argument instead.

This bug is caught using CFI CLANG builds in android kernel which
catches mismatch in function prototypes for such callbacks.

Reported-by: Donghee Han <dh.han@samsung.com>
Reported-by: Sangkyu Kim <skwith.kim@samsung.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-13 14:03:06 -07:00
Santosh Mardi
939ea3572f cpufreq: add CPUFREQ_INCOMPATIBLE event in policy notifiers
Add support for CPUFREQ_INCOMPATIBLE event in policy notifiers
this event is added for thermal driver to make sure thermal
is the last client in applying the policy limits.

Change-Id: I392e4745957829dd923f1f40201ad5c6b8ccf006
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2019-01-29 18:53:13 +05:30
Dietmar Eggemann
8d7f8aa413 ANDROID: implement max frequency capping
Implements the Max Frequency Capping Engine (MFCE) getter function
topology_get_max_freq_scale() to provide the scheduler with a
maximum frequency scaling correction factor for more accurate cpu
capacity handling by being able to deal with max frequency capping.

This scaling factor describes the influence of running a cpu with a
current maximum frequency (policy) lower than the maximum possible
frequency (cpuinfo).

The factor is:

  policy_max_freq(cpu) << SCHED_CAPACITY_SHIFT / cpuinfo_max_freq(cpu)

It also implements the MFCE setter function arch_set_max_freq_scale()
which is called from cpufreq_set_policy().

Change-Id: I59e52861ee260755ab0518fe1f7183a2e4e3d0fc
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
Git-commit: b6a1f3e4dd
Git-repo: https://android.googlesource.com/kernel/common/
[satyap@codeaurora.org: trivial merge conflict resolution in
drivers/base/arch_topology.c where msm-4.14 has efficiency variable
which is not part of Android Common, so, the conflict and resolution]
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
2018-08-03 13:52:07 -07:00
Dietmar Eggemann
b6a1f3e4dd ANDROID: implement max frequency capping
Implements the Max Frequency Capping Engine (MFCE) getter function
topology_get_max_freq_scale() to provide the scheduler with a
maximum frequency scaling correction factor for more accurate cpu
capacity handling by being able to deal with max frequency capping.

This scaling factor describes the influence of running a cpu with a
current maximum frequency (policy) lower than the maximum possible
frequency (cpuinfo).

The factor is:

  policy_max_freq(cpu) << SCHED_CAPACITY_SHIFT / cpuinfo_max_freq(cpu)

It also implements the MFCE setter function arch_set_max_freq_scale()
which is called from cpufreq_set_policy().

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
Change-Id: I59e52861ee260755ab0518fe1f7183a2e4e3d0fc
2018-07-18 11:14:37 +01:00
Greg Kroah-Hartman
918914133e Merge 4.14.13 into android-4.14
Changes in 4.14.13
	x86/mm: Set MODULES_END to 0xffffffffff000000
	x86/mm: Map cpu_entry_area at the same place on 4/5 level
	x86/kaslr: Fix the vaddr_end mess
	x86/events/intel/ds: Use the proper cache flush method for mapping ds buffers
	x86/tlb: Drop the _GPL from the cpu_tlbstate export
	x86/alternatives: Add missing '\n' at end of ALTERNATIVE inline asm
	x86/pti: Rename BUG_CPU_INSECURE to BUG_CPU_MELTDOWN
	kernel/acct.c: fix the acct->needcheck check in check_free_space()
	mm/mprotect: add a cond_resched() inside change_pmd_range()
	mm/sparse.c: wrong allocation for mem_section
	userfaultfd: clear the vma->vm_userfaultfd_ctx if UFFD_EVENT_FORK fails
	btrfs: fix refcount_t usage when deleting btrfs_delayed_nodes
	efi/capsule-loader: Reinstate virtual capsule mapping
	crypto: n2 - cure use after free
	crypto: chacha20poly1305 - validate the digest size
	crypto: pcrypt - fix freeing pcrypt instances
	crypto: chelsio - select CRYPTO_GF128MUL
	drm/i915: Disable DC states around GMBUS on GLK
	drm/i915: Apply Display WA #1183 on skl, kbl, and cfl
	sunxi-rsb: Include OF based modalias in device uevent
	fscache: Fix the default for fscache_maybe_release_page()
	x86 / CPU: Avoid unnecessary IPIs in arch_freq_get_on_cpu()
	x86 / CPU: Always show current CPU frequency in /proc/cpuinfo
	kernel/signal.c: protect the traced SIGNAL_UNKILLABLE tasks from SIGKILL
	kernel/signal.c: protect the SIGNAL_UNKILLABLE tasks from !sig_kernel_only() signals
	kernel/signal.c: remove the no longer needed SIGNAL_UNKILLABLE check in complete_signal()
	iommu/arm-smmu-v3: Don't free page table ops twice
	iommu/arm-smmu-v3: Cope with duplicated Stream IDs
	ARC: uaccess: dont use "l" gcc inline asm constraint modifier
	powerpc/mm: Fix SEGV on mapped region to return SEGV_ACCERR
	Input: elantech - add new icbody type 15
	x86/microcode/AMD: Add support for fam17h microcode loading
	apparmor: fix regression in mount mediation when feature set is pinned
	parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel
	parisc: qemu idle sleep support
	mtd: nand: pxa3xx: Fix READOOB implementation
	KVM: s390: fix cmma migration for multiple memory slots
	KVM: s390: prevent buffer overrun on memory hotplug during migration
	Linux 4.14.13

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2018-01-10 09:41:41 +01:00
Rafael J. Wysocki
22af48be82 x86 / CPU: Always show current CPU frequency in /proc/cpuinfo
commit 7d5905dc14a87805a59f3c5bf70173aac2bb18f8 upstream.

After commit 890da9cf09 (Revert "x86: do not use cpufreq_quick_get()
for /proc/cpuinfo "cpu MHz"") the "cpu MHz" number in /proc/cpuinfo
on x86 can be either the nominal CPU frequency (which is constant)
or the frequency most recently requested by a scaling governor in
cpufreq, depending on the cpufreq configuration.  That is somewhat
inconsistent and is different from what it was before 4.13, so in
order to restore the previous behavior, make it report the current
CPU frequency like the scaling_cur_freq sysfs file in cpufreq.

To that end, modify the /proc/cpuinfo implementation on x86 to use
aperfmperf_snapshot_khz() to snapshot the APERF and MPERF feedback
registers, if available, and use their values to compute the CPU
frequency to be reported as "cpu MHz".

However, do that carefully enough to avoid accumulating delays that
lead to unacceptable access times for /proc/cpuinfo on systems with
many CPUs.  Run aperfmperf_snapshot_khz() once on all CPUs
asynchronously at the /proc/cpuinfo open time, add a single delay
upfront (if necessary) at that point and simply compute the current
frequency while running show_cpuinfo() for each individual CPU.

Also, to avoid slowing down /proc/cpuinfo accesses too much, reduce
the default delay between consecutive APERF and MPERF reads to 10 ms,
which should be sufficient to get large enough numbers for the
frequency computation in all cases.

Fixes: 890da9cf09 (Revert "x86: do not use cpufreq_quick_get() for /proc/cpuinfo "cpu MHz"")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-01-10 09:31:20 +01:00
Dietmar Eggemann
5afe834622 ANDROID: cpufreq: provide default frequency-invariance setter function
Frequency-invariant accounting support based on the ratio of current
frequency and maximum supported frequency is an optional feature an arch
can implement.

Since there are cpufreq drivers (e.g. cpufreq-dt) which can be build for
different arch's a default implementation of the frequency-invariance
setter function arch_set_freq_scale() is needed.

This default implementation is an empty weak function which will be
overwritten by a strong function in case the arch provides one.

The setter function passes the cpumask of related (to the frequency
change) cpus (online and offline cpus), the (new) current frequency and
the maximum supported frequency.

Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Change-Id: I912d5815ee29e1171c498e638d1a089c5a598add
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
2017-12-14 21:41:03 +00:00
Rafael J. Wysocki
08a10002be Merge branch 'pm-cpufreq-sched'
* pm-cpufreq-sched:
  cpufreq: schedutil: Always process remote callback with slow switching
  cpufreq: schedutil: Don't restrict kthread to related_cpus unnecessarily
  cpufreq: Return 0 from ->fast_switch() on errors
  cpufreq: Simplify cpufreq_can_do_remote_dvfs()
  cpufreq: Process remote callbacks from any CPU if the platform permits
  sched: cpufreq: Allow remote cpufreq callbacks
  cpufreq: schedutil: Use unsigned int for iowait boost
  cpufreq: schedutil: Make iowait boost more energy efficient
2017-09-04 00:05:22 +02:00
Rafael J. Wysocki
d6344d4b56 cpufreq: Simplify cpufreq_can_do_remote_dvfs()
The if () in cpufreq_can_do_remote_dvfs() is superfluous, so drop
it and simply return the value of the expression under it.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-08-08 17:09:02 +02:00
Viresh Kumar
99d14d0e16 cpufreq: Process remote callbacks from any CPU if the platform permits
On many platforms, CPUs can do DVFS across cpufreq policies. i.e CPU
from policy-A can change frequency of CPUs belonging to policy-B.

This is quite common in case of ARM platforms where we don't
configure any per-cpu register.

Add a flag to identify such platforms and update
cpufreq_can_do_remote_dvfs() to allow remote callbacks if this flag is
set.

Also enable the flag for cpufreq-dt driver which is used only on ARM
platforms currently.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Saravana Kannan <skannan@codeaurora.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-08-01 14:24:54 +02:00
Viresh Kumar
674e75411f sched: cpufreq: Allow remote cpufreq callbacks
With Android UI and benchmarks the latency of cpufreq response to
certain scheduling events can become very critical. Currently, callbacks
into cpufreq governors are only made from the scheduler if the target
CPU of the event is the same as the current CPU. This means there are
certain situations where a target CPU may not run the cpufreq governor
for some time.

One testcase to show this behavior is where a task starts running on
CPU0, then a new task is also spawned on CPU0 by a task on CPU1. If the
system is configured such that the new tasks should receive maximum
demand initially, this should result in CPU0 increasing frequency
immediately. But because of the above mentioned limitation though, this
does not occur.

This patch updates the scheduler core to call the cpufreq callbacks for
remote CPUs as well.

The schedutil, ondemand and conservative governors are updated to
process cpufreq utilization update hooks called for remote CPUs where
the remote CPU is managed by the cpufreq policy of the local CPU.

The intel_pstate driver is updated to always reject remote callbacks.

This is tested with couple of usecases (Android: hackbench, recentfling,
galleryfling, vellamo, Ubuntu: hackbench) on ARM hikey board (64 bit
octa-core, single policy). Only galleryfling showed minor improvements,
while others didn't had much deviation.

The reason being that this patch only targets a corner case, where
following are required to be true to improve performance and that
doesn't happen too often with these tests:

- Task is migrated to another CPU.
- The task has high demand, and should take the target CPU to higher
  OPPs.
- And the target CPU doesn't call into the cpufreq governor until the
  next tick.

Based on initial work from Steve Muckle.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Saravana Kannan <skannan@codeaurora.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-08-01 14:24:53 +02:00
Viresh Kumar
fe829ed8ef cpufreq: Add CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING cpufreq driver flag
The policy->transition_latency field is used for multiple purposes
today and its not straight forward at all. This is how it is used:

A. Set the correct transition_latency value.

B. Set it to CPUFREQ_ETERNAL because:
   1. We don't want automatic dynamic switching (with
      ondemand/conservative) to happen at all.
   2. We don't know the transition latency.

This patch handles the B.1. case in a more readable way. A new flag for
the cpufreq drivers is added to disallow use of cpufreq governors which
have dynamic_switching flag set.

All the current cpufreq drivers which are setting transition_latency
unconditionally to CPUFREQ_ETERNAL are updated to use it. They don't
need to set transition_latency anymore.

There shouldn't be any functional change after this patch.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-07-26 00:15:46 +02:00
Viresh Kumar
ed4676e254 cpufreq: Replace "max_transition_latency" with "dynamic_switching"
There is no limitation in the ondemand or conservative governors which
disallow the transition_latency to be greater than 10 ms.

The max_transition_latency field is rather used to disallow automatic
dynamic frequency switching for platforms which didn't wanted these
governors to run.

Replace max_transition_latency with a boolean (dynamic_switching) and
check for transition_latency == CPUFREQ_ETERNAL along with that. This
makes it pretty straight forward to read/understand now.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-07-26 00:15:45 +02:00
Viresh Kumar
aa7519af45 cpufreq: Use transition_delay_us for legacy governors as well
The policy->transition_delay_us field is used only by the schedutil
governor currently, and this field describes how fast the driver wants
the cpufreq governor to change CPUs frequency. It should rather be a
common thing across all governors, as it doesn't have any schedutil
dependency here.

Create a new helper cpufreq_policy_transition_delay_us() to get the
transition delay across all governors.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-07-22 02:25:20 +02:00
Viresh Kumar
2d04503632 cpufreq: governor: Drop min_sampling_rate
The cpufreq core and governors aren't supposed to set a limit on how
fast we want to try changing the frequency. This is currently done for
the legacy governors with help of min_sampling_rate.

At worst, we may end up setting the sampling rate to a value lower than
the rate at which frequency can be changed and then one of the CPUs in
the policy will be only changing frequency for ever.

But that is something for the user to decide and there is no need to
have special handling for such cases in the core. Leave it for the user
to figure out.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-07-22 02:25:20 +02:00
Linus Torvalds
4d25ec1966 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
Pull thermal management updates from Zhang Rui:

 - Improve thermal cpu_cooling interaction with cpufreq core.

   The cpu_cooling driver is designed to use CPU frequency scaling to
   avoid high thermal states for a platform. But it wasn't glued really
   well with cpufreq core.

   For example clipped-cpus is copied from the policy structure and its
   much better to use the policy->cpus (or related_cpus) fields directly
   as they may have got updated. Not that things were broken before this
   series, but they can be optimized a bit more.

   This series tries to improve interactions between cpufreq core and
   cpu_cooling driver and does some fixes/cleanups to the cpu_cooling
   driver. (Viresh Kumar)

 - A couple of fixes and cleanups in thermal core and imx, hisilicon,
   bcm_2835, int340x thermal drivers. (Arvind Yadav, Dan Carpenter,
   Sumeet Pawnikar, Srinivas Pandruvada, Willy WOLFF)

* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (24 commits)
  thermal: bcm2835: fix an error code in probe()
  thermal: hisilicon: Handle return value of clk_prepare_enable
  thermal: imx: Handle return value of clk_prepare_enable
  thermal: int340x: check for sensor when PTYP is missing
  Thermal/int340x: Fix few typos and kernel-doc style
  thermal: fix source code documentation for parameters
  thermal: cpu_cooling: Replace kmalloc with kmalloc_array
  thermal: cpu_cooling: Rearrange struct cpufreq_cooling_device
  thermal: cpu_cooling: 'freq' can't be zero in cpufreq_state2power()
  thermal: cpu_cooling: don't store cpu_dev in cpufreq_cdev
  thermal: cpu_cooling: get_level() can't fail
  thermal: cpu_cooling: create structure for idle time stats
  thermal: cpu_cooling: merge frequency and power tables
  thermal: cpu_cooling: get rid of 'allowed_cpus'
  thermal: cpu_cooling: OPPs are registered for all CPUs
  thermal: cpu_cooling: store cpufreq policy
  cpufreq: create cpufreq_table_count_valid_entries()
  thermal: cpu_cooling: use cpufreq_policy to register cooling device
  thermal: cpu_cooling: get rid of a variable in cpufreq_set_cur_state()
  thermal: cpu_cooling: remove cpufreq_cooling_get_level()
  ...
2017-07-14 13:12:32 -07:00
Len Brown
f8475cef90 x86: use common aperfmperf_khz_on_cpu() to calculate KHz using APERF/MPERF
The goal of this change is to give users a uniform and meaningful
result when they read /sys/...cpufreq/scaling_cur_freq
on modern x86 hardware, as compared to what they get today.

Modern x86 processors include the hardware needed
to accurately calculate frequency over an interval --
APERF, MPERF, and the TSC.

Here we provide an x86 routine to make this calculation
on supported hardware, and use it in preference to any
driver driver-specific cpufreq_driver.get() routine.

MHz is computed like so:

MHz = base_MHz * delta_APERF / delta_MPERF

MHz is the average frequency of the busy processor
over a measurement interval.  The interval is
defined to be the time between successive invocations
of aperfmperf_khz_on_cpu(), which are expected to to
happen on-demand when users read sysfs attribute
cpufreq/scaling_cur_freq.

As with previous methods of calculating MHz,
idle time is excluded.

base_MHz above is from TSC calibration global "cpu_khz".

This x86 native method to calculate MHz returns a meaningful result
no matter if P-states are controlled by hardware or firmware
and/or if the Linux cpufreq sub-system is or is-not installed.

When this routine is invoked more frequently, the measurement
interval becomes shorter.  However, the code limits re-computation
to 10ms intervals so that average frequency remains meaningful.

Discerning users are encouraged to take advantage of
the turbostat(8) utility, which can gracefully handle
concurrent measurement intervals of arbitrary length.

Signed-off-by: Len Brown <len.brown@intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-06-27 01:47:32 +02:00
Viresh Kumar
55d8529313 cpufreq: create cpufreq_table_count_valid_entries()
We need such a routine at two places already, lets create one.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Tested-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
2017-05-27 17:32:28 -07:00
Rafael J. Wysocki
1b72e7fd30 cpufreq: schedutil: Use policy-dependent transition delays
Make the schedutil governor take the initial (default) value of the
rate_limit_us sysfs attribute from the (new) transition_delay_us
policy parameter (to be set by the scaling driver).

That will allow scaling drivers to make schedutil use smaller default
values of rate_limit_us and reduce the default average time interval
between consecutive frequency changes.

Make intel_pstate set transition_delay_us to 500.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2017-04-17 18:37:27 +02:00
Viresh Kumar
565ebe8073 cpufreq: Fix typos in comments
- s/freqnency/frequency/
- s/accomodating/accommodating/

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-02-04 00:47:59 +01:00
Viresh Kumar
052f573f5c cpufreq: Remove CPUFREQ_START notifier event
Its not used anymore, remove it.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-02-04 00:05:30 +01:00
Viresh Kumar
f9f41e3ef9 cpufreq: Remove policy create/remove notifiers
Those were added by:

commit fcd7af917a ("cpufreq: stats: handle cpufreq_unregister_driver()
and suspend/resume properly")

but aren't used anymore since:

commit 1aefc75b24 ("cpufreq: stats: Make the stats code non-modular").

Remove them. Also remove the redundant parameter to the respective
routines.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-02-03 23:59:38 +01:00
Rafael J. Wysocki
30248feff5 cpufreq: Make cpufreq_update_policy() void
The return value of cpufreq_update_policy() is never used, so make
it void.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2016-11-21 14:35:43 +01:00
Markus Mayer
ee7930ee27 cpufreq: stats: New sysfs attribute for clearing statistics
Allow CPUfreq statistics to be cleared by writing anything to
/sys/.../cpufreq/stats/reset.

Signed-off-by: Markus Mayer <mmayer@broadcom.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-11 01:51:11 +01:00
Sergey Senozhatsky
c6fe46a79e cpufreq: fix overflow in cpufreq_table_find_index_dl()
'best' is always less or equals to 'pos', so `best - pos' returns
a negative value which is then getting casted to `unsigned int'
and passed to __cpufreq_driver_target()->acpi_cpufreq_target()
for policy->freq_table selection. This results in

 BUG: unable to handle kernel paging request at ffff881019b469f8
 IP: [<ffffffffa00356c1>] acpi_cpufreq_target+0x4f/0x190 [acpi_cpufreq]
 PGD 267f067
 PUD 0

 Oops: 0000 [#1] PREEMPT SMP
 CPU: 6 PID: 70 Comm: kworker/6:1 Not tainted 4.9.0-rc1-next-20161017-dbg-dirty
 Workqueue: events dbs_work_handler
 task: ffff88041b808000 task.stack: ffff88041b810000
 RIP: 0010:[<ffffffffa00356c1>]  [<ffffffffa00356c1>] acpi_cpufreq_target+0x4f/0x190 [acpi_cpufreq]
 RSP: 0018:ffff88041b813c60  EFLAGS: 00010282
 RAX: ffff880419b46a00 RBX: ffff88041b848400 RCX: ffff880419b20f80
 RDX: 00000000001dff38 RSI: 00000000ffffffff RDI: ffff88041b848400
 RBP: ffff88041b813cb0 R08: 0000000000000006 R09: 0000000000000040
 R10: ffffffff8207f9e0 R11: ffffffff8173595b R12: 0000000000000000
 R13: ffff88041f1dff38 R14: 0000000000262900 R15: 0000000bfffffff4
 FS:  0000000000000000(0000) GS:ffff88041f000000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: ffff881019b469f8 CR3: 000000041a2d3000 CR4: 00000000001406e0
 Stack:
  ffff88041b813cb0 ffffffff813347f9 ffff88041b813ca0 ffffffff81334663
  ffff88041f1d4bc0 ffff88041b848400 0000000000000000 0000000000000000
  0000000000262900 0000000000000000 ffff88041b813d00 ffffffff813355dc
 Call Trace:
  [<ffffffff813347f9>] ? cpufreq_freq_transition_begin+0xf1/0xfc
  [<ffffffff81334663>] ? get_cpu_idle_time+0x97/0xa6
  [<ffffffff813355dc>] __cpufreq_driver_target+0x3b6/0x44e
  [<ffffffff81336ca3>] cs_dbs_timer+0x11a/0x135
  [<ffffffff81336fda>] dbs_work_handler+0x39/0x62
  [<ffffffff81057823>] process_one_work+0x280/0x4a5
  [<ffffffff81058719>] worker_thread+0x24f/0x397
  [<ffffffff810584ca>] ? rescuer_thread+0x30b/0x30b
  [<ffffffff81418380>] ? nl80211_get_key+0x29/0x36a
  [<ffffffff8105d2b7>] kthread+0xfc/0x104
  [<ffffffff8107ceea>] ? put_lock_stats.isra.9+0xe/0x20
  [<ffffffff8105d1bb>] ? kthread_create_on_node+0x3f/0x3f
  [<ffffffff814b2092>] ret_from_fork+0x22/0x30
 Code: 56 4d 6b ff 0c 41 55 41 54 53 48 83 ec 28 48 8b 15 ad 1e 00 00 44 8b 41
 08 48 8b 87 c8 00 00 00 49 89 d5 4e 03 2c c5 80 b2 78 81 <46> 8b 74 38 04 45
 3b 75 00 75 11 31 c0 83 39 00 0f 84 1c 01 00
 RIP  [<ffffffffa00356c1>] acpi_cpufreq_target+0x4f/0x190 [acpi_cpufreq]
  RSP <ffff88041b813c60>
 CR2: ffff881019b469f8
 ---[ end trace 16d9fc7a17897d37 ]---

[ rjw: In some cases this bug may also cause incorrect frequencies to
  be selected by cpufreq governors. ]

Fixes: 899bb6642f (cpufreq: skip invalid entries when searching the frequency)
Link: http://marc.info/?l=linux-kernel&m=147672030714331&w=2
Reported-and-tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Reported-and-tested-by: Jörg Otte <jrg.otte@gmail.com>
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Cc: 4.8+ <stable@vger.kernel.org> # 4.8+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-10-20 16:35:50 +02:00
Aaro Koskinen
899bb6642f cpufreq: skip invalid entries when searching the frequency
Skip invalid entries when searching the frequency. This fixes cpufreq
at least on loongson2 MIPS board.

Fixes: da0c6dc00c (cpufreq: Handle sorted frequency tables more efficiently)
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Cc: 4.8+ <stable@vger.kernel.org> # 4.8+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-10-12 21:01:18 +02:00
Steve Muckle
e3c0623608 cpufreq: add cpufreq_driver_resolve_freq()
Cpufreq governors may need to know what a particular target frequency
maps to in the driver without necessarily wanting to set the frequency.
Support this operation via a new cpufreq API,
cpufreq_driver_resolve_freq(). This API returns the lowest driver
frequency equal or greater than the target frequency
(CPUFREQ_RELATION_L), subject to any policy (min/max) or driver
limitations. The mapping is also cached in the policy so that a
subsequent fast_switch operation can avoid repeating the same lookup.

The API will call a new cpufreq driver callback, resolve_freq(), if it
has been registered by the driver. Otherwise the frequency is resolved
via cpufreq_frequency_table_target(). Rather than require ->target()
style drivers to provide a resolve_freq() callback it is left to the
caller to ensure that the driver implements this callback if necessary
to use cpufreq_driver_resolve_freq().

Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Steve Muckle <smuckle@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-07-21 14:46:08 +02:00
Viresh Kumar
da0c6dc00c cpufreq: Handle sorted frequency tables more efficiently
cpufreq drivers aren't required to provide a sorted frequency table
today, and even the ones which provide a sorted table aren't handled
efficiently by cpufreq core.

This patch adds infrastructure to verify if the freq-table provided by
the drivers is sorted or not, and use efficient helpers if they are
sorted.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-07-07 00:13:20 +02:00
Viresh Kumar
d218ed7739 cpufreq: Return index from cpufreq_frequency_table_target()
This routine can't fail unless the frequency table is invalid and
doesn't contain any valid entries.

Make it return the index and WARN() in case it is used for an invalid
table.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-06-09 00:58:06 +02:00
Viresh Kumar
7ab4aabbaa cpufreq: Drop freq-table param to cpufreq_frequency_table_target()
The policy already has this pointer set, use it instead.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-06-09 00:58:06 +02:00
Viresh Kumar
f8bfc116ca cpufreq: Remove cpufreq_frequency_get_table()
Most of the callers of cpufreq_frequency_get_table() already have the
pointer to a valid 'policy' structure and they don't really need to go
through the per-cpu variable first and then a check to validate the
frequency, in order to find the freq-table for the policy.

Directly use the policy->freq_table field instead for them.

Only one user of that API is left after above changes, cpu_cooling.c and
it accesses the freq_table in a racy way as the policy can get freed in
between.

Fix it by using cpufreq_cpu_get() properly.

Since there are no more users of cpufreq_frequency_get_table() left, get
rid of it.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Javi Merino <javi.merino@arm.com> (cpu_cooling.c)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-06-09 00:58:05 +02:00
Rafael J. Wysocki
1aefc75b24 cpufreq: stats: Make the stats code non-modular
The modularity of cpufreq_stats is quite problematic.

First off, the usage of policy notifiers for the initialization
and cleanup in the cpufreq_stats module is inherently racy with
respect to CPU offline/online and the initialization and cleanup
of the cpufreq driver.

Second, fast frequency switching (used by the schedutil governor)
cannot be enabled if any transition notifiers are registered, so
if the cpufreq_stats module (that registers a transition notifier
for updating transition statistics) is loaded, the schedutil governor
cannot use fast frequency switching.

On the other hand, allowing cpufreq_stats to be built as a module
doesn't really add much value.  Arguably, there's not much reason
for that code to be modular at all.

For the above reasons, make the cpufreq stats code non-modular,
modify the core to invoke functions provided by that code directly
and drop the notifiers from it.

Make the stats sysfs attributes appear empty if fast frequency
switching is enabled as the statistics will not be updated in that
case anyway (and returning -EBUSY from those attributes breaks
powertop).

While at it, clean up Kconfig help for the CPU_FREQ_STAT and
CPU_FREQ_STAT_DETAILS options.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2016-06-02 23:24:41 +02:00
Rafael J. Wysocki
9a15fb2c79 cpufreq: Drop the 'initialized' field from struct cpufreq_governor
The 'initialized' field in struct cpufreq_governor is only used by
the conservative governor (as a usage counter) and the way that
happens is far from straightforward and arguably incorrect.

Namely, the value of 'initialized' is checked by
cpufreq_dbs_governor_init() and cpufreq_dbs_governor_exit() and
the results of those checks are passed (as the second argument) to
the ->init() and ->exit() callbacks in struct dbs_governor.  Those
callbacks are only implemented by the ondemand and conservative
governors and ondemand doesn't use their second argument at all.
In turn, the conservative governor uses it to decide whether or not
to either register or unregister a transition notifier.

That whole mechanism is not only unnecessarily convoluted, but also
racy, because the 'initialized' field of struct cpufreq_governor is
updated in cpufreq_init_governor() and cpufreq_exit_governor() under
policy->rwsem which doesn't help if one of these functions is run
twice in parallel for different policies (which isn't impossible in
principle), for example.

Instead of it, add a proper usage counter to the conservative
governor and update it from cs_init() and cs_exit() which is
guaranteed to be non-racy, as those functions are only called
under gov_dbs_data_mutex which is global.

With that in place, drop the 'initialized' field from struct
cpufreq_governor as it is not used any more.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
2016-06-02 23:24:39 +02:00
Viresh Kumar
bf2be2de84 cpufreq: governor: Create cpufreq_policy_apply_limits()
Create a new helper to avoid code duplication across governors.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-06-02 23:24:39 +02:00