{"push_id":676293249,"size":32,"distinct_size":32,"ref":"refs/heads/lp5.1","head":"817e50862afabc435960d101d8de2416078d2b95","before":"e3b903107812ee65ce22aa3ed03faf5584f65331","commits":[{"sha":"e0a2f1ac3998fa29f6098cbea9b38705b6183793","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"Paul Reioux"},"message":"cpufreq/cpufreq_intellidemand: intellidemand cpufreq governor (version 4.0)\n\nIntellidemand is inspired by ondemand governor. Its main features are:\n\n - auto cpu hotplugging based on runnable thread average calculations\n - detection of browsing mode (long screen on activities with moderate run\n   queue depth =< 45 )\n - limit max frequencies when in browsing mode to conserve battery for long\n   duration tasks\n\nBrowsing State Determination:\n 1- Browsing state is enabled as power-on default. Browsing state is disabled\n    when run queue depth is > 45 (very high instantaneous spikes)\n\nBrowsing State Limit Max Freq Logic (sliding window algorithm):\n 1- While Screen is ON > 3 min, and average load of the CPU is < 35%, then\n    CPU Max frequencies will remain power-on default\n 2- While Screen is On, if average CPU load > 35%, both CPUs max frequencies\n    will be limited to a lower user configurable max value\n 3- While Screen is On, After both CPUs' Max is limited to lowered max, when\n    the average CPU load has dropped down to less than < 25%, then both CPUs\n    Max freq will be restored to back to power-on default\n\nRunnable Thread Auto-hotplug (fast hotplug / slow unplug algorithm):\n 1- When average number of running thread is < threshold, 2nd cpu will be\n    unplugged.\n 2- When > threshold, 2nd cpu will be hotplugged.\n 3- The logic applies a fast hotplug and slow unplug algorithm so 2nd core\n    will stay enabled longer to help deal with performance spikes\n\nchanges from Ver 2.0 -> Ver 3.0:\n  - remove GPU Busy dependency for browsing state detection (this will make\n    the governor more portable to other platforms without specific GPU\n    architecture knowledge)\n\ndependencies:\n  -- Qualcomm's run queue average logic (SOC independent logic)\n  -- TI's runnable thread average logic (SOC independent logic)\n\nforward ported to Linux 3.4 for use on Mako\n\nSigned-off-by: Paul Reioux <reioux@gmail.com>\n\nConflicts:\n\tdrivers/cpufreq/Kconfig\n\tdrivers/cpufreq/Makefile\n\tinclude/linux/cpufreq.h","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/e0a2f1ac3998fa29f6098cbea9b38705b6183793"},{"sha":"895ad8438cec767167e89edb48ae6f9bf6f1d8db","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: Add boost pulse capability\n\nBoost pulse increases UI performance by increasing CPU freq and\nreduce sampling time.\n\nforward ported for Linux 3.4 for use on Mako\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/895ad8438cec767167e89edb48ae6f9bf6f1d8db"},{"sha":"a6ea87d0bfad792fa56c5527f0241b37e5e780d5","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: add bug fixes\n\n - Fix crash input event handler on governor switch\n - Fix panic when setting sampling rate\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/a6ea87d0bfad792fa56c5527f0241b37e5e780d5"},{"sha":"d7965b7203422a21baf7adabf6d2e5708ddb6a81","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: add a run queue persistence to determine browsing state\n\npersistence will allow for better browsing state detection rather than just\npurely based on run queue depth alone\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/d7965b7203422a21baf7adabf6d2e5708ddb6a81"},{"sha":"773c447867a6998a4f88fc41f75b5bef3a2b9246","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: add minimum cpu performance lock\n\na minimum cpu frequency performance lock is add to ensure smooth\noperations when only 1 core is active\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/773c447867a6998a4f88fc41f75b5bef3a2b9246"},{"sha":"d5173ff08186ea771ca29643a3b821ea1d20cd06","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"Intellidemand: update for quadcore operations. bump version to 4.0\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/d5173ff08186ea771ca29643a3b821ea1d20cd06"},{"sha":"8f9688e400a2aa1860312e37c4e46cbfc463d4aa","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: code derps clean up!\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/8f9688e400a2aa1860312e37c4e46cbfc463d4aa"},{"sha":"4c418471d41b9c73675d39f80684fc30dc397044","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: increase boost duration to 2.5 seconds from 1.5\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/4c418471d41b9c73675d39f80684fc30dc397044"},{"sha":"0b29a3aec7d93c0645b980e9c31a1eb1baf91ee8","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: add eco mode (dual core operations) bump version to 4.1\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/0b29a3aec7d93c0645b980e9c31a1eb1baf91ee8"},{"sha":"1ca9a4f5c4d54da80636892ec28e84c690e9046a","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: tweak for not using min performance lock\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/1ca9a4f5c4d54da80636892ec28e84c690e9046a"},{"sha":"f563778ab224be84caae38a649c99e15fa7b42b3","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"Intellidemand: adjust the nr_run hysteresis for better UI response\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/f563778ab224be84caae38a649c99e15fa7b42b3"},{"sha":"d800be8311dbda65ea725b344b01487b0f060ba9","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"cpufreq: Avoid using smp_processor_id() in preemptible context\n\nEven though this work item runs on only one cpu at a time (due to\nqueue_work_on()) it is possible for the work item to be preempted\nand so use of smp_processor_id() is illegal.\n\nBUG: using smp_processor_id() in preemptible [00000000]\ncode: kworker/3:1/4162 caller is dbs_refresh_callback+0xc/0x188\n[<c00151b0>] (unwind_backtrace+0x0/0x120) from [<c0279058>]\n(debug_smp_processor_id+0xbc/0xf0)\n[<c0279058>] (debug_smp_processor_id+0xbc/0xf0) from [<c0454b54>]\n(dbs_refresh_callback+0xc/0x188)\n[<c0454b54>] (dbs_refresh_callback+0xc/0x188) from [<c0087290>]\n(process_one_work+0x354/0x648)\n[<c0087290>] (process_one_work+0x354/0x648) from [<c0089754>]\n(worker_thread+0x1a8/0x2a8)\n[<c0089754>] (worker_thread+0x1a8/0x2a8) from [<c008e480>]\n(kthread+0x90/0xa0)\n[<c008e480>] (kthread+0x90/0xa0) from [<c000f438>]\n(kernel_thread_exit+0x0/0x8)\n\nThe intent of the code is to determine which CPU this work item\nis running on, which we can easily do by passing that information\nin a wrapper struct around the work struct. Do this so we avoid\nthis problem.\n\nChange-Id: I05ca0ff2b3cbaa239930463ea0760e3e9d75145f\nSigned-off-by: Stephen Boyd <sboyd@codeaurora.org>\nadapted for Intellidemand from CAF reference\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/d800be8311dbda65ea725b344b01487b0f060ba9"},{"sha":"6331ff5b624b27a47e1bbcd859eef8e5f85bdcbb","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: Add support to consider other cpu load when scaling frequencies\n\nCurrently only current cpu load is considered when frequency scaling.\nAs a side effect of this when scheduler migrates a thread to a slower\ncore, the execution time increases unexpectedly.\n\nThe new algorithm not only considers current cpu load for frequency\nscaling, but also takes into account load of other online cpus. The\ntreshold for this can be controlled using up_threshold_any_cpu_load.\nWhen the up_threshold_any_cpu_load is crossed in any cpu then the\ncurrent cpu is set to sync_freq.\n\nAlso, when more than one cpu is online a two step ramp-up mechanism\nis used. When the up_threshold_multi_core is crossed the cpu is ramped\nup to optimal_freq which is less than policy->max and set to a power\nfriendly value.\n\nChange-Id: I64bed1b142cde1f239e73aa1f78981c78aaf59ce\nSigned-off-by: Narayanan Gopalakrishnan <nargop@codeaurora.org>\n\nintellidemand: Fix kernel warning in cpufreq_governor_dbs\n\nGOV_STOP event destroys the timer_mutex and is not initialized back\nupon GOV_START event.\nThe Kernel complains at mutex_lock(during GOV_LIMITS event) after\nmutex_destroy.\n\n[<c0014918>] (unwind_backtrace+0x0/0x11c)\n[<c007c004>] (warn_slowpath_common+0x4c/0x64)\n[<c007c034>] (warn_slowpath_null+0x18/0x1c)\n[<c079eef8>] (__mutex_lock_slowpath+0x130/0x3c4)\n[<c079f1ac>] (mutex_lock+0x20/0x3c) from [<c0540900>]\n[<c0540900>] (cpufreq_governor_dbs+0x3c8/0x468)\n[<c053d500>] (__cpufreq_governor+0x90/0xe0)\n[<c053d774>] (__cpufreq_set_policy+0x224/0x258)\n[<c053da58>] (cpufreq_add_dev_interface+0x2b0/0x308)\n[<c053e784>] (cpufreq_add_dev+0x500/0x56c)\n[<c079247c>] (cpufreq_cpu_callback+0x88/0x9c)\n[<c07a2ca8>] (notifier_call_chain+0x38/0x68)\n[<c007ded0>] (__cpu_notify+0x28/0x40)\n[<c0790024>] (_cpu_up+0xe4/0x118)\n[<c0790024>] (cpu_up+0x64/0x80)\n[<c0765840>] (store_online+0x48/0x78)\n[<c038d0c8>] (dev_attr_store+0x18/0x24)\n[<c017be40>] (sysfs_write_file+0x108/0x13c)\n[<c012cdfc>] (vfs_write+0xb0/0x128)\n[<c012d034>](sys_write+0x38/0x64)\n\nChange-Id: Ie2a796b17209243de731ccf2ab04b7f9e7048df8\nSigned-off-by: Anji Jonnala <anjir@codeaurora.org>\n\nAdapted for Intellidemand from CAF reference\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/6331ff5b624b27a47e1bbcd859eef8e5f85bdcbb"},{"sha":"38d4d1b08082bbd779323e9f96bb2a8ea3902a82","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"Paul Reioux"},"message":"intellidemand: give intellidemand's cpu_dbs_info its own name\n\nSigned-off-by: Paul Reioux <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/38d4d1b08082bbd779323e9f96bb2a8ea3902a82"},{"sha":"fbcde84817f55053cdb98650299f23ab95a15691","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: add default values for dbs sync and optimal tuneables\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/fbcde84817f55053cdb98650299f23ab95a15691"},{"sha":"13202250cc1c65fb94d760b43206db981077104d","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: remove cpu cores autoplug capability (replaced by intelli_plug)\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/13202250cc1c65fb94d760b43206db981077104d"},{"sha":"6eef4bae6a76fc4af222fbec2ecddf9b75898eaa","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: remove eco mode option (replaced by intelli_plug)\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/6eef4bae6a76fc4af222fbec2ecddf9b75898eaa"},{"sha":"4222a8912d2649711bb9e5d01f768751cc92006b","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: remove unused min performance lock defines\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/4222a8912d2649711bb9e5d01f768751cc92006b"},{"sha":"12327d0888b2baca432ed528d1c38f032caa4c6c","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"intellidemand: Don't update the policy->cur upon cpufreq driver failure\n\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/12327d0888b2baca432ed528d1c38f032caa4c6c"},{"sha":"8bce86b2c1b311edead86ec8eaa3f7c112d182bd","author":{"email":"c208d1ecece4e5ef2e4fb72f0546c69cdce89063@gmail.com","name":"faux123"},"message":"msm: cpufreq: make the gov stop part fully atomic\n\nIn the function cpufreq_governor_dbs, the case CPUFREQ_GOV_STOP\nis not completely atomic. The removal of sysfs is outside the\ncritical path. If a START/STOP done frequently from user space\nthen there is chance of adding the sysfs interface before removal.\nThis creates a warning from sysfs saying creating an already\nexisting entry.\n\nAlso once it fails to create, cpufreq_governor_dbs returns with\nerror code. The dbs_enable value is incremented which is not\nrolled back and cpufreq core tries to set the old\ngovernor. This might create further problems.\n\nHence the removal of sysfs entry should happen in the critical\npath.\n\nCRs-fixed: 440969\nChange-Id: I98891756caf2ce0b85e39e9b4f58034af1ed97ce\nSigned-off-by: Venkat Devarasetty <vdevaras@codeaurora.org>\nSigned-off-by: faux123 <reioux@gmail.com>","distinct":true,"url":"https://api.github.com/repos/RobbieL811/kernel_asus_flo/commits/8bce86b2c1b311edead86ec8eaa3f7c112d182bd"}]}