{"push_id":2339863883,"size":22,"distinct_size":22,"ref":"refs/heads/wip","head":"0c740bf7f883abf933b97f9265efdc7575caf4c2","before":"a7071e0ebb7c3098e4a64e4a8fc788b7daea4fce","commits":[{"sha":"c4ce3466976568e23315d3f955ccdfe7bcd7c9d0","author":{"name":"linckandrea","email":"d60d6bd2e5a58f2bce057917ac75ba33271917bf@gmail.com"},"message":"Revert \"chill: Cache tuneables\"\n\nThis reverts commit a7071e0ebb7c3098e4a64e4a8fc788b7daea4fce.","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/c4ce3466976568e23315d3f955ccdfe7bcd7c9d0"},{"sha":"6bf085443991ee27961416e90adf46ce2705591b","author":{"name":"linckandrea","email":"d60d6bd2e5a58f2bce057917ac75ba33271917bf@gmail.com"},"message":"Revert \"relaxed: Cache tuneables\"\n\nThis reverts commit d7ce392548261a6b7c4a726b0d5672f7c2979835.","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/6bf085443991ee27961416e90adf46ce2705591b"},{"sha":"6cda522325f5a4a583a492b6d56ce7ae0eacfcd0","author":{"name":"Nathan Chancellor","email":"b2febe722de126fdca89e2e24ca48c984e7dc9fc@gmail.com"},"message":"cpufreq: fallback to interactive if governor is not found\n\nNowadays, custom ROMs are starting to set custom governor profiles via\ninit scripts, often times involving custom governors (like DrunkSauce,\nwhich is impulse on little and ironactive on big). If the user sticks\nwith the built-in kernel, that is totally fine as everything will get\nloaded up properly. However, if the user decides to switch to a custom\nkernel and those governors are not present, this function will fail to\nfind them when and the governor will not change. I attempt to work\naround this by modifying how the method handles finding the governor.\n\nProcess without this patch:\n1. Phone boots with performance governor\n2. Init scripts attempts to write customer governor to sys path\n3. The function cpufreq_parse_governor fails to locate the\n   governor and returns -EINVAL since the input was invalid.\n4. The phone does not switch from the performance governor.\n\nProcess with this patch:\n1. Phone boots with performance governor\n2. Init scripts attempts to write customer governor to sys path\n3. The function cpufreq_parse_governor fails to locate the\n   governor but then tries to locate the interactive governor.\n4. The interactive governor is then applied.\n\nA couple of notes:\n1. If you have a different governor that you want to be set on\n   boot, make sure to change interactive to that governor's\n   name\n2. This is a little bit of a hack; ideally, it'd be nice to\n   only switch to interactive if the current governor is\n   performance so that already applied governors/settings\n   are not overwritten but there is not really a scenario\n   where this will be accidentally be activated since\n   custom kernel tweaking apps will only show governors that\n   are currently available. Maybe when I have more time will\n   I explore this in depth.\n\nSigned-off-by: Nathan Chancellor <natechancellor@gmail.com>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/6cda522325f5a4a583a492b6d56ce7ae0eacfcd0"},{"sha":"bd0b81522bfc6747974c213873b86a9697fb7ac1","author":{"name":"linckandrea","email":"d60d6bd2e5a58f2bce057917ac75ba33271917bf@gmail.com"},"message":"mmc: core: Silence log spam","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/bd0b81522bfc6747974c213873b86a9697fb7ac1"},{"sha":"8a2ba8c2e2cc0e7fe0a17ea76eb838318cb2619b","author":{"name":"Viresh Kumar","email":"4ca49bc1dcfdfc376d29da1eb07a3e0b3cd46daa@linaro.org"},"message":"workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues\n\nWorkqueues can be performance or power-oriented. Currently, most workqueues are\nbound to the CPU they were created on. This gives good performance (due to cache\neffects) at the cost of potentially waking up otherwise idle cores (Idle from\nscheduler's perspective. Which may or may not be physically idle) just to\nprocess some work. To save power, we can allow the work to be rescheduled on a\ncore that is already awake.\n\nWorkqueues created with the WQ_UNBOUND flag will allow some power savings.\nHowever, we don't change the default behaviour of the system.  To enable\npower-saving behaviour, a new config option CONFIG_WQ_POWER_EFFICIENT needs to\nbe turned on. This option can also be overridden by the\nworkqueue.power_efficient boot parameter.\n\ntj: Updated config description and comments.  Renamed\n    CONFIG_WQ_POWER_EFFICIENT to CONFIG_WQ_POWER_EFFICIENT_DEFAULT.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nReviewed-by: Amit Kucheria <amit.kucheria@linaro.org>\nSigned-off-by: Tejun Heo <tj@kernel.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nworkqueue: Add system wide power_efficient workqueues\n\nThis patch adds system wide workqueues aligned towards power saving. This is\ndone by allocating them with WQ_UNBOUND flag if 'wq_power_efficient' is set to\n'true'.\n\ntj: updated comments a bit.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Tejun Heo <tj@kernel.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nfirmware: use power efficient workqueue for unloading and aborting fw load\n\nAllow the scheduler to select the most appropriate CPU for running the\nfirmware load timeout routine and delayed routine for firmware unload.\nThis extends idle residency times and conserves power.\n\nThis functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.\n\nCc: Ming Lei <ming.lei@canonical.com>\nCc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Shaibal Dutta <shaibal.dutta@broadcom.com>\n[zoran.markovic@linaro.org: Rebased to latest kernel, added commit message.\nFixed code alignment.]\nSigned-off-by: Zoran Markovic <zoran.markovic@linaro.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nnet: wireless: move regulatory timeout work to power efficient workqueue\n\nFor better use of CPU idle time, allow the scheduler to select the CPU\non which the timeout work of regulatory settings would be executed.\nThis extends CPU idle residency time and saves power.\n\nThis functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.\n\nCc: \"John W. Linville\" <linville@tuxdriver.com>\nCc: \"David S. Miller\" <davem@davemloft.net>\nSigned-off-by: Shaibal Dutta <shaibal.dutta@broadcom.com>\n[zoran.markovic@linaro.org: Rebased to latest kernel. Added commit message.]\nSigned-off-by: Zoran Markovic <zoran.markovic@linaro.org>\nSigned-off-by: Johannes Berg <johannes.berg@intel.com>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nrcu: Move SRCU grace period work to power efficient workqueue\n\nFor better use of CPU idle time, allow the scheduler to select the CPU\non which the SRCU grace period work would be scheduled. This improves\nidle residency time and conserves power.\n\nThis functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.\n\nCc: Lai Jiangshan <laijs@cn.fujitsu.com>\nCc: \"Paul E. McKenney\" <paulmck@linux.vnet.ibm.com>\nCc: Dipankar Sarma <dipankar@in.ibm.com>\nSigned-off-by: Shaibal Dutta <shaibal.dutta@broadcom.com>\n[zoran.markovic@linaro.org: Rebased to latest kernel version. Added commit\nmessage. Fixed code alignment.]\nSigned-off-by: Zoran Markovic <zoran.markovic@linaro.org>\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nnet/ipv4: queue work on power efficient wq\n\nWorkqueue used in ipv4 layer have no real dependency of scheduling these on the\ncpu which scheduled them.\n\nOn a idle system, it is observed that an idle cpu wakes up many times just to\nservice this work. It would be better if we can schedule it on a cpu which the\nscheduler believes to be the most appropriate one.\n\nThis patch replaces normal workqueues with power efficient versions. This\ndoesn't change existing behavior of code unless CONFIG_WQ_POWER_EFFICIENT is\nenabled.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nblock: queue work on power efficient wq\n\nBlock layer uses workqueues for multiple purposes. There is no real dependency\nof scheduling these on the cpu which scheduled them.\n\nOn a idle system, it is observed that and idle cpu wakes up many times just to\nservice this work. It would be better if we can schedule it on a cpu which the\nscheduler believes to be the most appropriate one.\n\nThis patch replaces normal workqueues with power efficient versions.\n\nCc: Jens Axboe <axboe@kernel.dk>\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Tejun Heo <tj@kernel.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nPHYLIB: queue work on system_power_efficient_wq\n\nPhylib uses workqueues for multiple purposes. There is no real dependency of\nscheduling these on the cpu which scheduled them.\n\nOn a idle system, it is observed that and idle cpu wakes up many times just to\nservice this work. It would be better if we can schedule it on a cpu which the\nscheduler believes to be the most appropriate one.\n\nThis patch replaces system_wq with system_power_efficient_wq for PHYLIB.\n\nCc: David S. Miller <davem@davemloft.net>\nCc: netdev@vger.kernel.org\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nAcked-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Tejun Heo <tj@kernel.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nASoC: pcm: Use the power efficient workqueue for delayed powerdown\n\nThere is no need to use a normal per-CPU workqueue for delayed power downs\nas they're not timing or performance critical and waking up a core for them\nwould defeat some of the point.\n\nSigned-off-by: Mark Brown <broonie@linaro.org>\nReviewed-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nASoC: compress: Use power efficient workqueue\n\nThere is no need for the power down work to be done on a per CPU workqueue\nespecially considering the fairly long delay before powerdown.\n\nSigned-off-by: Mark Brown <broonie@linaro.org>\nAcked-by: Vinod Koul <vinod.koul@intel.com>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nASoC: jack: Use power efficient workqueue\n\nThe accessory detect debounce work is not performance sensitive so let\nthe scheduler run it wherever is most efficient rather than in a per CPU\nworkqueue by using the system power efficient workqueue.\n\nSigned-off-by: Mark Brown <broonie@linaro.org>\nAcked-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nnet/neighbour: queue work on power efficient wq\n\nWorkqueue used in neighbour layer have no real dependency of scheduling these on\nthe cpu which scheduled them.\n\nOn a idle system, it is observed that an idle cpu wakes up many times just to\nservice this work. It would be better if we can schedule it on a cpu which the\nscheduler believes to be the most appropriate one.\n\nThis patch replaces normal workqueues with power efficient versions. This\ndoesn't change existing behavior of code unless CONFIG_WQ_POWER_EFFICIENT is\nenabled.\n\nSigned-off-by: Viresh Kumar <viresh.kumar@linaro.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\ntimekeeping: Move clock sync work to power efficient workqueue\n\nFor better use of CPU idle time, allow the scheduler to select the CPU\non which the CMOS clock sync work would be scheduled. This improves\nidle residency time and conserver power.\n\nThis functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.\n\nSigned-off-by: Shaibal Dutta <shaibal.dutta@broadcom.com>\n[zoran.markovic@linaro.org: Added commit message. Aligned code.]\nSigned-off-by: Zoran Markovic <zoran.markovic@linaro.org>\nCc: John Stultz <john.stultz@linaro.org>\nLink: http://lkml.kernel.org/r/1391195904-12497-1-git-send-email-zoran.markovic@linaro.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nnet: rfkill: move poll work to power efficient workqueue\n\nThis patch moves the rfkill poll_work to the power efficient workqueue.\nThis work does not have to be bound to the CPU that scheduled it, hence\nthe selection of CPU that executes it would be left to the scheduler.\nNet result is that CPU idle times would be extended, resulting in power\nsavings.\n\nThis behaviour is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.\n\nCc: \"John W. Linville\" <linville@tuxdriver.com>\nCc: \"David S. Miller\" <davem@davemloft.net>\nSigned-off-by: Shaibal Dutta <shaibal.dutta@broadcom.com>\n[zoran.markovic@linaro.org: Rebased to latest kernel, added commit message.\nFixed workqueue selection after suspend/resume cycle.]\nSigned-off-by: Zoran Markovic <zoran.markovic@linaro.org>\nSigned-off-by: Johannes Berg <johannes.berg@intel.com>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nusb: move hub init and LED blink work to power efficient workqueue\n\nAllow the scheduler to select the best CPU to handle hub initalization\nand LED blinking work. This extends idle residency times on idle CPUs\nand conserves power.\n\nThis functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.\n\n[zoran.markovic@linaro.org: Rebased to latest kernel. Added commit message.\nChanged reference from system to power efficient workqueue for LEDs in\ncheck_highspeed() and hub_port_connect_change().]\n\nAcked-by: Alan Stern <stern@rowland.harvard.edu>\nCc: Sarah Sharp <sarah.a.sharp@linux.intel.com>\nCc: Xenia Ragiadakou <burzalodowa@gmail.com>\nCc: Julius Werner <jwerner@chromium.org>\nCc: Krzysztof Mazur <krzysiek@podlesie.net>\nCc: Matthias Beyer <mail@beyermatthias.de>\nCc: Dan Williams <dan.j.williams@intel.com>\nCc: Mathias Nyman <mathias.nyman@linux.intel.com>\nCc: Thomas Pugliese <thomas.pugliese@gmail.com>\nSigned-off-by: Shaibal Dutta <shaibal.dutta@broadcom.com>\nSigned-off-by: Zoran Markovic <zoran.markovic@linaro.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nblock: remove WQ_POWER_EFFICIENT from kblockd\n\nblk-mq issues async requests through kblockd. To issue a work request on\na specific CPU, kblockd_schedule_delayed_work_on is used. However, the\nspecific CPU choice may not be honored, if the power_efficient option\nfor workqueues is set. blk-mq requires that we have strict per-cpu\nscheduling, so it wont work properly if kblockd is marked\nPOWER_EFFICIENT and power_efficient is set.\n\nRemove the kblockd WQ_POWER_EFFICIENT flag to prevent this behavior.\nThis essentially reverts part of commit 695588f9454b, which added\nthe WQ_POWER_EFFICIENT marker to kblockd.\n\nSigned-off-by: Matias Bjørling <m@bjorling.me>\nSigned-off-by: Jens Axboe <axboe@fb.com>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nregulator: core: Use the power efficient workqueue for delayed powerdown\n\nThere is no need to use a normal per-CPU workqueue for delayed power downs\nas they're not timing or performance critical and waking up a core for them\nwould defeat some of the point.\n\nSigned-off-by: Mark Brown <broonie@linaro.org>\nReviewed-by: Viresh Kumar <viresh.kumar@linaro.org>\nAcked-by: Liam Girdwood <liam.r.girdwood@intel.com>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nnetfilter: xt_hashlimit: fix proc entry leak in netns destroy path\n\nIn (32263dd1b netfilter: xt_hashlimit: fix namespace destroy path)\nthe hashlimit_net_exit() function is always called right before\nhashlimit_mt_destroy() to release netns data. If you use xt_hashlimit\nwith IPv4 and IPv6 together, this produces the following splat via\nnetconsole in the netns destroy path:\n\n Pid: 9499, comm: kworker/u:0 Tainted: G        WC O 3.2.0-5-netctl-amd64-core2\n Call Trace:\n  [<ffffffff8104708d>] ? warn_slowpath_common+0x78/0x8c\n  [<ffffffff81047139>] ? warn_slowpath_fmt+0x45/0x4a\n  [<ffffffff81144a99>] ? remove_proc_entry+0xd8/0x22e\n  [<ffffffff810ebbaa>] ? kfree+0x5b/0x6c\n  [<ffffffffa043c501>] ? hashlimit_net_exit+0x45/0x8d [xt_hashlimit]\n  [<ffffffff8128ab30>] ? ops_exit_list+0x1c/0x44\n  [<ffffffff8128b28e>] ? cleanup_net+0xf1/0x180\n  [<ffffffff810369fc>] ? should_resched+0x5/0x23\n  [<ffffffff8105b8f9>] ? process_one_work+0x161/0x269\n  [<ffffffff8105aea5>] ? cwq_activate_delayed_work+0x3c/0x48\n  [<ffffffff8105c8c2>] ? worker_thread+0xc2/0x145\n  [<ffffffff8105c800>] ? manage_workers.isra.25+0x15b/0x15b\n  [<ffffffff8105fa01>] ? kthread+0x76/0x7e\n  [<ffffffff813581f4>] ? kernel_thread_helper+0x4/0x10\n  [<ffffffff8105f98b>] ? kthread_worker_fn+0x139/0x139\n  [<ffffffff813581f0>] ? gs_change+0x13/0x13\n ---[ end trace d8c3cc0ad163ef79 ]---\n ------------[ cut here ]------------\n WARNING: at /usr/src/linux-3.2.52/debian/build/source_netctl/fs/proc/generic.c:849\n remove_proc_entry+0x217/0x22e()\n Hardware name:\n remove_proc_entry: removing non-empty directory 'net/ip6t_hashlimit', leaking at least 'IN-REJECT'\n\nThis is due to lack of removal net/ip6t_hashlimit/* entries in\nhashlimit_proc_net_exit(), since only IPv4 entries are deleted. Fix\nit by always removing the IPv4 and IPv6 entries and their parent\ndirectories in the netns destroy path.\n\nSigned-off-by: Sergey Popovich <popovich_sergei@mail.ru>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\nnetfilter: xt_hashlimit: perform garbage collection from process context\n\nxt_hashlimit cannot be used with large hash tables, because garbage\ncollector is run from a timer. If table is really big, its possible\nto hold cpu for more than 500 msec, which is unacceptable.\n\nSwitch to a work queue, and use proper scheduling points to remove\nlatencies spikes.\n\nLater, we also could switch to a smoother garbage collection done\nat lookup time, one bucket at a time...\n\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nCc: Florian Westphal <fw@strlen.de>\nCc: Patrick McHardy <kaber@trash.net>\nReviewed-by: Florian Westphal <fw@strlen.de>\nSigned-off-by: Pablo Neira Ayuso <pablo@netfilter.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/8a2ba8c2e2cc0e7fe0a17ea76eb838318cb2619b"},{"sha":"482d0ebd6f97c065d83b6ac3fe048a5da2e80d88","author":{"name":"Saravana Kannan","email":"1af4e9628f955364122a1d7a403db0e5c0d6f70d@codeaurora.org"},"message":"PM / devfreq: Restart previous governor if new governor fails to start\n\nIf the new governor fails to start, switch back to old governor so that the\ndevfreq state is not left if some weird limbo.\n\nSigned-off-by: Saravana Kannan <skannan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/482d0ebd6f97c065d83b6ac3fe048a5da2e80d88"},{"sha":"ecf13a5c3fff02890d33efc5f344c9f5a6827740","author":{"name":"Joe Maples","email":"d2ff8d83efb8d5aeb4f4e85388fa7e6f5a2df730@frap129.org"},"message":"arm64: Use optimized memcmp\n\nPatch written by Wilco Dijkstra submitted for review to newlib:\nhttps://sourceware.org/ml/newlib/2017/msg00524.html\n\nThis is an optimized memcmp for AArch64.  This is a complete rewrite\nusing a different algorithm.  The previous version split into cases\nwhere both inputs were aligned, the inputs were mutually aligned and\nunaligned using a byte loop.  The new version combines all these cases,\nwhile small inputs of less than 8 bytes are handled separately.\n\nThis allows the main code to be sped up using unaligned loads since\nthere are now at least 8 bytes to be compared.  After the first 8 bytes,\nalign the first input.  This ensures each iteration does at most one\nunaligned access and mutually aligned inputs behave as aligned.\nAfter the main loop, process the last 8 bytes using unaligned accesses.\n\nThis improves performance of (mutually) aligned cases by 25% and\nunaligned by >500% (yes >6 times faster) on large inputs.\n\n2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>\n\n        * bionic/libc/arch-arm64/generic/bionic/memcmp.S (memcmp):\n                Rewrite of optimized memcmp.\n\nGLIBC benchtests/bench-memcmp.c performance comparison for Cortex-A53:\n\nLength    1, alignment  1/ 1:        153%\nLength    1, alignment  1/ 1:        119%\nLength    1, alignment  1/ 1:        154%\nLength    2, alignment  2/ 2:        121%\nLength    2, alignment  2/ 2:        140%\nLength    2, alignment  2/ 2:        121%\nLength    3, alignment  3/ 3:        105%\nLength    3, alignment  3/ 3:        105%\nLength    3, alignment  3/ 3:        105%\nLength    4, alignment  4/ 4:        155%\nLength    4, alignment  4/ 4:        154%\nLength    4, alignment  4/ 4:        161%\nLength    5, alignment  5/ 5:        173%\nLength    5, alignment  5/ 5:        173%\nLength    5, alignment  5/ 5:        173%\nLength    6, alignment  6/ 6:        145%\nLength    6, alignment  6/ 6:        145%\nLength    6, alignment  6/ 6:        145%\nLength    7, alignment  7/ 7:        125%\nLength    7, alignment  7/ 7:        125%\nLength    7, alignment  7/ 7:        125%\nLength    8, alignment  8/ 8:        111%\nLength    8, alignment  8/ 8:        130%\nLength    8, alignment  8/ 8:        124%\nLength    9, alignment  9/ 9:        160%\nLength    9, alignment  9/ 9:        160%\nLength    9, alignment  9/ 9:        150%\nLength   10, alignment 10/10:        170%\nLength   10, alignment 10/10:        137%\nLength   10, alignment 10/10:        150%\nLength   11, alignment 11/11:        160%\nLength   11, alignment 11/11:        160%\nLength   11, alignment 11/11:        160%\nLength   12, alignment 12/12:        146%\nLength   12, alignment 12/12:        168%\nLength   12, alignment 12/12:        156%\nLength   13, alignment 13/13:        167%\nLength   13, alignment 13/13:        167%\nLength   13, alignment 13/13:        173%\nLength   14, alignment 14/14:        167%\nLength   14, alignment 14/14:        168%\nLength   14, alignment 14/14:        168%\nLength   15, alignment 15/15:        168%\nLength   15, alignment 15/15:        173%\nLength   15, alignment 15/15:        173%\nLength    1, alignment  0/ 0:        134%\nLength    1, alignment  0/ 0:        127%\nLength    1, alignment  0/ 0:        119%\nLength    2, alignment  0/ 0:        94%\nLength    2, alignment  0/ 0:        94%\nLength    2, alignment  0/ 0:        106%\nLength    3, alignment  0/ 0:        82%\nLength    3, alignment  0/ 0:        87%\nLength    3, alignment  0/ 0:        82%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        122%\nLength    5, alignment  0/ 0:        127%\nLength    5, alignment  0/ 0:        119%\nLength    5, alignment  0/ 0:        127%\nLength    6, alignment  0/ 0:        103%\nLength    6, alignment  0/ 0:        100%\nLength    6, alignment  0/ 0:        100%\nLength    7, alignment  0/ 0:        82%\nLength    7, alignment  0/ 0:        91%\nLength    7, alignment  0/ 0:        87%\nLength    8, alignment  0/ 0:        111%\nLength    8, alignment  0/ 0:        124%\nLength    8, alignment  0/ 0:        124%\nLength    9, alignment  0/ 0:        136%\nLength    9, alignment  0/ 0:        136%\nLength    9, alignment  0/ 0:        136%\nLength   10, alignment  0/ 0:        136%\nLength   10, alignment  0/ 0:        135%\nLength   10, alignment  0/ 0:        136%\nLength   11, alignment  0/ 0:        136%\nLength   11, alignment  0/ 0:        136%\nLength   11, alignment  0/ 0:        135%\nLength   12, alignment  0/ 0:        136%\nLength   12, alignment  0/ 0:        136%\nLength   12, alignment  0/ 0:        136%\nLength   13, alignment  0/ 0:        135%\nLength   13, alignment  0/ 0:        136%\nLength   13, alignment  0/ 0:        136%\nLength   14, alignment  0/ 0:        136%\nLength   14, alignment  0/ 0:        136%\nLength   14, alignment  0/ 0:        136%\nLength   15, alignment  0/ 0:        136%\nLength   15, alignment  0/ 0:        136%\nLength   15, alignment  0/ 0:        136%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        115%\nLength   32, alignment  0/ 0:        127%\nLength   32, alignment  7/ 2:        395%\nLength   32, alignment  0/ 0:        127%\nLength   32, alignment  0/ 0:        127%\nLength    8, alignment  0/ 0:        111%\nLength    8, alignment  0/ 0:        124%\nLength    8, alignment  0/ 0:        124%\nLength   64, alignment  0/ 0:        128%\nLength   64, alignment  6/ 4:        475%\nLength   64, alignment  0/ 0:        131%\nLength   64, alignment  0/ 0:        134%\nLength   16, alignment  0/ 0:        128%\nLength   16, alignment  0/ 0:        119%\nLength   16, alignment  0/ 0:        128%\nLength  128, alignment  0/ 0:        129%\nLength  128, alignment  5/ 6:        475%\nLength  128, alignment  0/ 0:        130%\nLength  128, alignment  0/ 0:        129%\nLength   32, alignment  0/ 0:        126%\nLength   32, alignment  0/ 0:        126%\nLength   32, alignment  0/ 0:        126%\nLength  256, alignment  0/ 0:        127%\nLength  256, alignment  4/ 8:        545%\nLength  256, alignment  0/ 0:        126%\nLength  256, alignment  0/ 0:        128%\nLength   64, alignment  0/ 0:        171%\nLength   64, alignment  0/ 0:        171%\nLength   64, alignment  0/ 0:        174%\nLength  512, alignment  0/ 0:        126%\nLength  512, alignment  3/10:        585%\nLength  512, alignment  0/ 0:        126%\nLength  512, alignment  0/ 0:        127%\nLength  128, alignment  0/ 0:        129%\nLength  128, alignment  0/ 0:        128%\nLength  128, alignment  0/ 0:        129%\nLength 1024, alignment  0/ 0:        125%\nLength 1024, alignment  2/12:        611%\nLength 1024, alignment  0/ 0:        126%\nLength 1024, alignment  0/ 0:        126%\nLength  256, alignment  0/ 0:        128%\nLength  256, alignment  0/ 0:        127%\nLength  256, alignment  0/ 0:        128%\nLength 2048, alignment  0/ 0:        125%\nLength 2048, alignment  1/14:        625%\nLength 2048, alignment  0/ 0:        125%\nLength 2048, alignment  0/ 0:        125%\nLength  512, alignment  0/ 0:        126%\nLength  512, alignment  0/ 0:        127%\nLength  512, alignment  0/ 0:        127%\nLength 4096, alignment  0/ 0:        125%\nLength 4096, alignment  0/16:        125%\nLength 4096, alignment  0/ 0:        125%\nLength 4096, alignment  0/ 0:        125%\nLength 1024, alignment  0/ 0:        126%\nLength 1024, alignment  0/ 0:        126%\nLength 1024, alignment  0/ 0:        126%\nLength 8192, alignment  0/ 0:        125%\nLength 8192, alignment 63/18:        636%\nLength 8192, alignment  0/ 0:        125%\nLength 8192, alignment  0/ 0:        125%\nLength   16, alignment  1/ 2:        317%\nLength   16, alignment  1/ 2:        317%\nLength   16, alignment  1/ 2:        317%\nLength   32, alignment  2/ 4:        395%\nLength   32, alignment  2/ 4:        395%\nLength   32, alignment  2/ 4:        398%\nLength   64, alignment  3/ 6:        475%\nLength   64, alignment  3/ 6:        475%\nLength   64, alignment  3/ 6:        477%\nLength  128, alignment  4/ 8:        479%\nLength  128, alignment  4/ 8:        479%\nLength  128, alignment  4/ 8:        479%\nLength  256, alignment  5/10:        543%\nLength  256, alignment  5/10:        539%\nLength  256, alignment  5/10:        543%\nLength  512, alignment  6/12:        585%\nLength  512, alignment  6/12:        585%\nLength  512, alignment  6/12:        585%\nLength 1024, alignment  7/14:        611%\nLength 1024, alignment  7/14:        611%\nLength 1024, alignment  7/14:        611%\n\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/ecf13a5c3fff02890d33efc5f344c9f5a6827740"},{"sha":"360aa6bfba039234bad7835f4abb4dcde8c271a7","author":{"name":"Joe Maples","email":"d2ff8d83efb8d5aeb4f4e85388fa7e6f5a2df730@frap129.org"},"message":"arm64: Import optimized strrchr from newlib\n\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/360aa6bfba039234bad7835f4abb4dcde8c271a7"},{"sha":"89db61bd0b311476a753cc4f3095d787082711ab","author":{"name":"Joe Maples","email":"d2ff8d83efb8d5aeb4f4e85388fa7e6f5a2df730@frap129.org"},"message":"arm64: strcmp: Align to cache and preload\n\nAdapted from https://github.com/AOSPA/android_bionic/commit/1fb9f9b675f08c2114802247a4b5b12b25e0e11a\n\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/89db61bd0b311476a753cc4f3095d787082711ab"},{"sha":"0bbae149a9cc1157232ccf0fef22d31ff71b5e01","author":{"name":"franciscofranco","email":"0ac3193ff3d7b4e68ae404d59f776924e2be9ac9@gmail.com"},"message":"msm: Use interruptible wait to not affect load average\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/0bbae149a9cc1157232ccf0fef22d31ff71b5e01"},{"sha":"8b07c0c842192a3732498448a1e7cf295f51df3a","author":{"name":"Steve Kondik","email":"b19b07074df4531cbeb6a055e4530af2155d6cfd@chemlab.org"},"message":"msm: Fix high load average from uninterruptible waits\n\n * The load average on all MSMs is currently hovering at around 14\n   due to uninterruptible waits in various places.\n * Convert these waits to interruptible waits to bring the load\n   back down to zero at idle.\n\nChange-Id: I14bad4af135b1594e235e2252cb484cb34d91054","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/8b07c0c842192a3732498448a1e7cf295f51df3a"},{"sha":"f021fce7443c63968cbabcb11d4e662b9a83411b","author":{"name":"Sultanxda","email":"2a26fc11866c4c85a6bb605251817c00bbab3213@gmail.com"},"message":"qcom-cpufreq: Use CLKFLAG_NO_RATE_CACHE\n\nAfter a CPU comes online, clk_set_rate() silently refuses to change said CPU's\nfrequency to the frequency it was running at before going offline (since it\nthinks that we are setting the same frequency redundantly). By default, each CPU\nruns at its minimum frequency when coming online, so if the governor decides to\nkeep a CPU running at the frequency it used before going offline, then\nclk_set_rate() will ignore the frequency change request and the CPU will stay\nstuck running at its minimum frequency for a potentially long period of time\n(i.e. until the governor decides to change the frequency to something\ndifferent). This can cause severe lag when a device is woken up from deep sleep.\n\nIn order to prevent a CPU from being stuck at its default frequency for a\npotentially long period of time, set the CLKFLAG_NO_RATE_CACHE flag so that the\ngovernor's frequency change requests will always be honored right after a CPU\ncomes online.\n\nNote that this requires a CPU's component clocks to be using CLKFLAG_NO_RATE_CACHE\nas well in order to fix the issue.\n\nSigned-off-by: Sultanxda <sultanxda@gmail.com>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/f021fce7443c63968cbabcb11d4e662b9a83411b"},{"sha":"ec25d3c2cebf7576a3efda794904d7eedd6791d0","author":{"name":"Nathan Chancellor","email":"b2febe722de126fdca89e2e24ca48c984e7dc9fc@gmail.com"},"message":"clk: qcom: clock-cpu-8994: Use CLKFLAG_NO_RATE_CACHE for a57_hf_mux_v2\n\nInspired by https://github.com/sultanxda/android_kernel_oneplus_msm8996/commit/fe511bd5e3c522d79a50ae55bc2111ae5098c585\n\nSigned-off-by: Nathan Chancellor <natechancellor@gmail.com>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/ec25d3c2cebf7576a3efda794904d7eedd6791d0"},{"sha":"0362994e63b103916c4b2027e2833a836155d8db","author":{"name":"flar2","email":"54baee86d9719f38bf07b54ac189c5126488f211@gmail.com"},"message":"mdss_fb: backlight dimmer option\n\nAn alternate backlight algorithm that is slightly dimmer than stock and has more gradual transition","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/0362994e63b103916c4b2027e2833a836155d8db"},{"sha":"d7c82a63b98776a0f22db8a6cea90ef3b00ef8f6","author":{"name":"Sultanxda","email":"2a26fc11866c4c85a6bb605251817c00bbab3213@gmail.com"},"message":"lib: Don't enable DEBUG_BUGVERBOSE by default\n\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/d7c82a63b98776a0f22db8a6cea90ef3b00ef8f6"},{"sha":"230baaf1d1bfbca4da46a411be0fd677ef1d4899","author":{"name":"Will Deacon","email":"b2e33b86f3f248a395aadfb8ef1908ac314f4233@arm.com"},"message":"arm64: lib: improve copy_page to deal with 128 bytes at a time\n\nWe want to avoid lots of different copy_page implementations, settling\nfor something that is \"good enough\" everywhere and hopefully easy to\nunderstand and maintain whilst we're at it.\n\nThis patch reworks our copy_page implementation based on discussions\nwith Cavium on the list and benchmarking on Cortex-A processors so that:\n\n  - The loop is unrolled to copy 128 bytes per iteration\n\n  - The reads are offset so that we read from the next 128-byte block\n    in the same iteration that we store the previous block\n\n  - Explicit prefetch instructions are removed for now, since they hurt\n    performance on CPUs with hardware prefetching\n\n  - The loop exit condition is calculated at the start of the loop\n\nChange-Id: I0d9f3bbe4efa2751f41432a3b4b299fbb0e494be\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nTested-by: Andrew Pinski <apinski@cavium.com>\nSigned-off-by: Catalin Marinas <catalin.marinas@arm.com>\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/230baaf1d1bfbca4da46a411be0fd677ef1d4899"},{"sha":"a4e82602d91a16c6d45b504f6e3f2cc350de5fd4","author":{"name":"Junxiao Bi","email":"0fbee7a611321671a74f8b0002ae086f6befb26d@oracle.com"},"message":"writeback: fix race that cause writeback hung\n\nThere is a race between mark inode dirty and writeback thread, see the\nfollowing scenario.  In this case, writeback thread will not run though\nthere is dirty_io.\n\n__mark_inode_dirty()                                          bdi_writeback_workfn()\n\t...                                                       \t...\n\tspin_lock(&inode->i_lock);\n\t...\n\tif (bdi_cap_writeback_dirty(bdi)) {\n\t    <<< assume wb has dirty_io, so wakeup_bdi is false.\n\t    <<< the following inode_dirty also have wakeup_bdi false.\n\t    if (!wb_has_dirty_io(&bdi->wb))\n\t\t    wakeup_bdi = true;\n\t}\n\tspin_unlock(&inode->i_lock);\n\t                                                            <<< assume last dirty_io is removed here.\n\t                                                            pages_written = wb_do_writeback(wb);\n\t                                                            ...\n\t                                                            <<< work_list empty and wb has no dirty_io,\n\t                                                            <<< delayed_work will not be queued.\n\t                                                            if (!list_empty(&bdi->work_list) ||\n\t                                                                (wb_has_dirty_io(wb) && dirty_writeback_interval))\n\t                                                                queue_delayed_work(bdi_wq, &wb->dwork,\n\t                                                                    msecs_to_jiffies(dirty_writeback_interval * 10));\n\tspin_lock(&bdi->wb.list_lock);\n\tinode->dirtied_when = jiffies;\n\t<<< new dirty_io is added.\n\tlist_move(&inode->i_wb_list, &bdi->wb.b_dirty);\n\tspin_unlock(&bdi->wb.list_lock);\n\n\t<<< though there is dirty_io, but wakeup_bdi is false,\n\t<<< so writeback thread will not be waked up and\n\t<<< the new dirty_io will not be flushed.\n\tif (wakeup_bdi)\n\t    bdi_wakeup_thread_delayed(bdi);\n\nWriteback will run until there is a new flush work queued.  This may cause\na lot of dirty pages stay in memory for a long time.\n\nSigned-off-by: Junxiao Bi <junxiao.bi@oracle.com>\nReviewed-by: Jan Kara <jack@suse.cz>\nCc: Fengguang Wu <fengguang.wu@intel.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/a4e82602d91a16c6d45b504f6e3f2cc350de5fd4"},{"sha":"25151c2b181464c037aded23ae063593e0fe5cba","author":{"name":"ramgear","email":"f69620e59be9d495099daf98e24e66f83939f142@gmail.com"},"message":"int_sqrt: correction square root algo with naming\n\nSigned-off-by: engstk <eng.stk@sapo.pt>\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/25151c2b181464c037aded23ae063593e0fe5cba"},{"sha":"ee354b981e83c9e0085c5f86ec287f1df30da3e2","author":{"name":"FlyFrog","email":"f69620e59be9d495099daf98e24e66f83939f142@gmail.com"},"message":"int_sqrt: Improve 3x faster integer sqrt.\n\nResult on 10,000,000 call.\nOld:\nsqrt(12345689) = 3513\nreal\t0m0.768s\nuser\t0m0.760s\nsys\t0m0.004s\n\nNew:\nsqrt(12345689) = 3513\nreal\t0m0.222s\nuser\t0m0.224s\nsys\t0m0.000s\n\nSigned-off-by: engstk <eng.stk@sapo.pt>\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/ee354b981e83c9e0085c5f86ec287f1df30da3e2"},{"sha":"28f1d4169e8c838fb2f825b857677e5f6ec70158","author":{"name":"Stratos Karafotis","email":"06525debe962626424a3d9e0fbdc3c01714b569b@semaphore.gr"},"message":"cpufreq: Introduce new relation for freq selection\n\nIntroduce CPUFREQ_RELATION_C for frequency selection.\nIt selects the frequency with the minimum euclidean distance to target.\nIn case of equal distance between 2 frequencies, it will select the\ngreater frequency.\n\nSigned-off-by: Stratos Karafotis <stratosk@semaphore.gr>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>","distinct":true,"url":"https://api.github.com/repos/linckandrea/android_kernel_nextbit_msm8992/commits/28f1d4169e8c838fb2f825b857677e5f6ec70158"}]}
{"actor":{"display_login":"linckandrea"}}