{"push_id":1336754807,"size":339,"distinct_size":339,"ref":"refs/heads/n7.0","head":"0e8ea19063012507c152a93afc27c18d32ad7ca5","before":"76d746ef04ca2836cac196d0f86c47aad0e38fe9","commits":[{"sha":"e8b0d4d5d1a941f0240b6f7bdf4afb2b06c6619e","author":{"name":"Francisco Franco","email":"0ac3193ff3d7b4e68ae404d59f776924e2be9ac9@gmail.com"},"message":".gitignore\n\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/e8b0d4d5d1a941f0240b6f7bdf4afb2b06c6619e"},{"sha":"6661e201a22df427f4e31c5fb8d91803a3151a4f","author":{"name":"franciscofranco","email":"0ac3193ff3d7b4e68ae404d59f776924e2be9ac9@gmail.com"},"message":"Makefile: add aarch64 CC and subarch\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/6661e201a22df427f4e31c5fb8d91803a3151a4f"},{"sha":"cdc760eee46e882bbb16248a5acddb3f3500a2f6","author":{"name":"franciscofranco","email":"0ac3193ff3d7b4e68ae404d59f776924e2be9ac9@gmail.com"},"message":"Makefile: build for Cortex A57\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/cdc760eee46e882bbb16248a5acddb3f3500a2f6"},{"sha":"d5a4e40165aea73242fdc4a4a9f75cb20c02c2be","author":{"name":"franciscofranco","email":"0ac3193ff3d7b4e68ae404d59f776924e2be9ac9@gmail.com"},"message":"Makefile: use big.Little a53/a57 flag\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/d5a4e40165aea73242fdc4a4a9f75cb20c02c2be"},{"sha":"d2d413f1680f7349e78f3cc5e1e0afc12284daf8","author":{"name":"Francisco Franco","email":"0ac3193ff3d7b4e68ae404d59f776924e2be9ac9@gmail.com"},"message":"qcom: mpm: use interruptible wait to reduce load avg\n\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/d2d413f1680f7349e78f3cc5e1e0afc12284daf8"},{"sha":"3deeba1b5d1ab75b859f373f23d8fd7e894b6c40","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/kimjisoo/kernel_lge_bullhead/commits/3deeba1b5d1ab75b859f373f23d8fd7e894b6c40"},{"sha":"f2db11730d1a029d0685c6096c099ffe3046b71c","author":{"name":"franciscofranco","email":"0ac3193ff3d7b4e68ae404d59f776924e2be9ac9@gmail.com"},"message":"qcom: msm-core: uninterruptible wait - you can kiss my arse goodbye\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/f2db11730d1a029d0685c6096c099ffe3046b71c"},{"sha":"69e7bd36ad11b991c2e5bde001de5dad90c76c4f","author":{"name":"Srivatsa Vaddagiri","email":"4ebad9f61da157750c36beb638e9bb3384814e5d@codeaurora.org"},"message":"sched: report loads greater than 100% only during load alert notifications\n\nThe busy time of CPUs is adjusted during task migrations. This can\nresult in reporting the load greater than 100% to the governor and\ncauses direct jumps to the higher frequencies during the intra cluster\nmigrations. Hence clip the load to 100% during the load reporting at\nthe end of the window. The load is not clipped for load alert notifications\nwhich allows ramping up the frequency faster for inter cluster migrations\nand heavy task wakeup scenarios.\n\nChange-Id: I7347260aa476287ecfc706d4dd0877f4b75a1089\nSigned-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>\nSigned-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: prevent task migration while governor queries CPUs' load\n\nAt present, governor retrieves each CPUs' load sequentially.  In this\nway, there is chance of race between governor's CPU load query and task\nmigration that would result in reporting of lesser CPUs' load than actual.\n\nFor example,\nCPU0 load = 30%.  CPU1 load = 50%.\nGovernor                               Load balancer\n- sched_get_busy(cpu 0) = 30%.\n                                       - A task 'p' migrated from CPU 1 to\n                                         CPU 0.  p->ravg->prev_window = 50.\n                                         Now CPU 0's load = 80%,\n                                         CPU 1's load = 0%.\n- sched_get_busy(cpu 1) = 0%\n  50% of load from CPU 1 to 0 never\n  accounted.\n\nFix such issues by introducing a new API sched_get_cpus_busy() which\nmakes for governor to be able to get set of CPUs' load.  The loads set\ninternally constructed with blocking load balancer to ensure migration\ncannot occur in the meantime.\n\nChange-Id: I4fa4dd1195eff26aa603829aca2054871521495e\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Export sched_setscheduler_nocheck()\n\nExport sched_setscheduler_nocheck() so that external kernel modules\ncan use it.\n\nChange-Id: Ib50f537f5aef50c365ba63fb8ffce05bc1c7c431\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: don't inherit initial task load from the parent\n\nchild task is not supposed to inherit initial task load attribute\nfrom the parent. Reset the child's init_load_pct attribute during\nfork.\n\nChange-Id: I458b121f10f996fda364e97b51aaaf6c345c1dbb\nSigned-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: don't inflate the task load when the CPU max freq is restricted\n\nWhen the CPU max freq is restricted and the CPU is running at the\nmax freq, the task load is inflated by max_possible_freq/max_freq\nfactor. This results in tasks migrating early to the better capacity\nCPUs which makes things worse if the frequency restriction is due\nto the thermal condition.\n\nChange-Id: Ie0ea405d7005764a6fb852914e88cf97102c138a\nSigned-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Add load based placement for RT tasks\n\nCurrently RT tasks prefer to go to the lowest power CPU in the\nsystem. This can end up causing contention on the lowest power\nCPU. Instead ensure that RT tasks end up on the lowest power\ncluster and the least loaded CPU within that cluster.\n\nChange-Id: I363b3d43236924962c67d2fb5d3d2d09800cd994\nSigned-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: initialize frequency domain cpumask\n\nIt's possible select_best_cpu() gets called before the first cpufreq\nnotifier call.  In such scenario select_best_cpu() can hang forever by\nnot clearing search_cpus.\n\nInitialize frequency domain cpumask with the CPU of rq to avoid such\nscenario.\n\nCRs-fixed: 931349\nChange-Id: If8d31c5477efe61ad7c6b336ba9e27ca6f556b63\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Add a check for cpu unbound deferrable timers\n\nAdd a check for cpu unbound deferrable timer expiry and raise\nsoftirq for handling the expired timers so that the CPU can\nprocess the cpu unbound deferrable times as early as possible\nwhen a cpu tries to enter/exit idle loop.\n\nChange-Id: Ieffa74fa22a4d25493f5590b5ac1e0d784fcbbad\nSigned-off-by: Prasad Sodagudi <psodagud@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: optimize power cost/freq estimation\n\nAt present, calculation of frequency estimation and power cost at the\nprojected frequency for a given task takes big portion of function\nselect_best_cpu() latency.  This is because function power_cost()\ncalculates and converts the task's demand to projected frequency to\nestimated power cost from select_best_cpu() path.\n\nIntroduce pre-calculated power cost and freqeuency per demand table to use\npre-calculated power cost rather than calculating these on the fly to\noptimize the function power_cost().  This change is solely for optimization\npurpose.\n\nCRs-fixed: 849655\nChange-Id: I0972a0b99dad1115cd41fb85785e5afae7138fd1\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: optimize select_best_cpu() with same power cost CPU mask\n\nAt present, the function select_best_cpu() has to continue to iterate the\nsearch CPUs for the possibility of finding a more power efficient CPU even\nif the best CPU based on cstate already found.  We can avoid this\nunnecessary search if it is known ahead of time that CPUs in a cluster\nhave the same power efficiency.\n\nIntroduce kernel parameter 'sched_same_power_cost_cpus' to inform the\nCPU mask that has an identical power costs and optimize the 'for' loop of\nselect_best_cpu() by ruling out CPUs that cannot be more power efficient\nthan cstate based best CPU with the same power cost CPU mask.\n\nCRs-fixed: 849655\nChange-Id: I9d2e7f560282a914fd0373aac6714353b9d1e36c\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\n\nConflicts:\n\tkernel/sched/fair.c\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: fair: Return current CPU if search_cpu(s) is empty\n\nIf a task is affined to CPUs that are offline, select_best_cpu\nand best_small_task_cpu will attempt to select a cpu from an\nempty mask, resulting in corruption/crashes. Fix this by\nreturning the current CPU if search_cpu(s_ is empty.\n\nChange-Id: Ib56a8a2513b0ae7ec8414b5ed3134e88b24dd2ac\nSigned-off-by: Vikram Mulukutla <markivx@codeaurora.org>\n\nConflicts:\n\tkernel/sched/fair.c\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Force sleep on consecutive sched_yields\n\nIf a task sched_yields to itself continuously, force the task to\nsleep in sched_yield. This will lower the CPU load of this task\nthereby lowering the cpu frequency and improving power.\n\nAdded a stat variable to track how many times we sleep due these\nconsecutive sched_yields. Also added sysctl knobs to control the number\nof consecutive sched_yields before which the sleep kicks in and the\nduration fo the sleep in us.\n\nBug 1424617\n\nChange-Id: Ie92412b8b900365816e17237fcbd0aac6e9c94ce\nSigned-off-by: Sai Gurrappadi <sgurrappadi@nvidia.com>\nReviewed-on: http://git-master/r/358455\nReviewed-by: Wen Yi <wyi@nvidia.com>\nReviewed-by: Peter Zu <pzu@nvidia.com>\nGVS: Gerrit_Virtual_Submit\nReviewed-by: Diwakar Tundlam <dtundlam@nvidia.com>\n\nConflicts:\n\n\tkernel/sched/core.c\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nIKSWM-5880:sched/rt: really force updates rq clock in pick_next_task_rt\n\n In the original patch of \"sched: Fix inaccurate accounting for real-time\n task\", it will skip the update_rq_clock() if skip_clock_update is zero/-1.\n\n Fix this bug to make the original patch really force updates rq clock,\n then the realtime task's exec_start will be accurate.\n\nChange-Id: I235917648f1631f9f037fa12e8322488dcfa08a2\nSigned-off-by: Jiangli Yuan <jlyuan@motorola.com>\nReviewed-on: http://gerrit.mot.com/788261\nSME-Granted: SME Approvals Granted\nSLTApproved: Slta Waiver <sltawvr@motorola.com>\nTested-by: Jira Key <jirakey@motorola.com>\nReviewed-by: Zhi-Ming Yuan <a14194@motorola.com>\nReviewed-by: Yi-Wei Zhao <gbjc64@motorola.com>\nReviewed-by: Russell Knize <rknize@motorola.com>\nReviewed-by: Christopher Fries <cfries@motorola.com>\nSubmit-Approved: Jira Key <jirakey@motorola.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/fair: Stop searching for tasks in newidle balance if there are runnable tasks\n\nIt was found that when running some workloads (such as AIM7) on large\nsystems with many cores, CPUs do not remain idle for long. Thus, tasks\ncan wake/get enqueued while doing idle balancing.\n\nIn this patch, while traversing the domains in idle balance, in\naddition to checking for pulled_task, we add an extra check for\nthis_rq->nr_running for determining if we should stop searching for\ntasks to pull. If there are runnable tasks on this rq, then we will\nstop traversing the domains. This reduces the chance that idle balance\ndelays a task from running.\n\nThis patch resulted in approximately a 6% performance improvement when\nrunning a Java Server workload on an 8 socket machine.\n\nSigned-off-by: Jason Low <jason.low2@hp.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: daniel.lezcano@linaro.org\nCc: alex.shi@linaro.org\nCc: preeti@linux.vnet.ibm.com\nCc: efault@gmx.de\nCc: vincent.guittot@linaro.org\nCc: morten.rasmussen@arm.com\nCc: aswin@hp.com\nCc: chegu_vinod@hp.com\nLink: http://lkml.kernel.org/r/1398303035-18255-4-git-send-email-jason.low2@hp.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/balancing: Reduce the rate of needless idle load balancing\n\nThe current no_hz idle load balancer do load balancing for *all* idle cpus,\neven though the time due to load balance for a particular\nidle cpu could be still a while in the future.  This introduces a much\nhigher load balancing rate than what is necessary.  The patch\nchanges the behavior by only doing idle load balancing on\nbehalf of an idle cpu only when it is due for load balancing.\n\nOn SGI's systems with over 3000 cores, the cpu responsible for idle balancing\ngot overwhelmed with idle balancing, and introduces a lot of OS noise\nto workloads.  This patch fixes the issue.\n\nSigned-off-by: Tim Chen <tim.c.chen@linux.intel.com>\nAcked-by: Russ Anderson <rja@sgi.com>\nReviewed-by: Rik van Riel <riel@redhat.com>\nReviewed-by: Jason Low <jason.low2@hp.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Len Brown <len.brown@intel.com>\nCc: Dimitri Sivanich <sivanich@sgi.com>\nCc: Hedi Berriche <hedi@sgi.com>\nCc: Andi Kleen <andi@firstfloor.org>\nCc: MichelLespinasse <walken@google.com>\nCc: Peter Hurley <peter@hurleysoftware.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/1400621967.2970.280.camel@schen9-DESK\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Queue RT tasks to head when prio drops\n\ncommit 81a44c5441d7f7d2c3dc9105f4d65ad0d5818617 upstream.\n\nThe following scenario does not work correctly:\n\nRunqueue of CPUx contains two runnable and pinned tasks:\n\n T1: SCHED_FIFO, prio 80\n T2: SCHED_FIFO, prio 80\n\nT1 is on the cpu and executes the following syscalls (classic priority\nceiling scenario):\n\n sys_sched_setscheduler(pid(T1), SCHED_FIFO, .prio = 90);\n ...\n sys_sched_setscheduler(pid(T1), SCHED_FIFO, .prio = 80);\n ...\n\nNow T1 gets preempted by T3 (SCHED_FIFO, prio 95). After T3 goes back\nto sleep the scheduler picks T2. Surprise!\n\nThe same happens w/o actual preemption when T1 is forced into the\nscheduler due to a sporadic NEED_RESCHED event. The scheduler invokes\npick_next_task() which returns T2. So T1 gets preempted and scheduled\nout.\n\nThis happens because sched_setscheduler() dequeues T1 from the prio 90\nlist and then enqueues it on the tail of the prio 80 list behind T2.\nThis violates the POSIX spec and surprises user space which relies on\nthe guarantee that SCHED_FIFO tasks are not scheduled out unless they\ngive the CPU up voluntarily or are preempted by a higher priority\ntask. In the latter case the preempted task must get back on the CPU\nafter the preempting task schedules out again.\n\nWe fixed a similar issue already in commit 60db48c (sched: Queue a\ndeboosted task to the head of the RT prio queue). The same treatment\nis necessary for sched_setscheduler(). So enqueue to head of the prio\nbucket list if the priority of the task is lowered.\n\nIt might be possible that existing user space relies on the current\nbehaviour, but it can be considered highly unlikely due to the corner\ncase nature of the application scenario.\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/1391803122-4425-6-git-send-email-bigeasy@linutronix.de\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Zefan Li <lizefan@huawei.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Fix RLIMIT_RTTIME when PI-boosting to RT\n\ncommit 746db9443ea57fd9c059f62c4bfbf41cf224fe13 upstream.\n\nWhen non-realtime tasks get priority-inheritance boosted to a realtime\nscheduling class, RLIMIT_RTTIME starts to apply to them. However, the\ncounter used for checking this (the same one used for SCHED_RR\ntimeslices) was not getting reset. This meant that tasks running with a\nnon-realtime scheduling class which are repeatedly boosted to a realtime\none, but never block while they are running realtime, eventually hit the\ntimeout without ever running for a time over the limit. This patch\nresets the realtime timeslice counter when un-PI-boosting from an RT to\na non-RT scheduling class.\n\nI have some test code with two threads and a shared PTHREAD_PRIO_INHERIT\nmutex which induces priority boosting and spins while boosted that gets\nkilled by a SIGXCPU on non-fixed kernels but doesn't with this patch\napplied. It happens much faster with a CONFIG_PREEMPT_RT kernel, and\ndoes happen eventually with PREEMPT_VOLUNTARY kernels.\n\nSigned-off-by: Brian Silverman <brian@peloton-tech.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: austin@peloton-tech.com\nLink: http://lkml.kernel.org/r/1424305436-6716-1-git-send-email-brian@peloton-tech.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n[lizf: Backported to 3.4: adjust contest]\nSigned-off-by: Zefan Li <lizefan@huawei.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/core: Fix an SMP ordering race in try_to_wake_up() vs. schedule()\n\nOleg noticed that its possible to falsely observe p->on_cpu == 0 such\nthat we'll prematurely continue with the wakeup and effectively run p on\ntwo CPUs at the same time.\n\nEven though the overlap is very limited; the task is in the middle of\nbeing scheduled out; it could still result in corruption of the\nscheduler data structures.\n\n        CPU0                            CPU1\n\n        set_current_state(...)\n\n        <preempt_schedule>\n          context_switch(X, Y)\n            prepare_lock_switch(Y)\n              Y->on_cpu = 1;\n            finish_lock_switch(X)\n              store_release(X->on_cpu, 0);\n\n                                        try_to_wake_up(X)\n                                          LOCK(p->pi_lock);\n\n                                          t = X->on_cpu; // 0\n\n          context_switch(Y, X)\n            prepare_lock_switch(X)\n              X->on_cpu = 1;\n            finish_lock_switch(Y)\n              store_release(Y->on_cpu, 0);\n        </preempt_schedule>\n\n        schedule();\n          deactivate_task(X);\n          X->on_rq = 0;\n\n                                          if (X->on_rq) // false\n\n                                          if (t) while (X->on_cpu)\n                                            cpu_relax();\n\n          context_switch(X, ..)\n            finish_lock_switch(X)\n              store_release(X->on_cpu, 0);\n\nAvoid the load of X->on_cpu being hoisted over the X->on_rq load.\n\nReported-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Mike Galbraith <efault@gmx.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Optimize task_sched_runtime()\n\nLarge multi-threaded apps like to hit this using do_sys_times() and\nthen queue up on the rq->lock.\n\nAvoid when possible.\n\nLarry reported ~20% performance increase his test case.\n\nReported-by: Larry Woodman <lwoodman@redhat.com>\nSuggested-by: Paul Turner <pjt@google.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Andrew Morton <akpm@linux-foundation.org>\nLink: http://lkml.kernel.org/r/20131111172925.GG26898@twins.programming.kicks-ass.net\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/fair: Avoid integer overflow\n\nsa->runnable_avg_sum is of type u32 but after shifting it by NICE_0_SHIFT\nbits it is promoted to u64.  This of course makes no sense, since the\nresult will never be more then 32-bit long.  Casting sa->runnable_avg_sum\nto u64 before it is shifted, fixes this problem.\n\nReviewed-by: Ben Segall <bsegall@google.com>\nSigned-off-by: Michal Nazarewicz <mina86@mina86.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/1384112521-25177-1-git-send-email-mpn@google.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Fix exec_start/task_hot on migrated tasks\n\ntask_hot checks exec_start on any runnable task, but if it has been\nmigrated since the it last ran, then exec_start is a clock_task from\nanother cpu. If the old cpu's clock_task was sufficiently far ahead of\nthis cpu's then the task will not be considered for another migration\nuntil it has run. Instead reset exec_start whenever a task is migrated,\nsince it is presumably no longer hot anyway.\n\nSigned-off-by: Ben Segall <bsegall@google.com>\n[ Made it compile. ]\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/20140515225920.7179.13924.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: s/do_each_thread/for_each_process_thread/ in core.c\n\nChange kernel/sched/core.c to use for_each_process_thread().\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: Mike Galbraith <umgwanakikbuti@gmail.com>\nCc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>\nCc: Frank Mayhar <fmayhar@google.com>\nCc: Frederic Weisbecker <fweisbec@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Sanjay Rao <srao@redhat.com>\nCc: Larry Woodman <lwoodman@redhat.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/20140813191953.GA19315@redhat.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: s/do_each_thread/for_each_process_thread/ in debug.c\n\nChange kernel/sched/debug.c to use for_each_process_thread().\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: Mike Galbraith <umgwanakikbuti@gmail.com>\nCc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>\nCc: Frank Mayhar <fmayhar@google.com>\nCc: Frederic Weisbecker <fweisbec@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Sanjay Rao <srao@redhat.com>\nCc: Larry Woodman <lwoodman@redhat.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/20140813191956.GA19324@redhat.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Change thread_group_cputime() to use for_each_thread()\n\nChange thread_group_cputime() to use for_each_thread() instead of\nbuggy while_each_thread(). This also makes the pid_alive() check\nunnecessary.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: Mike Galbraith <umgwanakikbuti@gmail.com>\nCc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>\nCc: Frank Mayhar <fmayhar@google.com>\nCc: Frederic Weisbecker <fweisbec@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Sanjay Rao <srao@redhat.com>\nCc: Larry Woodman <lwoodman@redhat.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/20140813192000.GA19327@redhat.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Change autogroup_move_group() to use for_each_thread()\n\nChange autogroup_move_group() to use for_each_thread() instead of\nbuggy while_each_thread().\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: Mike Galbraith <umgwanakikbuti@gmail.com>\nCc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>\nCc: Frank Mayhar <fmayhar@google.com>\nCc: Frederic Weisbecker <fweisbec@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Sanjay Rao <srao@redhat.com>\nCc: Larry Woodman <lwoodman@redhat.com>\nCc: Rik van Riel <riel@redhat.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/20140813192003.GA19334@redhat.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/rt: Reduce rq lock contention by eliminating locking of non-feasible target\n\nThis patch adds checks that prevens futile attempts to move rt tasks\nto a CPU with active tasks of equal or higher priority.\n\nThis reduces run queue lock contention and improves the performance of\na well known OLTP benchmark by 0.7%.\n\nSigned-off-by: Tim Chen <tim.c.chen@linux.intel.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Shawn Bohrer <sbohrer@rgmadvisors.com>\nCc: Suruchi Kadu <suruchi.a.kadu@intel.com>\nCc: Doug Nelson<doug.nelson@intel.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/1421430374.2399.27.camel@schen9-desk2.jf.intel.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: avoid unnecessary HMP scheduler stat re-accounting\n\nWhen sched_entity's runnable average changes, before and after, we\ndecrease and increase HMP scheduler's statistics of the sched_entity to\ntake into account of updated runnable average.  In that period, however,\nother CPUs would see that the runnable average updating CPU's load as\nless than actual.  This is suboptimal and can lead improper task placement\nand load balance decision.\n\nWe can avoid such situation at least with window based load tracking as\nsched_entity's load average which is for PELT won't affect to HMP\nscheduler's load tracking statistics.  Thus fix to update HMP statistics\nonly when HMP scheduler uses PELT based load statistics.\n\nChange-Id: I9eb615c248c79daab5d22cbb4a994f94be6a968d\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: fix incorrect wait time and wait count statistics\n\nScheduler at present resets task's wait start timestamp when task migrates\nto another rq.  This misleads scheduler itself into reporting less wait\ntime than actual by omitting time spent for waiting prior to migration and\nalso more wait count than actual by counting migration as wait end event\nwhich can be seen by trace or /proc/<pid>/sched with CONFIG_SCHEDSTATS=y.\n\nCarry forward migrating task's wait time prior to migration and don't count\nmigration as a wait-end event to fix such statistics error.\n\nChange-Id: I0f6badf8072fc37826e4476ac2d1195e82b65bf1\nSigned-off-by: Joonwoo Park <joonwoop@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/core: Remove false-positive warning from wake_up_process()\n\ncommit 119d6f6a3be8b424b200dcee56e74484d5445f7e upstream.\n\nBecause wakeups can (fundamentally) be late, a task might not be in\nthe expected state. Therefore testing against a task's state is racy,\nand can yield false positives.\n\nSigned-off-by: Sasha Levin <sasha.levin@oracle.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nAcked-by: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Mike Galbraith <efault@gmx.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: oleg@redhat.com\nFixes: 9067ac85d533 (\"wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task\")\nLink: http://lkml.kernel.org/r/1448933660-23082-1-git-send-email-sasha.levin@oracle.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Provide a wake up API without sending freq notifications\n\nEach time a task wakes up, scheduler evaluates its load and notifies\ngovernor if the resulting frequency of destination CPU is larger than\na threshold. However, some governor wakes up a separate task that\nhandles frequency change, which again calls wake_up_process().\n\nThis is dangerous because if the task being woken up meets the\nthreshold and ends up being moved around, there is a potential for\nendless recursive notifications.\n\nIntroduce a new API for waking up a task without triggering\nfrequency notification.\n\nChange-Id: I24261af81b7dc410c7fb01eaa90920b8d66fbd2a\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/fair: Implement fast idling of CPUs when the system is partially loaded\n\nWhen a system is lightly loaded (i.e. no more than 1 job per cpu),\nattempt to pull job to a cpu before putting it to idle is unnecessary and\ncan be skipped.  This patch adds an indicator so the scheduler can know\nwhen there's no more than 1 active job is on any CPU in the system to\nskip needless job pulls.\n\nOn a 4 socket machine with a request/response kind of workload from\nclients, we saw about 0.13 msec delay when we go through a full load\nbalance to try pull job from all the other cpus.  While 0.1 msec was\nspent on processing the request and generating a response, the 0.13 msec\nload balance overhead was actually more than the actual work being done.\nThis overhead can be skipped much of the time for lightly loaded systems.\n\nWith this patch, we tested with a netperf request/response workload that\nhas the server busy with half the cpus in a 4 socket system.  We found\nthe patch eliminated 75% of the load balance attempts before idling a cpu.\n\nThe overhead of setting/clearing the indicator is low as we already gather\nthe necessary info while we call add_nr_running() and update_sd_lb_stats.()\nWe switch to full load balance load immediately if any cpu got more than\none job on its run queue in add_nr_running.  We'll clear the indicator\nto avoid load balance when we detect no cpu's have more than one job\nwhen we scan the work queues in update_sg_lb_stats().  We are aggressive\nin turning on the load balance and opportunistic in skipping the load\nbalance.\n\nSigned-off-by: Tim Chen <tim.c.chen@linux.intel.com>\nAcked-by: Rik van Riel <riel@redhat.com>\nAcked-by: Jason Low <jason.low2@hp.com>\nCc: \"Paul E.McKenney\" <paulmck@linux.vnet.ibm.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Davidlohr Bueso <davidlohr@hp.com>\nCc: Alex Shi <alex.shi@linaro.org>\nCc: Michel Lespinasse <walken@google.com>\nCc: Peter Hurley <peter@hurleysoftware.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/1403551009.2970.613.camel@schen9-DESK\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\n\n(Patch adapted for 3.10)\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire. From http://ripke.com/loadavg/moire\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched/idle: Avoid spurious wakeup IPIs\n\nBecause mwait_idle_with_hints() gets called from !idle context it must\ncall current_clr_polling(). This however means that resched_task() is\nvery likely to send an IPI even when we were polling:\n\n  CPU0\t\t\t\t\tCPU1\n\n  if (current_set_polling_and_test())\n    goto out;\n\n  __monitor(&ti->flags);\n  if (!need_resched())\n    __mwait(eax, ecx);\n\t\t\t\t\tset_tsk_need_resched(p);\n\t\t\t\t\tsmp_mb();\nout:\n  current_clr_polling();\n\t\t\t\t\tif (!tsk_is_polling(p))\n\t\t\t\t\t  smp_send_reschedule(cpu);\n\nSo while it is correct (extra IPIs aren't a problem, whereas a missed\nIPI would be) it is a performance problem (for some).\n\nAvoid this issue by using fetch_or() to atomically set NEED_RESCHED\nand test if POLLING_NRFLAG is set.\n\nSince a CPU stuck in mwait is unlikely to modify the flags word,\ncontention on the cmpxchg is unlikely and thus we should mostly\nsucceed in a single go.\n\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nAcked-by: Nicolas Pitre <nico@linaro.org>\nCc: Andy Lutomirski <luto@amacapital.net>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/n/tip-kf5suce6njh5xf5d3od13rr0@git.kernel.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: auto adjust the upmigrate and downmigrate thresholds\n\nThe load scale factor of a CPU gets boosted when its max freq\nis restricted. A task load at the same frequency is scaled higher\nthan normal under this scenario. This results in tasks migrating\nearly to the better capacity CPUs and their residency over there\nalso gets increased as their inflated load would be relatively\nhigher than than the downmigrate threshold.\n\nAuto adjust the upmigrate and downmigrate thresholds by a factor\nequal to  rq->max_possible_freq/rq->max_freq of a lower capacity CPU.\nIf the adjusted upmigrate threshold exceeds the window size, it is\nclipped to the window size. If the adjusted downmigrate threshold\ndecreases the difference between the upmigrate and downmigrate, it is\nclipped to a value such that the difference between the modified\nand the original thresholds is same.\n\nChange-Id: Ifa70ee5d4ca5fe02789093c7f070c77629907f04\nSigned-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nsched: Add stub function for sched_get_cpus_busy()\n\nsched_get_cpus_busy() could be used by code common to systems with or\nwithout CONFIG_SCHED_FREQ_INPUT set. Add stub implementation for this\nfunction when CONFIG_SCHED_FREQ_INPUT is not set.\n\nChange-Id: Ie9542376474dd46274141e0d0806c4c2215b99e5\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/69e7bd36ad11b991c2e5bde001de5dad90c76c4f"},{"sha":"ea0f2e7f8bb420c6bde3e2f5c0554394e2643116","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/kimjisoo/kernel_lge_bullhead/commits/ea0f2e7f8bb420c6bde3e2f5c0554394e2643116"},{"sha":"1a5906cdddeaa6b031507299cac9e2db2ebc2166","author":{"name":"Junjie Wu","email":"0075153510835c15ef43801605ef8726aea51938@codeaurora.org"},"message":"cpufreq: interactive: Do not reschedule timer if policy->max changes\n\nCurrent implementation rearms timer in CPUFREQ_GOV_LIMITS when\npolicy->max increases. That's because CPUs' timers are not rearmed if\nprevious frequency evaluation selects policy->max.\n\nWith commit 16b90977d0941f2cf623ea58f6bd01ff82c83b25\n(\"cpufreq: interactive: Rearm governor timer at max freq\"),\ninteractive governor timer is always rearmed, and thus timer will\nalways fire if CPU is busy. There is no need to rearm timer when\npolicy->max changes.\n\nRemove code related to rearming timer for policy->max change in\nCPUFREQ_GOV_LIMITS.\n\nChange-Id: I9c2eb788ab3b1c4cf02fff653cb8919d52752cda\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Remove first_cpu field\n\nfirst_cpu field was introduced to handle tunable save and restore, but\nlater improvements removed the need for it. Remove it from\ncpufreq_interactive_cpuinfo struct.\n\nChange-Id: Ib6fd7546451ee537f55d874f93d0e52bec58f124\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Replace per-cpu timer with per-policy timer\n\nInteractive governor currently uses per-cpu timer to evaluate each\nCPU's frequency. For policies that manages multiples CPUs, each CPU\nruns its own algorithm to decide its frequency and then final result\nis aggregated in speedchange task. This implementation has a few\ndrawbacks.\n\nDue to the use of deferrable timers, timers between CPUs can be easily\nmisaligned. If a load migrates from CPU A to CPU B, there exists a gap\nwhere CPU A could have dropped its frequency vote yet CPU B hasn't\nseen the demand to ramp up its vote. This would result in an incorrect\ndrop in policy frequency which is harmful for performance.\n\nIn addition, for CPU waking up in middle of a window, the timestamps\nit takes will not be aligned with jiffy boundaries, and thus when next\ntime timer fires, it could incorrectly prevent frequency ramp up/down\nfor one more window.\n\nChange-Id: Ia82c7b0cff5bb1ea165fb83fbb7a5546ea7d0396\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Add cpuload trace events\n\nWith per-cluster timer implementation, only max load across CPUs in\ncluster is traced in timer function. Add cpufreq_interactive_cpuload\ntrace to provide per-cpu load information.\n\nChange-Id: Icea9f2574332a4bc472b14193e77d76100a896ed\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Correctly reschedule timer for slack_only case\n\nSlack timer's expire field was not correctly initialized if slack_only\nis true in cpufreq_interactive_timer_resched(). This causes both\ncompilation warning and functional breakage.\n\nFix expire field by setting it properly.\n\nChange-Id: I2f8c454d63626876522c163eb8d3c5d1c8adfd51\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Use sched_get_cpus_busy() to query busy time\n\nsched_get_cpus_busy() provides a snapshot of all CPUs' busy time\ninformation for the set of CPUs being queried. This avoids race\ncondition due to migration when CPU load is queried one by one.\n\nChange-Id: I6afdfa74ff9f3ef616872df4e2c3bb04f6233c3f\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Use target_freq for load calculation\n\nWith per-policy timer implemented, there is no need to use policy->cur\nin load calculation and delay enforcement. Each CPUs in policy will\nnaturally get the cluster frequency in target_freq. Using policy->cur\nhas side effects if second evaluation comes before frequency switch\nrequested by first evaluation is finished. When that occurs, the second\nevalution could enforce delays incorrectly based on the stale\npolicy->cur while the timestamps have been updated when target_freq is\nupdated by earlier evaluation.\n\nFor example, assume current frequency is 1.5GHz, hispeed_freq is 1GHz.\nFirst evaluation drops target_freq to 500MHz. It also resets\nhispeed_validate_time. While frequency switch is still underway and\npolicy->cur is still 1.5GHz, a second evaluation happens, and the\nevaluation result is 1GHz. Current evaluation would enforce\nhispeed_delay for 1.5GHz using the updated hispeed_validate_time and\nthus incorrectly delaying the ramp up to 1GHz.\n\nChange from policy->cur to target_freq in load calculation and delay\nenforcement.\n\nChange-Id: I416e1d524e14b2c082944b88678eb3105bd70d88\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\n\nConflicts:\n\n\tdrivers/cpufreq/cpufreq_interactive.c\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Fix load in cpufreq_interactive_cpuload event\n\nCPU load is now normalized to per-policy target_load, instead of\ncurrent frequency of CPU. Fix cpufreq_interactive_cpuload accordingly\nso that its load number matches other cpufreq interactive events like\ncpufreq_interactive_target/notyet/already.\n\nChange-Id: I0685b5930ad1bac01819e96fcdfc181167d4dae0\nSigned-off-by: Junjie Wu <junjiew@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: remove boost and boostpulse sysfs nodes to prevent 'average joe' mis-usage\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nCHROMIUM: cpufreq: interactive: calculate load before freq change\n\nThe update to cpu load for cpufreq rate changes was happening after the rate\nchange instead of before. This switches it to update the cpu load before the\ncpufreq rate change so the old frequency is used for calculating the speed\nadjusted cpu load. The old frequency was used for that active time, so it should\nbe used for calculating the speed adjusted cpu load.\n\nBUG=chrome-os-partner:37673\nTEST=power_LoadTest on Jerry\ncheck we spend most of our time at the lower cpu frequencies\n\nChange-Id: I2fff785561ad8aebd354ddd305e91d96c799a617\nSigned-off-by: Derek Basehore <dbasehore@chromium.org>\nReviewed-on: https://chromium-review.googlesource.com/262925\nReviewed-by: Douglas Anderson <dianders@chromium.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Honor changed minimum frequency\n\nThis saves a few cycles in the timer routine.\n\nPicked from https://github.com/CyanogenMod/android_kernel_lge_hammerhead/commit/69de0d3ff3ebcc579c602d5a4a8ac3ec2335818e and adapted for Angler\n\nChange-Id: I4c0e89094a00a0b63eae6320e6c3bdbb2d4c307e\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Consider changed min limit a frequency boost\n\nA changed policy->min can safely be considered a frequency boost.\nProcess this change analogous to the cpufreq_interactive_boost()\nroutine.\n\nPicked from https://github.com/CyanogenMod/android_kernel_lge_hammerhead/commit/b09fb164a64b07c2d993542e6747ba720a60a6c9 and adapted for Angler.\n\nChange-Id: Ie4ca2be2dad0f5bd541c2b79afee3bad3a349d80\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: waking up speedchange_task every time there's a touch input (because limits are changed) is introducing jank. I believe it's because the thread has a very high priority and it *might* be scheduled before other tasks. Also it spinlocks every time it's called, so that might not be helping.Correct me if I'm wrong otherwise.\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: reduce timer with screen off\n\nStandard Qualcomm configuration on userspace's PowerHAL is to increase the timer_rate value to reduce power consumption. That doesn't seem to happen with Angler (or any other Nexus for that matter) so this patch implements it in the governor driver instead\n\nTested with Google Play Music streaming in its higher bitrate, and there's no audio issues\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: fix derp merge\n\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: squash changes from https://github.com/CyanogenMod/android_kernel_nextbit_msm8992/commits/7eeadaf74f45593de758d0f63369737703ce834f/drivers/cpufreq/cpufreq_interactive.c\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\nCHROMIUM: cpufreq: interactive: calculate load before freq change\n\nThe update to cpu load for cpufreq rate changes was happening after the rate\nchange instead of before. This switches it to update the cpu load before the\ncpufreq rate change so the old frequency is used for calculating the speed\nadjusted cpu load. The old frequency was used for that active time, so it should\nbe used for calculating the speed adjusted cpu load.\n\nBUG=chrome-os-partner:37673\nTEST=power_LoadTest on Jerry\ncheck we spend most of our time at the lower cpu frequencies\n\nChange-Id: I2fff785561ad8aebd354ddd305e91d96c799a617\nSigned-off-by: Derek Basehore <dbasehore@chromium.org>\nReviewed-on: https://chromium-review.googlesource.com/262925\nReviewed-by: Douglas Anderson <dianders@chromium.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: reduce timer with screen off\n\nStandard Qualcomm configuration on userspace's PowerHAL is to increase the timer_rate value to reduce power consumption. That doesn't seem to happen with Angler (or any other Nexus for that matter) so this patch implements it in the governor driver instead\n\nTested with Google Play Music streaming in its higher bitrate, and there's no audio issues\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Honor changed minimum frequency\n\nThis saves a few cycles in the timer routine.\nPicked from https://github.com/CyanogenMod/android_kernel_lge_hammerhead/commit/69de0d3ff3ebcc579c602d5a4a8ac3ec2335818e and adapter for Angler.\n\nChange-Id: I4c0e89094a00a0b63eae6320e6c3bdbb2d4c307e\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>\n\ncpufreq: interactive: Consider changed min limit a frequency boost\n\nA changed policy->min can safely be considered a frequency boost.\nProcess this change analogous to the cpufreq_interactive_boost()\nroutine.\n\nPicked from https://github.com/CyanogenMod/android_kernel_lge_hammerhead/commit/b09fb164a64b07c2d993542e6747ba720a60a6c9 and adapted for Angler.\n\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/1a5906cdddeaa6b031507299cac9e2db2ebc2166"},{"sha":"c848361d2c25473555525880a69e5bfd11c48fd0","author":{"name":"Tahsin Erdogan","email":"f575aabfcf931cdd93bfc82db2c7bb41f58ee7dd@google.com"},"message":"block: Make CFQ default to IOPS mode on SSDs\n\nCFQ idling causes reduced IOPS throughput on non-rotational disks.\nSince disk head seeking is not applicable to SSDs, it doesn't really\nhelp performance by anticipating future near-by IO requests.\n\nBy turning off idling (and switching to IOPS mode), we allow other\nprocesses to dispatch IO requests down to the driver and so increase IO\nthroughput.\n\nFollowing FIO benchmark results were taken on a cloud SSD offering with\nidling on and off:\n\nIdling     iops    avg-lat(ms)    stddev            bw\n------------------------------------------------------\n    On     7054    90.107         38.697     28217KB/s\n   Off    29255    21.836         11.730    117022KB/s\n\nfio --name=temp --size=100G --time_based --ioengine=libaio \\\n    --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \\\n    --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \\\n    --filename=/dev/sdb --runtime=10 --iodepth=64 --numjobs=10\n\nAnd the following is from a local SSD run:\n\nIdling     iops    avg-lat(ms)    stddev            bw\n------------------------------------------------------\n    On    19320    33.043         14.068     77281KB/s\n   Off    21626    29.465         12.662     86507KB/s\n\nfio --name=temp --size=5G --time_based --ioengine=libaio \\\n    --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \\\n    --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \\\n    --filename=/fio_data --runtime=10 --iodepth=64 --numjobs=10\n\nChange-Id: I2311c1b349092d5d6afe5200037f6aeccf506e04\nReviewed-by: Nauman Rafique <nauman@google.com>\nSigned-off-by: Tahsin Erdogan <tahsin@google.com>\nSigned-off-by: Jens Axboe <axboe@fb.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/c848361d2c25473555525880a69e5bfd11c48fd0"},{"sha":"fd42fac5f3a65b253abdb10d87d51af0e88c39e6","author":{"name":"Jens Axboe","email":"f8b120bbe297304053fa957b507156696820d130@fb.com"},"message":"cfq-iosched: fix the setting of IOPS mode on SSDs\n\nA previous commit wanted to make CFQ default to IOPS mode on\nnon-rotational storage, however it did so when the queue was\ninitialized and the non-rotational flag is only set later on\nin the probe.\n\nAdd an elevator hook that gets called off the add_disk() path,\nat that point we know that feature probing has finished, and\nwe can reliably check for the various flags that drivers can\nset.\n\nChange-Id: Ieaf0beed1efc0ace7e61766e725647c6509e9852\nFixes: 41c0126b (\"block: Make CFQ default to IOPS mode on SSDs\")\nTested-by: Romain Francoise <romain@orebokech.com>\nSigned-off-by: Jens Axboe <axboe@fb.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/fd42fac5f3a65b253abdb10d87d51af0e88c39e6"},{"sha":"1b86c3326fbd3ade214d936547c5a5f670cafbe4","author":{"name":"Krishnankutty Kolathappilly","email":"f9f7e39bce52d5931331fd99f82156a19f3a674c@codeaurora.org"},"message":"msm: cpp: Limit the rate of pop buffer messages\n\nPop buffer messages can cause watch dog issues when there is\ncontinuous frame drops and buffers are not queued fast enough\nby HAL. Limit the rate of these messages.\n\nCRs-Fixed: 925071 923707\nChange-Id: I0740c64a0ed40018ad1de2a49108b72228057cff\nSigned-off-by: Krishnankutty Kolathappilly <kkolatha@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/1b86c3326fbd3ade214d936547c5a5f670cafbe4"},{"sha":"7d94e1eef0f288fa18d49f85fc5e85ca25327764","author":{"name":"Anji Jonnala","email":"cabaf8a61a0c030828bd0272909445ffa3e20345@codeaurora.org"},"message":"rpm-smd: Optimize smd data read\n\nReplace completion event for tasklets such that the data read happens on\nthe same cpu and there is no delay in scheduling the task.\n\nChange-Id: I47e3bc5436c1734a2c88df3b01197bc7b22fef99\nSigned-off-by: Archana Sathyakumar <asathyak@codeaurora.org>\nSigned-off-by: Anji Jonnala <anjir@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/7d94e1eef0f288fa18d49f85fc5e85ca25327764"},{"sha":"0d928543affe5631a3054fd65631bc7bea112a1d","author":{"name":"Lingutla Chandrasekhar","email":"45d8c09fa8e4470885fed6b517244a0b4a5c8f1d@codeaurora.org"},"message":"soc: qcom: memory_dump_v2: use kmemleak_not_leak for mem dump's app table\n\ntable (of type msm_dump_table) is virtual address for app's base\ntable of memdump, which is converted to physical address and\nholds it in the memdump.table_phys. This memory is not intended\nto be freed. When kmemleak scans, it can't deduce that the reference\nwe are holding is via physical address and not virtual address.\nHence, kmemleak will treat this as a leak as it can't find\na reference to this variable. Supress this by using kmemleak_not_leak.\n\nChange-Id: I5236c940688829a3b5f255c5ee9fcf309cf8ebb7\nSigned-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/0d928543affe5631a3054fd65631bc7bea112a1d"},{"sha":"8a9af84d4efdbd549720d27038baddd6c85078ca","author":{"name":"Azhar Shaikh","email":"cbb0239df3faaabf3fb5681643fb7180458a007f@codeaurora.org"},"message":"USB: android: Fix memory leak in mass_storage_function_init()\n\nmass_storage_function_init() calls fsg_common_init() which allocates\nmemory to fsg buffers only once during bootup. This memory is never\nfreed, which results in a memory leak. The reference count is\nincremented in mass_storage_function_init() and in fsg_bind_config().\nThe count incremented in bind_config is decremented in fsg_unbind().\nFree this memory and also decrement the reference count in\nmass_storage_function_cleanup() which will be called during gadget unbind.\n\nChange-Id: I51e8d062471540df01bcb3122195711bbaffe455\nSigned-off-by: Azhar Shaikh <azhars@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/8a9af84d4efdbd549720d27038baddd6c85078ca"},{"sha":"7cb3d9916e9ccf5957d56dc3e7b768e780fe3085","author":{"name":"Mahesh Sivasubramanian","email":"0535029a92723ceb00d858924ac46e7e0054d694@codeaurora.org"},"message":"rpm-smd: Raise priority of thread waiting for SMD buffer\n\nLow priority thread that wait for SMD buffer to become available could\nblock higher priority thread. Raise the priority of the thread waiting for\nack by converting existing Mutex to an RT mutex.\n\nChange-Id: I8cc5e4fea93b0482bb06e14bb8601c36557356ee\nSigned-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/7cb3d9916e9ccf5957d56dc3e7b768e780fe3085"},{"sha":"d2c0de8140b0a0a323ca20c3edee43467b68f7a9","author":{"name":"Patrick Daly","email":"78479ab4153ef5619bc927755d9ca2e5cd01b75a@codeaurora.org"},"message":"cpuidle: Add need_resched() check\n\nThe cpuidle framework is disabled as part of suspend. In this scenario,\nthe cpu may enter wfi without checking the need_resched() flag.\nPrevent this from occuring.\n\nCRs-fixed: 920501\nChange-Id: Ib2077833279d84b2aea25c61198dfbdcf4566ea4\nSigned-off-by: Patrick Daly <pdaly@codeaurora.org>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/d2c0de8140b0a0a323ca20c3edee43467b68f7a9"},{"sha":"f7c3bac04ef26d11f5f1ac8542ba3645eb76cce1","author":{"name":"Neal Cardwell","email":"6eb0de8c52d8a3fcaae13b97cd10ce8592d0bd4f@google.com"},"message":"tcp: fix timing issue in CUBIC slope calculation\n\nThis patch fixes a bug in CUBIC that causes cwnd to increase slightly\ntoo slowly when multiple ACKs arrive in the same jiffy.\n\nIf cwnd is supposed to increase at a rate of more than once per jiffy,\nthen CUBIC was sometimes too slow. Because the bic_target is\ncalculated for a future point in time, calculated with time in\njiffies, the cwnd can increase over the course of the jiffy while the\nbic_target calculated as the proper CUBIC cwnd at time\nt=tcp_time_stamp+rtt does not increase, because tcp_time_stamp only\nincreases on jiffy tick boundaries.\n\nSo since the cnt is set to:\n\tca->cnt = cwnd / (bic_target - cwnd);\nas cwnd increases but bic_target does not increase due to jiffy\ngranularity, the cnt becomes too large, causing cwnd to increase\ntoo slowly.\n\nFor example:\n- suppose at the beginning of a jiffy, cwnd=40, bic_target=44\n- so CUBIC sets:\n   ca->cnt =  cwnd / (bic_target - cwnd) = 40 / (44 - 40) = 40/4 = 10\n- suppose we get 10 acks, each for 1 segment, so tcp_cong_avoid_ai()\n   increases cwnd to 41\n- so CUBIC sets:\n   ca->cnt =  cwnd / (bic_target - cwnd) = 41 / (44 - 41) = 41 / 3 = 13\n\nSo now CUBIC will wait for 13 packets to be ACKed before increasing\ncwnd to 42, insted of 10 as it should.\n\nThe fix is to avoid adjusting the slope (determined by ca->cnt)\nmultiple times within a jiffy, and instead skip to compute the Reno\ncwnd, the \"TCP friendliness\" code path.\n\nReported-by: Eyal Perry <eyalpe@mellanox.com>\nSigned-off-by: Neal Cardwell <ncardwell@google.com>\nSigned-off-by: Yuchung Cheng <ycheng@google.com>\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/f7c3bac04ef26d11f5f1ac8542ba3645eb76cce1"},{"sha":"ad48dded41be505b35acec6f152e64649a535879","author":{"name":"Eric Dumazet","email":"b3d77ad2db30f558882cc0c038be5a3cf96611f9@google.com"},"message":"tcp_cubic: better follow cubic curve after idle period\n\nJana Iyengar found an interesting issue on CUBIC :\n\nThe epoch is only updated/reset initially and when experiencing losses.\nThe delta \"t\" of now - epoch_start can be arbitrary large after app idle\nas well as the bic_target. Consequentially the slope (inverse of\nca->cnt) would be really large, and eventually ca->cnt would be\nlower-bounded in the end to 2 to have delayed-ACK slow-start behavior.\n\nThis particularly shows up when slow_start_after_idle is disabled\nas a dangerous cwnd inflation (1.5 x RTT) after few seconds of idle\ntime.\n\nJana initial fix was to reset epoch_start if app limited,\nbut Neal pointed out it would ask the CUBIC algorithm to recalculate the\ncurve so that we again start growing steeply upward from where cwnd is\nnow (as CUBIC does just after a loss). Ideally we'd want the cwnd growth\ncurve to be the same shape, just shifted later in time by the amount of\nthe idle period.\n\nChange-Id: Ia99e2743517729b1c0589fbb8db9965ec806043b\nReported-by: Jana Iyengar <jri@google.com>\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nSigned-off-by: Yuchung Cheng <ycheng@google.com>\nSigned-off-by: Neal Cardwell <ncardwell@google.com>\nCc: Stephen Hemminger <stephen@networkplumber.org>\nCc: Sangtae Ha <sangtae.ha@gmail.com>\nCc: Lawrence Brakmo <lawrence@brakmo.org>\nSigned-off-by: David S. Miller <davem@davemloft.net>\nSigned-off-by: Andrea Arcangeli <aarcange@redhat.com>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kimjisoo/kernel_lge_bullhead/commits/ad48dded41be505b35acec6f152e64649a535879"}]}
{"actor":{"display_login":"kimjisoo"}}