)]}'
{
  "log": [
    {
      "commit": "e23e2d978bf59068a8c7faaee6117f2434a59824",
      "tree": "14576c7d7086aaaafae06fb69c9da55e5630b301",
      "parents": [
        "06374eb9366cbad6860e6d3ab97ee5090178d7d8",
        "cb121ea9e86cd51e814cb50048fd64544e672bcc"
      ],
      "author": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Nov 01 10:46:21 2017 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Nov 06 07:19:21 2017 -0500"
      },
      "message": "Merge remote-tracking branch \u0027lineage/cm-14.1\u0027 into HEAD\n\nChange-Id: I9e8cb7935bb224132ac69dd34cd232e47972a504\n"
    },
    {
      "commit": "54fc2d835cac6ddae3c813faece513095d09bb79",
      "tree": "d5a0807b53adbef0539f47693ff2434e3218530c",
      "parents": [
        "4d2ae54799d0597d917223c285355dbfee777338"
      ],
      "author": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 06:56:53 2017 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 06:56:53 2017 -0400"
      },
      "message": "remove duplicated functions\n\nChange-Id: I6828c1c2c5c61a132a15f4f8cfc14231c0fbbf50\n"
    },
    {
      "commit": "e0a58e90984dff3ec8343bd60000a23cd3f39955",
      "tree": "b2ecbf9f7867edd73f5ef56531b46a2890ead5ff",
      "parents": [
        "ac7ac1f61bdd294583b8eacac06f25104a56a409"
      ],
      "author": {
        "name": "Christopher R. Palmer",
        "email": "crpalmer@gmail.com",
        "time": "Fri Sep 12 18:05:10 2014 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 06:00:50 2017 -0400"
      },
      "message": "msm: msm_rq_stats: Tone down mpdecision\n\nAdd a new Kconfig to enable more conservative computations sent\nto mpdecision:\n\n * Do not make IO busy\n * Do a time window weighted load computation instead of just a sum\n * Do an sliding window averaged time computation for number runnable\n\nThe purpose of these changes is to make mpdecision less likely to\nkeep extra cores online.  It currently has a tendancy to run more\ncores running than needed and this can even cause some lag issues.\n\nChange-Id: I72259e62b02f16a2009a0832f2a9824b5f317899\n"
    },
    {
      "commit": "15738624698e9b37f56a02a1177266ec6e44d805",
      "tree": "b41b0e6497c757be34e1f7d1a1ffd9a732a5c153",
      "parents": [
        "4c52316d7d57c7041f0f4fab8a85142ce33c38b6"
      ],
      "author": {
        "name": "Paul Keith",
        "email": "javelinanddart@gmail.com",
        "time": "Fri Feb 20 08:31:11 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 06:00:48 2017 -0400"
      },
      "message": "Set Multi Core Power Saving Mode to 2\n"
    },
    {
      "commit": "628cf0d26f8312b178e2c312a36623ea7c97fb89",
      "tree": "133fe07e38c4ad224024b6afdd340e5cdbbb6d7f",
      "parents": [
        "091834d8938120892c3855ff91af9f6c2271a19d"
      ],
      "author": {
        "name": "Tom Marshall",
        "email": "tdm.code@gmail.com",
        "time": "Fri Apr 28 22:46:37 2017 +0000"
      },
      "committer": {
        "name": "Mikhail Chowdhury",
        "email": "mikhail.chowdhury@gmail.com",
        "time": "Tue May 23 18:27:00 2017 +0200"
      },
      "message": "kernel: Only expose su when daemon is running\n\nIt has been claimed that the PG implementation of \u0027su\u0027 has security\nvulnerabilities even when disabled.  Unfortunately, the people that\nfind these vulnerabilities often like to keep them private so they\ncan profit from exploits while leaving users exposed to malicious\nhackers.\n\nIn order to reduce the attack surface for vulnerabilites, it is\ntherefore necessary to make \u0027su\u0027 completely inaccessible when it\nis not in use (except by the root and system users).\n\nChange-Id: Ia7d50ba46c3d932c2b0ca5fc8e9ec69ec9045f85\n"
    },
    {
      "commit": "16a39eddb18a2daf21142a8fd1fd0cfde76a9397",
      "tree": "5f858f20e445c8a45078ca0ec5f61c4e088e1deb",
      "parents": [
        "e39192331424b6e0695038c1dd57f43efebe9355",
        "8d1988f838a95e836342b505398d38b223181f17"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Fri Dec 30 09:42:57 2016 -0600"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Fri Dec 30 10:00:46 2016 -0600"
      },
      "message": "Merge tag \u0027v3.4.113\u0027 into cm-14.1\n\nChange-Id: Ifa814958fd557299a5442731fc22fcb62139898b\n"
    },
    {
      "commit": "e818ba5bb46162d36e2d890df450f8e95017987b",
      "tree": "efe411f1be9baa61574ff87efc40ec770dc54c0d",
      "parents": [
        "7be1c67c5008758eff81eae27c84da6be101e634",
        "2220ac23c3c583321276c85cbfd7f6378abd8f94"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:51:47 2016 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:51:47 2016 -0600"
      },
      "message": "Merge remote-tracking branch \u0027f2fs/linux-3.4.y\u0027 into HEAD\n"
    },
    {
      "commit": "0d73eaaeac1ca4f6bff788574fb8b99835527ae1",
      "tree": "5c8355ee7f6076c54df3cc83c09e8be9fc239b39",
      "parents": [
        "89648c1dbec95e2049a186237da7d7314885d864"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Aug 20 11:26:57 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:12:59 2016 -0600"
      },
      "message": "sched: Fix load avg vs cpu-hotplug\n\nRabik and Paul reported two different issues related to the same few\nlines of code.\n\nRabik\u0027s issue is that the nr_uninterruptible migration code is wrong in\nthat he sees artifacts due to this (Rabik please do expand in more\ndetail).\n\nPaul\u0027s issue is that this code as it stands relies on us using\nstop_machine() for unplug, we all would like to remove this assumption\nso that eventually we can remove this stop_machine() usage altogether.\n\nThe only reason we\u0027d have to migrate nr_uninterruptible is so that we\ncould use for_each_online_cpu() loops in favour of\nfor_each_possible_cpu() loops, however since nr_uninterruptible() is the\nonly such loop and its using possible lets not bother at all.\n\nThe problem Rabik sees is (probably) caused by the fact that by\nmigrating nr_uninterruptible we screw rq-\u003ecalc_load_active for both rqs\ninvolved.\n\nSo don\u0027t bother with fancy migration schemes (meaning we now have to\nkeep using for_each_possible_cpu()) and instead fold any nr_active delta\nafter we migrate all tasks away to make sure we don\u0027t have any skewed\nnr_active accounting.\n\nChange-Id: If72297a98d894c3a415c1499ddcd6b7618159fd4\nReported-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nReported-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1345454817.23018.27.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "89648c1dbec95e2049a186237da7d7314885d864",
      "tree": "42961db1f5c1c9a4d3d84814c36cd742b9aa5944",
      "parents": [
        "58aa30ec9adea4760497ac0e4b245e8b40667752"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 12 18:14:00 2013 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:12:34 2016 -0600"
      },
      "message": "sched: fix the theoretical signal_wake_up() vs schedule() race\n\ncommit e0acd0a68ec7dbf6b7a81a87a867ebd7ac9b76c4 upstream.\n\nThis is only theoretical, but after try_to_wake_up(p) was changed\nto check p-\u003estate under p-\u003epi_lock the code like\n\n\t__set_current_state(TASK_INTERRUPTIBLE);\n\tschedule();\n\ncan miss a signal. This is the special case of wait-for-condition,\nit relies on try_to_wake_up/schedule interaction and thus it does\nnot need mb() between __set_current_state() and if(signal_pending).\n\nHowever, this __set_current_state() can move into the critical\nsection protected by rq-\u003elock, now that try_to_wake_up() takes\nanother lock we need to ensure that it can\u0027t be reordered with\n\"if (signal_pending(current))\" check inside that section.\n\nThe patch is actually one-liner, it simply adds smp_wmb() before\nspin_lock_irq(rq-\u003elock). This is what try_to_wake_up() already\ndoes by the same reason.\n\nWe turn this wmb() into the new helper, smp_mb__before_spinlock(),\nfor better documentation and to allow the architectures to change\nthe default implementation.\n\nWhile at it, kill smp_mb__after_lock(), it has no callers.\n\nPerhaps we can also add smp_mb__before/after_spinunlock() for\nprepare_to_wait().\n\nChange-Id: Id679afb25581b6c9f30a6957b1f033fbf5b7a49c\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "3907ab6dc6df167f30d16854592767816f066e45",
      "tree": "ba276dc41f78aa21b1e88dd00080478cd6df722c",
      "parents": [
        "c1bbfed712b8404ddadb9203aff867fe2b5e6acc"
      ],
      "author": {
        "name": "Xunlei Pang",
        "email": "xlpang@redhat.com",
        "time": "Wed Dec 02 19:52:59 2015 +0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 10:46:29 2016 -0500"
      },
      "message": "sched/core: Clear the root_domain cpumasks in init_rootdomain()\n\ncommit 8295c69925ad53ec32ca54ac9fc194ff21bc40e2 upstream.\n\nroot_domain::rto_mask allocated through alloc_cpumask_var()\ncontains garbage data, this may cause problems. For instance,\nWhen doing pull_rt_task(), it may do useless iterations if\nrto_mask retains some extra garbage bits. Worse still, this\nviolates the isolated domain rule for clustered scheduling\nusing cpuset, because the tasks(with all the cpus allowed)\nbelongs to one root domain can be pulled away into another\nroot domain.\n\nThe patch cleans the garbage by using zalloc_cpumask_var()\ninstead of alloc_cpumask_var() for root_domain::rto_mask\nallocation, thereby addressing the issues.\n\nDo the same thing for root_domain\u0027s other cpumask memembers:\ndlo_mask, span, and online.\n\nSigned-off-by: Xunlei Pang \u003cxlpang@redhat.com\u003e\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/1449057179-29321-1-git-send-email-xlpang@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n[lizf: there\u0027s no rd-\u003edlo_mask, so remove the change to it]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "55d4174137baddba6a0291a9abd6fbc6c13c3302",
      "tree": "8535e00782a7470adabeb3b5d56255d87b7ed82a",
      "parents": [
        "270c07a82df06074f75c70a5fc646fc1f4b4084f"
      ],
      "author": {
        "name": "Xunlei Pang",
        "email": "xlpang@redhat.com",
        "time": "Wed Dec 02 19:52:59 2015 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:33 2016 +0800"
      },
      "message": "sched/core: Clear the root_domain cpumasks in init_rootdomain()\n\ncommit 8295c69925ad53ec32ca54ac9fc194ff21bc40e2 upstream.\n\nroot_domain::rto_mask allocated through alloc_cpumask_var()\ncontains garbage data, this may cause problems. For instance,\nWhen doing pull_rt_task(), it may do useless iterations if\nrto_mask retains some extra garbage bits. Worse still, this\nviolates the isolated domain rule for clustered scheduling\nusing cpuset, because the tasks(with all the cpus allowed)\nbelongs to one root domain can be pulled away into another\nroot domain.\n\nThe patch cleans the garbage by using zalloc_cpumask_var()\ninstead of alloc_cpumask_var() for root_domain::rto_mask\nallocation, thereby addressing the issues.\n\nDo the same thing for root_domain\u0027s other cpumask memembers:\ndlo_mask, span, and online.\n\nSigned-off-by: Xunlei Pang \u003cxlpang@redhat.com\u003e\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/1449057179-29321-1-git-send-email-xlpang@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n[lizf: there\u0027s no rd-\u003edlo_mask, so remove the change to it]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ba5d3edb3a7d4408fac68850951beab627939c40",
      "tree": "7b5d38247e16d57564003cdf7d6f33f068a5729f",
      "parents": [
        "05100f7133eef5e13b42a8bc8ef5327abc29751e"
      ],
      "author": {
        "name": "Ruchi Kandoi",
        "email": "kandoiruchi@google.com",
        "time": "Fri Apr 17 16:33:29 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Sep 24 23:43:05 2016 -0500"
      },
      "message": "sched: cpufreq: Adds a field cpu_power in the task_struct\n\ncpu_power has been added to keep track of amount of power each task is\nconsuming. cpu_power is updated whenever stime and utime are updated for\na task. power is computed by taking into account the frequency at which\nthe current core was running and the current for cpu actively\nrunning at hat frequency.\n\nBug: 21498425\nChange-Id: Ic535941e7b339aab5cae9081a34049daeb44b248\nSigned-off-by: Ruchi Kandoi \u003ckandoiruchi@google.com\u003e\n"
    },
    {
      "commit": "db7eb0fa96d255d6d5905f9777f2a85afcd99dee",
      "tree": "ab9e548efc7ffd9641debf70490a5242d497eccf",
      "parents": [
        "efeac5e81fadd63d38142a555375265640d155cc"
      ],
      "author": {
        "name": "Michael wang",
        "email": "wangyun@linux.vnet.ibm.com",
        "time": "Mon Oct 28 10:50:22 2013 +0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:35:55 2016 -0500"
      },
      "message": "sched: Remove extra put_online_cpus() inside sched_setaffinity()\n\nCommit 6acce3ef8:\n\n\tsched: Remove get_online_cpus() usage\n\nhas left one extra put_online_cpus() inside sched_setaffinity(),\nremove it to fix the WARN:\n\n   ------------[ cut here ]------------\n   WARNING: CPU: 0 PID: 3166 at kernel/cpu.c:84 put_online_cpus+0x43/0x70()\n   ...\n   [\u003cffffffff810c3fef\u003e] put_online_cpus+0x43/0x70 [\n   [\u003cffffffff810efd59\u003e] sched_setaffinity+0x7d/0x1f9 [\n   ...\n\nCRs-fixed: 647141\nChange-Id: I33f799f30a963db3e9459832832e9c786931c8c2\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nTested-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Michael Wang \u003cwangyun@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/526DD0EE.1090309@linux.vnet.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: ac9ff7997b6f2b31949dcd2495ac671fd9ddc990\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Kaushal Kumar \u003ckaushalk@codeaurora.org\u003e\n"
    },
    {
      "commit": "efeac5e81fadd63d38142a555375265640d155cc",
      "tree": "788bb9c6fac4cee222e58fe3a6cffd1384375ccc",
      "parents": [
        "106cf7e2a55ad474d05fe63bd4831821d35f42e2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Oct 11 14:38:20 2013 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:35:49 2016 -0500"
      },
      "message": "sched: Remove get_online_cpus() usage\n\nRemove get_online_cpus() usage from the scheduler; there\u0027s 4 sites that\nuse it:\n\n - sched_init_smp(); where its completely superfluous since we\u0027re in\n   \u0027early\u0027 boot and there simply cannot be any hotplugging.\n\n - sched_getaffinity(); we already take a raw spinlock to protect the\n   task cpus_allowed mask, this disables preemption and therefore\n   also stabilizes cpu_online_mask as that\u0027s modified using\n   stop_machine. However switch to active mask for symmetry with\n   sched_setaffinity()/set_cpus_allowed_ptr(). We guarantee active\n   mask stability by inserting sync_rcu/sched() into _cpu_down.\n\n - sched_setaffinity(); we don\u0027t appear to need get_online_cpus()\n   either, there\u0027s two sites where hotplug appears relevant:\n    * cpuset_cpus_allowed(); for the !cpuset case we use possible_mask,\n      for the cpuset case we hold task_lock, which is a spinlock and\n      thus for mainline disables preemption (might cause pain on RT).\n    * set_cpus_allowed_ptr(); Holds all scheduler locks and thus has\n      preemption properly disabled; also it already deals with hotplug\n      races explicitly where it releases them.\n\n - migrate_swap(); we can make stop_two_cpus() do the heavy lifting for\n   us with a little trickery. By adding a sync_sched/rcu() after the\n   CPU_DOWN_PREPARE notifier we can provide preempt/rcu guarantees for\n   cpu_active_mask. Use these to validate that both our cpus are active\n   when queueing the stop work before we queue the stop_machine works\n   for take_cpu_down().\n\nCRs-fixed: 647141\nChange-Id: Id41e66659574f716de0e7c29f477e56a86db9404\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20131011123820.GV3081@twins.programming.kicks-ass.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: 6acce3ef84520537f8a09a12c9ddbe814a584dd2\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\n[kaushalk@codeaurora.org: get_online_cpus has only 3 sites of usage in\n kernel/sched/core.c of msm-3.10 so migrate_swap changes are not\n applicable here. stop_two_cpus related change is not applicable to\n msm-3.10, so skip it.]\nSigned-off-by: Kaushal Kumar \u003ckaushalk@codeaurora.org\u003e\n"
    },
    {
      "commit": "aa14be3e4510db2968e37fceeca1893bcec0913c",
      "tree": "5f9b795a1ca55d451782165b0eb54dc6c64cd0e4",
      "parents": [
        "5c50bf7a3e2af43b128ec018d9250e0c3002295b"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Sat Mar 29 16:56:45 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:33:16 2016 -0500"
      },
      "message": "sched: Introduce CONFIG_SCHED_FREQ_INPUT\n\nIntroduce a compile time flag to enable scheduler guidance of\nfrequency selection. This flag is also used to turn on or off\nwindow-based load stats feature.\n\nHaving a compile time flag will let some platforms avoid any\noverhead that may be present with this scheduler feature.\n\nChange-Id: Id8dec9839f90dcac82f58ef7e2bd0ccd0b6bd16c\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "f906ba019ce0abdf3bfde99109c3d3b0ec1dcbcf",
      "tree": "b65bd6bb83ef6f2d44cb0597c71f7852671a3dd4",
      "parents": [
        "7054d49bbcde1124c494b9618bab0f202bcbcc5e"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Sat Mar 29 11:40:16 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:59 2016 -0500"
      },
      "message": "sched: window-based load stats improvements\n\nFollowing cleanups and improvements are made to window-based load\nstats feature:\n\n* Add sysctl to pick max, avg or most recent samples as task\u0027s\n  demand.\n\n* Fix overflow possibility in calculation of sum for average policy.\n\n* Use unscaled statistics when a task is running on a CPU which is\nthermally throttled.\n\nChange-Id: I8293565ca0c2a785dadf8adb6c67f579a445ed29\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "7054d49bbcde1124c494b9618bab0f202bcbcc5e",
      "tree": "df5cd1d4184d4c21f9e625d572dcfb731cefa6fe",
      "parents": [
        "6d536c0d0b094a027ee3b7c68ce5b186b3f45698"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Tue Apr 01 10:57:59 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:51 2016 -0500"
      },
      "message": "sched: Add min_max_freq and rq-\u003emax_possible_freq\n\nrq-\u003emax_possible_freq represents the maximum frequency a cpu is\ncapable of attaining, while rq-\u003emax_freq represents the maximum\nfrequency a cpu can attain at a given instant. rq-\u003emax_freq includes\nconstraints imposed by user or thermal driver.\nrq-\u003emax_freq \u003c\u003d rq-\u003emax_possible_freq.\n\nmax_possible_freq is derived as max(rq-\u003emax_possible_freq) and\nrepresents the \"best\" cpu that can attain best possible frequency.\n\nmin_max_freq is derived as min(rq-\u003emax_possible_freq). For homogeneous\nsystems, max_possible_freq and min_max_freq will be same, while they\ncould be different on heterogeneous systems.\n\nChange-Id: Iec485fde35cfd33f55ebf2c2dce4864faa2083c5\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "6d536c0d0b094a027ee3b7c68ce5b186b3f45698",
      "tree": "b4b9e2555ff84caec026dfaeaca87a74b3a0d8ec",
      "parents": [
        "bc6d706612791d4e83463f58228470cb4ab6c643"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Tue May 20 14:10:18 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:46 2016 -0500"
      },
      "message": "sched: move task load based functions\n\nThe task load based functions will need to make use of LOAD_AVG_MAX\nin a subsequent patch, so move them below the definition of that\nmacro.\n\nChange-Id: I02f18ba069b81033e611f8f8bba6dccd7cd81252\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "bc6d706612791d4e83463f58228470cb4ab6c643",
      "tree": "c7459dd55b3c8bdd71c05f7a3911856cb774f3fa",
      "parents": [
        "fac5e0e2237a9dea2f7fb85cca7a8b91f49a5ee2"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Mon Jul 14 03:19:29 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:39 2016 -0500"
      },
      "message": "sched: fix race between try_to_wake_up() and move_task()\n\nUntil a task\u0027s state has been seen as interruptible/uninterruptible\nand it is no longer on_cpu, it is possible that the task may move\nto another CPU (load balancing may cause this). Here is an example\nwhere the race condition results in incorrect operation:\n\n- cpu 0 calls put_prev_task on task A, task A\u0027s state is TASK_RUNNING\n- cpu 0 runs task B, which attempts to wake up A\n- cpu 0 begins try_to_wake_up(), recording src_cpu for task A as cpu 0\n- cpu 1 then pulls task A (perhaps due to idle balance)\n- cpu 1 runs task A, which then sleeps, becoming INTERRUPTIBLE\n- cpu 0 continues in try_to_wake_up(), thinking task A\u0027s previous\n  cpu is 0, where it is actually 1\n- if select_task_rq returns cpu 0, task A will be woken up on cpu 0\n  without properly updating its cpu to 0 in set_task_cpu()\n\nCRs-Fixed: 665958\nChange-Id: Icee004cb320bd8edfc772d9f74e670a9d4978a99\nAuthor: Steve Muckle \u003csmuckle@codeaurora.org\u003e\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "fac5e0e2237a9dea2f7fb85cca7a8b91f49a5ee2",
      "tree": "b7b7c07928eac82cef7e8f01c8f0ee2359e6dc65",
      "parents": [
        "8c7a411495d4823fa9c907eba7abf24cb4c7da8b"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Fri May 16 16:15:50 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:32 2016 -0500"
      },
      "message": "sched: Skip load update for idle task\n\nLoad statistics for idle tasks is not useful in any manner. Skip load\nupdate for such idle tasks.\n\nCRs-Fixed: 665706\nChange-Id: If3a908bad7fbb42dcb3d0a1d073a3750cf32fcf9\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "8c7a411495d4823fa9c907eba7abf24cb4c7da8b",
      "tree": "bdd8e0d2f60c604b247821aa1b85d834667234cc",
      "parents": [
        "50c7d47074b390ca2f2cbab2f2b1d6bff122b481"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Thu May 15 19:06:56 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:22 2016 -0500"
      },
      "message": "sched: window-stats: Fix overflow bug\n\nMultiplication over-flow possibility exists in update_task_ravg() when\nupdating task\u0027s window_start. That would lead to incorrect accounting\nof task load. Fix the issue by using 64-bit arithmetic.\n\nCRs-Fixed: 665706\nChange-Id: I92651c41efa6121bb8fe102e495ae956127b237a\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "50c7d47074b390ca2f2cbab2f2b1d6bff122b481",
      "tree": "3d2a8e29a4707398a3f116b4a31491dadc600cf3",
      "parents": [
        "fddadfa9239b2c1648cd91918991190d0f5f7348"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Sat Mar 29 11:40:16 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:17 2016 -0500"
      },
      "message": "sched: Window-based load stat improvements\n\nSome tasks can have a sporadic load pattern such that they can suddenly\nstart running for longer intervals of time after running for shorter\ndurations. To recognize such sharp increase in tasks\u0027 demands, max\nbetween the average of 5 window load samples and the most recent sample\nis chosen as the task demand.\n\nMake the window size (sched_ravg_window) configurable at boot up\ntime. To prevent users from setting inappropriate values for window\nsize, min and max limits are defined. As \u0027ravg\u0027 struct tracks load for\nboth real-time and non real-time tasks it is moved out of sched_entity\nstruct.\n\nIn order to prevent changing function signatures for move_tasks() and\nmove_one_task() per-cpu variables are defined to track the total load\nmoved. In case multiple tasks are selected to migrate in one load\nbalance operation, loads \u003e 100 could be sent through migration notifiers.\nPrevent this scenario by setting mnd.load to 100 in such cases.\n\nDefine wrapper functions to compute cpu demands for tasks and to change\nrq-\u003ecumulative_runnable_avg.\n\nChange-Id: I9abfbf3b5fe23ae615a6acd3db9580cfdeb515b4\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\nSigned-off-by: Rohit Gupta \u003crohgup@codeaurora.org\u003e\n"
    },
    {
      "commit": "fddadfa9239b2c1648cd91918991190d0f5f7348",
      "tree": "80598a4beb481a4e61d835fa640fad2ff29b4afe",
      "parents": [
        "1bd9e1f6d3cf6e9e74199045c5801e93796c8996"
      ],
      "author": {
        "name": "Rohit Gupta",
        "email": "rohgup@codeaurora.org",
        "time": "Tue Apr 15 19:30:53 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:10 2016 -0500"
      },
      "message": "sched: Disable wakeup hints for foreground tasks by default\n\nBy default sched_wakeup_load_threshold is set to 60 and therefore\nwakeup hints are sent out for those tasks whose loads are higher\nthat value. This might cause unnecessary wakeup boosts to happen\nwhen load based syncing is turned ON for cpu-boost.\nDisable the wake up hints by setting the sched_wakeup_load_threshold\nto a value higher than 100 so that wakeup boost doesnt happen unless\nit is explicitly turned ON from adb shell.\n\nChange-Id: I9b8a594c2bfdf2e092cc645e50c0c21efc514c2f\nSigned-off-by: Rohit Gupta \u003crohgup@codeaurora.org\u003e\n"
    },
    {
      "commit": "1bd9e1f6d3cf6e9e74199045c5801e93796c8996",
      "tree": "db9ccade7521bdfc32303f3f55828fb21af43fed",
      "parents": [
        "5ec9df8aed606e02404fe434d0f1b751e9d7158a"
      ],
      "author": {
        "name": "Rohit Gupta",
        "email": "rohgup@codeaurora.org",
        "time": "Thu Mar 13 20:54:47 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:04 2016 -0500"
      },
      "message": "sched: Call the notify_on_migrate notifier chain for wakeups as well\n\nAdd a change to send notify_on_migrate hints on wakeups of\nforeground tasks from scheduler if their load is above\nwakeup_load_thresholds (default value is 60).\nThese hints can be used to choose an appropriate CPU frequency\ncorresponding to the load of the task being woken up.\n\nChange-Id: Ieca413c1a8bd2b14a15a7591e8e15d22925c42ca\nSigned-off-by: Rohit Gupta \u003crohgup@codeaurora.org\u003e\n"
    },
    {
      "commit": "5ec9df8aed606e02404fe434d0f1b751e9d7158a",
      "tree": "8e1a7b0bbe294175fb5d0ad1ec3930757ff41c97",
      "parents": [
        "7b7fb127f290c789c87b3f1fa2ebaafcc0423211"
      ],
      "author": {
        "name": "Rohit Gupta",
        "email": "rohgup@codeaurora.org",
        "time": "Fri Mar 14 18:56:14 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:31:57 2016 -0500"
      },
      "message": "cpufreq: cpu-boost: Introduce scheduler assisted load based syncs\n\nPreviously, on getting a migration notification cpu-boost changed\nthe scaling min of the destination frequency to match that of the\nsource frequency or sync_threshold whichever was minimum.\n\nIf the scheduler migration notification is extended with task load\n(cpu demand) information, the cpu boost driver can use this load to\ncompute a suitable frequency for the migrating task. The required\nfrequency for the task is calculated by taking the load percentage\nof the max frequency and no sync is performed if the load is less\nthan a particular value (migration_load_threshold).This change is\nbeneficial for both perf and power as demand of a task is taken into\nconsideration while making cpufreq decisions and unnecessary syncs\nfor lightweight tasks are avoided.\n\nThe task load information provided by scheduler comes from a\nwindow-based load collection mechanism which also normalizes the\nload collected by the scheduler to the max possible frequency\nacross all CPUs.\n\nChange-Id: Id2ba91cc4139c90602557f9b3801fb06b3c38992\nSigned-off-by: Rohit Gupta \u003crohgup@codeaurora.org\u003e\n"
    },
    {
      "commit": "889de8f2515046d8b897c5663e320e088a7ac1fc",
      "tree": "dd7660cd292f88e67ed1cc2d9adb6dfe99d41498",
      "parents": [
        "76173dbc06dd1a20b7b6b2c3afbf29ae935b95bd"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Mon Jan 06 16:24:48 2014 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:31:03 2016 -0500"
      },
      "message": "sched: window-based load stats for tasks\n\nProvide a metric per task that specifies how cpu bound a task is. Task\nexecution is monitored over several time windows and the fraction of\nthe window for which task was found to be executing or wanting to run\nis recorded as task\u0027s demand. Windows over which task was sleeping are\nignored. We track last 5 recent windows for every task and the maximum\ndemand seen in any of the previous 5 windows (where task had some\nactivity) drives freq demand for every task.\n\nA per-cpu metric (rq-\u003ecumulative_runnable_avg) is also provided which\nis an aggregation of cpu demand of all tasks currently enqueued on it.\nrq-\u003ecumulative_runnable_avg will be useful to know if cpu frequency\nwill need to be changed to match task demand.\n\nChange-Id: Ib83207b9ba8683cd3304ee8a2290695c34f08fe2\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "76173dbc06dd1a20b7b6b2c3afbf29ae935b95bd",
      "tree": "01cb8e6f452ae972ff6c2e59fb9c60eb251b3167",
      "parents": [
        "5f81291fa85a9386c4135bc254513bf7ea1fd94a"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Thu Dec 12 17:06:11 2013 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:57 2016 -0500"
      },
      "message": "sched: Make scheduler aware of cpu frequency state\n\nCapacity of a cpu (how much performance it can deliver) is partly\ndetermined by its frequency (P) state, both current frequency as well\nas max frequency it can reach.  Knowing frequency state of cpus will\nhelp scheduler optimize various functions such as tracking every\ntask\u0027s cpu demand and placing tasks on various cpus.\n\nThis patch has scheduler registering for cpufreq notifications to\nbecome aware of cpu\u0027s frequency state. Subsequent patches will make\nuse of derived information for various purposes, such as task\u0027s scaled\nload (cpu demand) accounting and task placement.\n\nChange-Id: I376dffa1e7f3f47d0496cd7e6ef8b5642ab79016\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "5f81291fa85a9386c4135bc254513bf7ea1fd94a",
      "tree": "bf4ca1b369b10df81c6350e84e80725ed41ae0e3",
      "parents": [
        "6927616e84bbc0f249ff1c0a49c11baee2199aa8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:32 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:52 2016 -0500"
      },
      "message": "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking\n\nWhile per-entity load-tracking is generally useful, beyond computing shares\ndistribution, e.g. runnable based load-balance (in progress), governors,\npower-management, etc.\n\nThese facilities are not yet consumers of this data.  This may be trivially\nreverted when the information is required; but avoid paying the overhead for\ncalculations we will not use until then.\n\nChange-Id: I459d52082af636d1181edb7acb3af973e95714f9\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.422162369@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "6927616e84bbc0f249ff1c0a49c11baee2199aa8",
      "tree": "487948f457ad9181903219c153e6c0975e9aaa46",
      "parents": [
        "bdda1309760e8bf34af3ec721e49e6d2801e061f"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:32 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:44 2016 -0500"
      },
      "message": "sched: Make __update_entity_runnable_avg() fast\n\n__update_entity_runnable_avg forms the core of maintaining an entity\u0027s runnable\nload average.  In this function we charge the accumulated run-time since last\nupdate and handle appropriate decay.  In some cases, e.g. a waking task, this\ntime interval may be much larger than our period unit.\n\nFortunately we can exploit some properties of our series to perform decay for a\nblocked update in constant time and account the contribution for a running\nupdate in essentially-constant* time.\n\n[*]: For any running entity they should be performing updates at the tick which\ngives us a soft limit of 1 jiffy between updates, and we can compute up to a\n32 jiffy update in a single pass.\n\nC program to generate the magic constants in the arrays:\n\n  #include \u003cmath.h\u003e\n  #include \u003cstdio.h\u003e\n\n  #define N 32\n  #define WMULT_SHIFT 32\n\n  const long WMULT_CONST \u003d ((1UL \u003c\u003c N) - 1);\n  double y;\n\n  long runnable_avg_yN_inv[N];\n  void calc_mult_inv() {\n  \tint i;\n  \tdouble yn \u003d 0;\n\n  \tprintf(\"inverses\\n\");\n  \tfor (i \u003d 0; i \u003c N; i++) {\n  \t\tyn \u003d (double)WMULT_CONST * pow(y, i);\n  \t\trunnable_avg_yN_inv[i] \u003d yn;\n  \t\tprintf(\"%2d: 0x%8lx\\n\", i, runnable_avg_yN_inv[i]);\n  \t}\n  \tprintf(\"\\n\");\n  }\n\n  long mult_inv(long c, int n) {\n  \treturn (c * runnable_avg_yN_inv[n]) \u003e\u003e  WMULT_SHIFT;\n  }\n\n  void calc_yn_sum(int n)\n  {\n  \tint i;\n  \tdouble sum \u003d 0, sum_fl \u003d 0, diff \u003d 0;\n\n  \t/*\n  \t * We take the floored sum to ensure the sum of partial sums is never\n  \t * larger than the actual sum.\n  \t */\n  \tprintf(\"sum y^n\\n\");\n  \tprintf(\"   %8s  %8s %8s\\n\", \"exact\", \"floor\", \"error\");\n  \tfor (i \u003d 1; i \u003c\u003d n; i++) {\n  \t\tsum \u003d (y * sum + y * 1024);\n  \t\tsum_fl \u003d floor(y * sum_fl+ y * 1024);\n  \t\tprintf(\"%2d: %8.0f  %8.0f %8.0f\\n\", i, sum, sum_fl,\n  \t\t\tsum_fl - sum);\n  \t}\n  \tprintf(\"\\n\");\n  }\n\n  void calc_conv(long n) {\n  \tlong old_n;\n  \tint i \u003d -1;\n\n  \tprintf(\"convergence (LOAD_AVG_MAX, LOAD_AVG_MAX_N)\\n\");\n  \tdo {\n  \t\told_n \u003d n;\n  \t\tn \u003d mult_inv(n, 1) + 1024;\n  \t\ti++;\n  \t} while (n !\u003d old_n);\n  \tprintf(\"%d\u003e %ld\\n\", i - 1, n);\n  \tprintf(\"\\n\");\n  }\n\n  void main() {\n  \ty \u003d pow(0.5, 1/(double)N);\n  \tcalc_mult_inv();\n  \tcalc_conv(1024);\n  \tcalc_yn_sum(N);\n  }\n\n[ Compile with -lm ]\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.277808946@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n\nChange-Id: Ifc6dd06f234483d376bd752e536a49d3d4ca2115\n"
    },
    {
      "commit": "bdda1309760e8bf34af3ec721e49e6d2801e061f",
      "tree": "4c56ba978446e0d34f7bc812f88cd527e7c59ba3",
      "parents": [
        "9d87ebaf52832a894ce0f06ef2da10992f336f9b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:38 2016 -0500"
      },
      "message": "sched: Update_cfs_shares at period edge\n\nNow that our measurement intervals are small (~1ms) we can amortize the posting\nof update_shares() to be about each period overflow.  This is a large cost\nsaving for frequently switching tasks.\n\nChange-Id: I46f9413adf39bd2033f5b84d5134b045d0bf1d4a\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.200772172@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9d87ebaf52832a894ce0f06ef2da10992f336f9b",
      "tree": "508aae19781e216c8d5b61cc02f71e9bfbe5e3ad",
      "parents": [
        "3d608482e16e93a2b6a097e06dc5d223dcc44f98"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:32 2016 -0500"
      },
      "message": "sched: Refactor update_shares_cpu() -\u003e update_blocked_avgs()\n\nNow that running entities maintain their own load-averages the work we must do\nin update_shares() is largely restricted to the periodic decay of blocked\nentities.  This allows us to be a little less pessimistic regarding our\noccupancy on rq-\u003elock and the associated rq-\u003eclock updates required.\n\nChange-Id: Iecd8d3c194270fd5617c0473b257d9d6904386a5\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.133999170@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "3d608482e16e93a2b6a097e06dc5d223dcc44f98",
      "tree": "734f4f5367b4ac58e81b9a00e9e7f54704acf993",
      "parents": [
        "5c1cb8e63e058c28aa5128086a7c8baf644da39b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:27 2016 -0500"
      },
      "message": "sched: Replace update_shares weight distribution with per-entity computation\n\nNow that the machinery in place is in place to compute contributed load in a\nbottom up fashion; replace the shares distribution code within update_shares()\naccordingly.\n\nChange-Id: Ib53b4ee8d1c1d3e862ce5174d3b7e6ca12276400\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.061208672@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "5c1cb8e63e058c28aa5128086a7c8baf644da39b",
      "tree": "0382ee082ce062ade3c6b8a13ec612895f3adef9",
      "parents": [
        "d36b71a03b77347a09f420851ebf61dd2d8a316b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:21 2016 -0500"
      },
      "message": "sched: Maintain runnable averages across throttled periods\n\nWith bandwidth control tracked entities may cease execution according to user\nspecified bandwidth limits.  Charging this time as either throttled or blocked\nhowever, is incorrect and would falsely skew in either direction.\n\nWhat we actually want is for any throttled periods to be \"invisible\" to\nload-tracking as they are removed from the system for that interval and\ncontribute normally otherwise.\n\nDo this by moderating the progression of time to omit any periods in which the\nentity belonged to a throttled hierarchy.\n\nChange-Id: I9d2c2d8a0cc984064c37432ecb262178ce0b3d32\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.998912151@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d36b71a03b77347a09f420851ebf61dd2d8a316b",
      "tree": "a5d2ad25f531be843fe86cbb8f8e1ae04b518f44",
      "parents": [
        "fdb1a24e4d446d86a8be696072cb76f296e1ad26"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:14 2016 -0500"
      },
      "message": "sched: Normalize tg load contributions against runnable time\n\nEntities of equal weight should receive equitable distribution of cpu time.\nThis is challenging in the case of a task_group\u0027s shares as execution may be\noccurring on multiple cpus simultaneously.\n\nTo handle this we divide up the shares into weights proportionate with the load\non each cfs_rq.  This does not however, account for the fact that the sum of\nthe parts may be less than one cpu and so we need to normalize:\n  load(tg) \u003d min(runnable_avg(tg), 1) * tg-\u003eshares\nWhere runnable_avg is the aggregate time in which the task_group had runnable\nchildren.\n\nChange-Id: I6f8d2ff1e61c1559c892ed9e2da670aed92dbbeb\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e.\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.930124292@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "fdb1a24e4d446d86a8be696072cb76f296e1ad26",
      "tree": "0456bc95326e13dad91425dcedf99ff143d7ad8a",
      "parents": [
        "679f45f82e88be237ce242d77d966e5f2aceef17"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:31 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:07 2016 -0500"
      },
      "message": "sched: Compute load contribution by a group entity\n\nUnlike task entities who have a fixed weight, group entities instead own a\nfraction of their parenting task_group\u0027s shares as their contributed weight.\n\nCompute this fraction so that we can correctly account hierarchies and shared\nentity nodes.\n\nChange-Id: If61e926bb72f56c543b5b85841355f9f6997c51d\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.855074415@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "679f45f82e88be237ce242d77d966e5f2aceef17",
      "tree": "c840d147c1f5cc7ff0ef27f4f12e2b176430c56a",
      "parents": [
        "0fe5038d2a7444df1aef6343bc6e52710da783df"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:01 2016 -0500"
      },
      "message": "sched: Aggregate total task_group load\n\nMaintain a global running sum of the average load seen on each cfs_rq belonging\nto each task group so that it may be used in calculating an appropriate\nshares:weight distribution.\n\nChange-Id: If2726cb0037ddffce651ea17c46cbc4924cca7a2\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.792901086@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0fe5038d2a7444df1aef6343bc6e52710da783df",
      "tree": "5af38e0c6377251ba07bc2f608581d049734b7d7",
      "parents": [
        "635704dd72526deba57c08b2745edfc34ca251d9"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:56 2016 -0500"
      },
      "message": "sched: Account for blocked load waking back up\n\nWhen a running entity blocks we migrate its tracked load to\ncfs_rq-\u003eblocked_runnable_avg.  In the sleep case this occurs while holding\nrq-\u003elock and so is a natural transition.  Wake-ups however, are potentially\nasynchronous in the presence of migration and so special care must be taken.\n\nWe use an atomic counter to track such migrated load, taking care to match this\nwith the previously introduced decay counters so that we don\u0027t migrate too much\nload.\n\nChange-Id: Ied949a2a42f68e4d4d16275351fd1240939dd519\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.726077467@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "635704dd72526deba57c08b2745edfc34ca251d9",
      "tree": "ed9c3a6bb452424071e2ca83cad66165192d76e0",
      "parents": [
        "5f7c4c5219e97f83a952f1748c065df78fce45c6"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:46 2016 -0500"
      },
      "message": "sched: Add an rq migration call-back to sched_class\n\nSince we are now doing bottom up load accumulation we need explicit\nnotification when a task has been re-parented so that the old hierarchy can be\nupdated.\n\nAdds: migrate_task_rq(struct task_struct *p, int next_cpu)\n\n(The alternative is to do this out of __set_task_cpu, but it was suggested that\nthis would be a cleaner encapsulation.)\n\nChange-Id: Icc4111cd4159f804186dd7c05f0c36f4e368288e\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.660023400@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "5f7c4c5219e97f83a952f1748c065df78fce45c6",
      "tree": "4022e076f170b88667c57015bfddfcb648804a79",
      "parents": [
        "1c5465d1d1d5aea96eb71318c361d434e0a7cce7"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:40 2016 -0500"
      },
      "message": "sched: Maintain the load contribution of blocked entities\n\nWe are currently maintaining:\n\n  runnable_load(cfs_rq) \u003d \\Sum task_load(t)\n\nFor all running children t of cfs_rq.  While this can be naturally updated for\ntasks in a runnable state (as they are scheduled); this does not account for\nthe load contributed by blocked task entities.\n\nThis can be solved by introducing a separate accounting for blocked load:\n\n  blocked_load(cfs_rq) \u003d \\Sum runnable(b) * weight(b)\n\nObviously we do not want to iterate over all blocked entities to account for\ntheir decay, we instead observe that:\n\n  runnable_load(t) \u003d \\Sum p_i*y^i\n\nand that to account for an additional idle period we only need to compute:\n\n  y*runnable_load(t).\n\nThis means that we can compute all blocked entities at once by evaluating:\n\n  blocked_load(cfs_rq)` \u003d y * blocked_load(cfs_rq)\n\nFinally we maintain a decay counter so that when a sleeping entity re-awakens\nwe can determine how much of its load should be removed from the blocked sum.\n\nChange-Id: Ib0b29b3d1ca872a13d7236ed142156ef0a35dc9a\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.585389902@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "1c5465d1d1d5aea96eb71318c361d434e0a7cce7",
      "tree": "060d3fff882c4888cba9fb2fdd3c7c06afc9e53e",
      "parents": [
        "b9283adf8c4c2dcbe1fd5a6171c658bc7924bc65"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:34 2016 -0500"
      },
      "message": "sched: Aggregate load contributed by task entities on parenting cfs_rq\n\nFor a given task t, we can compute its contribution to load as:\n\n  task_load(t) \u003d runnable_avg(t) * weight(t)\n\nOn a parenting cfs_rq we can then aggregate:\n\n  runnable_load(cfs_rq) \u003d \\Sum task_load(t), for all runnable children t\n\nMaintain this bottom up, with task entities adding their contributed load to\nthe parenting cfs_rq sum.  When a task entity\u0027s load changes we add the same\ndelta to the maintained sum.\n\nChange-Id: If3b74d345354a340836bbc356002982e25ab3244\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.514678907@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b9283adf8c4c2dcbe1fd5a6171c658bc7924bc65",
      "tree": "49340484990b18a85f0ec60eb473e070cbce2f65",
      "parents": [
        "e4079d2be87ac03bacdf2ad4076366b9099f1043"
      ],
      "author": {
        "name": "Ben Segall",
        "email": "bsegall@google.com",
        "time": "Thu Oct 04 12:51:20 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:29 2016 -0500"
      },
      "message": "sched: Maintain per-rq runnable averages\n\nSince runqueues do not have a corresponding sched_entity we instead embed a\nsched_avg structure directly.\n\nChange-Id: Ib2a80c77f6b4e017eaa72b31004630c7d95e4b94\nSigned-off-by: Ben Segall \u003cbsegall@google.com\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.442637130@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "e4079d2be87ac03bacdf2ad4076366b9099f1043",
      "tree": "7666d57c41be488b79b7de50fe65cc11d7acca2e",
      "parents": [
        "2f9d485e1a6c66b5a27495ca1e86b1df1dda2213"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:29 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:24 2016 -0500"
      },
      "message": "sched: Track the runnable average on a per-task entity basis\n\nInstead of tracking averaging the load parented by a cfs_rq, we can track\nentity load directly. With the load for a given cfs_rq then being the sum\nof its children.\n\nTo do this we represent the historical contribution to runnable average\nwithin each trailing 1024us of execution as the coefficients of a\ngeometric series.\n\nWe can express this for a given task t as:\n\n  runnable_sum(t) \u003d \\Sum u_i * y^i, runnable_avg_period(t) \u003d \\Sum 1024 * y^i\n  load(t) \u003d weight_t * runnable_sum(t) / runnable_avg_period(t)\n\nWhere: u_i is the usage in the last i`th 1024us period (approximately 1ms)\n~ms and y is chosen such that y^k \u003d 1/2.  We currently choose k to be 32 which\nroughly translates to about a sched period.\n\nChange-Id: Iafc090fe18ed1835cc501949e8ba1e4ed78c5de1\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.372695337@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7d1db3b4bf74cce126755dfb4475632b82fcb95c",
      "tree": "93c3d320898d4c6eb0900e629f985256761e5cfb",
      "parents": [
        "332797a68d7a269225c47de2bb4e581eea5bcb47"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Mon May 23 11:34:02 2016 -0500"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Mon May 23 12:01:42 2016 -0500"
      },
      "message": "f2fs: Squashed update of f2fs-stable\n\nhttps://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-stable.git\nBranch: linux-3.4.y\nUp to and including:\n  Revert \"f2fs: use cryptoapi crc32 functions\"\n  5b2523fc731f68cb48ca3d82f3ef2952a61ae5ba\n\nChange-Id: I062d186a7525d6a2ac431f811e5ca550c41ecf0f\n"
    },
    {
      "commit": "766ce4e5a952510f9f27511cbfecc884bf5147cd",
      "tree": "93ad1970e254fc3b1fb0650a4dc449d86ad5114e",
      "parents": [
        "3bc527393379fcd740cc66c700da808abdbf5a5d"
      ],
      "author": {
        "name": "Ivan Grinko",
        "email": "iivanich@gmail.com",
        "time": "Thu Apr 28 22:06:41 2016 +0300"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 08:03:16 2016 -0400"
      },
      "message": "Linux 3.4.112\n\nhttps://cdn.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.112\n\nChange-Id: Ic146bc84c10ebcfe256eb6bffa8ffef44c9a1d38\n"
    },
    {
      "commit": "60489ce5993943a898684e790de90f2f684a50b0",
      "tree": "92d7e37d43a6f22ac211d1d4d3f97802099dfbf5",
      "parents": [
        "981442090d47101c6cc4f1146021c827ff13a4b4"
      ],
      "author": {
        "name": "Paul Reioux",
        "email": "reioux@gmail.com",
        "time": "Mon Jan 04 23:31:47 2016 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 07:50:24 2016 -0400"
      },
      "message": "Add IntelliPlug hotplug 3.8\n\nintelli_plug: intelligent hotplug cpu driver with eco mode\n\nChange-Id: Ic598c947232f98779cfe129f63bee24d2c8514ac\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: tweak for faster wakeup from suspend\n\nbump version to 1.1\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: increase cores on persistence\n\nalso replace hardcoded values with Macros for ease of updating later\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: make it gcc-4.6.x eabi compatible :p\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: use rq_stats to help detect artificial or constant loads\n\nbenchmarks often create fake / artificial loads at a constant rate.  These\ntype of loads are not detected corectly by run average algorithms. Use\nthe run queue stats to help detect these cases and bring up the cores in\ncorrespondence.\n\nbump version to 1.2\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: use mp_decision() algorithm for core 3 and 4\n\nThis replaces the simplistic check for run queue thresholds with a more\nsophisticate algorithm with time awareness\n\nbump version to 1.3\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: tweak mp_decsion parameters and remove unused logic\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: bump threshold slightly for better response\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nwip: intelli_plug: change logic for better benchmark performance\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: use mp_decision to reduce online persistence count for cores\n\nthis should bring down the cores faster when run queue is low\nalso optimized code a bit using local vars\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: disable by default\n\nlet the user enable via sysfs so it won\u0027t clash with mpdecision which is\nenabled by default for qualcomm phones\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nintelli_plug: slow down hotplug activity from 50ms to 200ms\n\nthis will reduce the hotplug chaos which may in turn save more power\n\nSigned-off-by: faux123 \u003creioux@gmail.com\u003e\n\nConflicts:\n\tarch/arm/mach-msm/intelli_plug.c\n\nintelli_plug: code clean up and minor bug fixes\n\nbump to version 1.6\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelliplug: replaced deprecated early_suspend driver with userspace interface\n\nearly_suspend has been deprecated, so move original functionality to sysfs\ninterfae and have userspace app to replicate the early_suspend functionality\n\nbump version to 1.7\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add dynamic load sampling rate logic\n\nAdd dynamic sampling logic based on load. If load is high and required more\nthan 2 cores, increase the sampling rate for a duration of 3 seconds to help\nmanage the load better during this time.  Once duration expires, revert back\nto lazier sampling rate for better batter performance.\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add new power_suspend PM driver\n\nbump version to 1.9\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add touch input logic\n\nchanged intelli_plug sampling rates and bump to version 2.0\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: use a context safe function call instead\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: performance tune-up continued...\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: switch to use dedicated high priority workqueue\n\nfrom the shared global workqueue.  This should prevent hang ups while the\nglobal workqueue is busy and cleaned up some logic issues.\n\ngive input boost its own workqueue\n\nbump to version 2.2\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: code review clean up\n\nset def sampling rate to something sane rather than zero (instantaneous\nrescheduling is not good if intelli_plug is disabled)\n\nmake touch input more generic rather than tied to a touchscreen driver\n\nremove unused code\n\nthanks to @dorimanx for the code reviews and suggestions\n\nbump to version 2.3\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nIntelli_plug: add wakeup cpufreq boost for quicker wakeup\n\nbump version to 2.4\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add screen off max controls\n\nbump to version 2.5\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add parameter to control touch boost on/off\n\nbump version to 2.6\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: refactor stats calculation code to be less intrusive\n\nthis is done for those kernels which do not have 100% source code available\nand must use existing closed source modules such as wifi drivers\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nIntelli_plug: kernel sched/core: add per cpu nr_running stats\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add profiles support and misc code optimization\n\nbump to version 3.0\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: use per cpu nr_runnings stats for unplugging cores\n\nbump version to 3.1\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: allow cpu_nr_running_threshold to be user adjustable\n\nbump version to 3.2\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: tweak cpu_nr_running threshold\n\nand fix minor logic issues\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: remove legacy msm_rq based code\n\njust use the original algorithm based on nr_running_stats\n\nbump version to 3.3\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add nr_running_thresholds based on thread capacity of SOC type\n\ninstead of hard coded nr_running_thresholds, perform compile time calculation\nof thresholds based on thread capacity of SOC types.\n\nbump version to 3.4\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: misc minor code fixup post 3.4 update\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: add automatic dual-core initializations\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: deprecate eco mode. replaced by built-in profile\n\nbump version to 3.5\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: post 3.5 tweaks and code clean up\n\nbump to version 3.6\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: move to its own directory. It\u0027s been cross platform for a while\n\nintelli_plug driver has been working on OMAP44xx, TEGRA 3, Exynos and\nMSM Krait/Cortex multi-core SOCs.  So it doesn\u0027t make sense to patch on a per\nSOC basis, move it to its own ARM platform independent folder so patches can\napply to all supported ARM platforms\n\nChange-Id: Icf778959cbaa59c73fefa2d27f682efa6d8adf93\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: unify powersuspend and earlysuspend drivers\n\nalso minor clean up on the persist logic\n\nbump to version 3.7\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: adjust thread capacity for Cortex A7 SOCs\n\nCortex A7 is much weaker than Krait processors\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: fix thread capacity threshold calculation\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: fix logic error for eco mode profiles\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: only apply suspend/resume logic if active\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: fix incorrect cpufreq API usage\n\nThis resolves the wakeup kick and screen off max issues\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: initialize ip_info struct element during driver init\n\nthis will eliminate race issues\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: use primary CPU\u0027s info data for non-boot cpu\u0027s settings\n\nAsync CPU design has caused quite a bit of grief for controlling cpu\nfrequencies\n\nbump to version 3.8\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nintelli_plug: older Qualcomm kernel compatibility fixup\n\nARGH... really angry at CAF code.\n\nsome cpufreq driver APIs are incredibly unstable with some of the older\nMSM kernels.  The correct way is the fix the cpufreq drivers, but there are\ntons of variations out there, so rather than depending on a fix, make\nintelli_plug more universal by avoiding the troubling APIs altogether\n\nSigned-off-by: Paul Reioux \u003creioux@gmail.com\u003e\n\nChange-Id: Ia530ec03b2b678fdb538b94b272599e96309133f\n"
    },
    {
      "commit": "a12321d34f35fb8eacb3f39d1d53eb8d6e52fa8a",
      "tree": "117684b717e5673830e846787349297fb9aa9518",
      "parents": [
        "c2acc6aa8577494fe6e8830922b4cabe956fdd20"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Sep 29 14:45:09 2015 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Apr 27 18:55:21 2016 +0800"
      },
      "message": "sched/core: Fix TASK_DEAD race in finish_task_switch()\n\ncommit 95913d97914f44db2b81271c2e2ebd4d2ac2df83 upstream.\n\nSo the problem this patch is trying to address is as follows:\n\n        CPU0                            CPU1\n\n        context_switch(A, B)\n                                        ttwu(A)\n                                          LOCK A-\u003epi_lock\n                                          A-\u003eon_cpu \u003d\u003d 0\n        finish_task_switch(A)\n          prev_state \u003d A-\u003estate  \u003c-.\n          WMB                      |\n          A-\u003eon_cpu \u003d 0;           |\n          UNLOCK rq0-\u003elock         |\n                                   |    context_switch(C, A)\n                                   `--  A-\u003estate \u003d TASK_DEAD\n          prev_state \u003d\u003d TASK_DEAD\n            put_task_struct(A)\n                                        context_switch(A, C)\n                                        finish_task_switch(A)\n                                          A-\u003estate \u003d\u003d TASK_DEAD\n                                            put_task_struct(A)\n\nThe argument being that the WMB will allow the load of A-\u003estate on CPU0\nto cross over and observe CPU1\u0027s store of A-\u003estate, which will then\nresult in a double-drop and use-after-free.\n\nNow the comment states (and this was true once upon a long time ago)\nthat we need to observe A-\u003estate while holding rq-\u003elock because that\nwill order us against the wakeup; however the wakeup will not in fact\nacquire (that) rq-\u003elock; it takes A-\u003epi_lock these days.\n\nWe can obviously fix this by upgrading the WMB to an MB, but that is\nexpensive, so we\u0027d rather avoid that.\n\nThe alternative this patch takes is: smp_store_release(\u0026A-\u003eon_cpu, 0),\nwhich avoids the MB on some archs, but not important ones like ARM.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: linux-kernel@vger.kernel.org\nCc: manfred@colorfullife.com\nCc: will.deacon@arm.com\nFixes: e4a52bcb9a18 (\"sched: Remove rq-\u003elock from the first half of ttwu()\")\nLink: http://lkml.kernel.org/r/20150929124509.GG3816@twins.programming.kicks-ass.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n[lizf: Backported to 3.4: use smb_mb() instead of smp_store_release(), which\n is not defined in 3.4.y]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "0c02155162467f29bea0dfef925e6f27df1efc7f",
      "tree": "e882a5f9fb5e307b9b9009951d7ba17874101ace",
      "parents": [
        "3ce7216195cf6c0967508999d2cd75ce78044210"
      ],
      "author": {
        "name": "Yunlei He",
        "email": "heyunlei@huawei.com",
        "time": "Tue Feb 23 12:07:56 2016 +0800"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Mar 07 15:22:23 2016 -0800"
      },
      "message": "f2fs: avoid hungtask problem caused by losing wake_up\n\nThe D state of wait_on_all_pages_writeback should be waken by\nfunction f2fs_write_end_io when all writeback pages have been\nsuccesfully written to device. It\u0027s possible that wake_up comes\nbetween get_pages and io_schedule. Maybe in this case it will\nlost wake_up and still in D state even if all pages have been\nwrite back to device, and finally, the whole system will be into\nthe hungtask state.\n\n                if (!get_pages(sbi, F2FS_WRITEBACK))\n                         break;\n\t\t\t\t\t\u003c---------  wake_up\n                io_schedule();\n\nSigned-off-by: Yunlei He \u003cheyunlei@huawei.com\u003e\nSigned-off-by: Biao He \u003chebiao6@huawei.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "ad31516703a7c1210078f690ea94a8efe4d01e91",
      "tree": "ab4494f3a60980909ac339ea58ec920c363dbf18",
      "parents": [
        "e8a835b9a482c3ab97c08847361900f7ed8ab1a6",
        "3edd6224c2a677bb59efe0b083a51fc2b3b5c64d"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Mon Feb 22 00:00:29 2016 -0500"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Mon Feb 22 17:33:37 2016 -0500"
      },
      "message": "Merge tag v3.4.110 into cm-13.0\n\nConflicts:\n\tdrivers/bluetooth/btusb.c\n\tdrivers/cpufreq/cpufreq.c\n\tdrivers/md/dm-crypt.c\n\tdrivers/mmc/core/core.c\n\tfs/namespace.c\n\tinclude/linux/usb/quirks.h\n\tnet/bluetooth/l2cap_core.c\n\tnet/bluetooth/smp.c\n\tnet/netfilter/xt_socket.c\n\tsecurity/keys/gc.c\n\tsecurity/selinux/nlmsgtab.c\n\nChange-Id: I336fc28268bf70846a49e8f1db4899a10a4e5edb\n"
    },
    {
      "commit": "64c363146fe8b4b26285d36fad0fc01b9c8c1285",
      "tree": "f4597aeccc6d37aadbf3a719dfefc62632e4ee10",
      "parents": [
        "900469d0b0c337db19908f77d172f4b17f4573ba"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Mon Sep 21 22:00:27 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:03:50 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.109\u0027 into mm-6.0\n\nChange-Id: I93b29443377e338fc5d3b031b130da720f788879\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "900469d0b0c337db19908f77d172f4b17f4573ba",
      "tree": "e7c8e6e70ad09ecc74c7385269f9a7a908489b88",
      "parents": [
        "3591a444f6b8cb82a9b88a49a4e67d8f4b61a6de"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Sat Jun 20 23:45:36 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:02:51 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.108\u0027 into mm-6.0\n\nChange-Id: I5ee718e5c87c9647c6edf0926a887679e065a649\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "f39f5a4177f0aadec47f4c3b0c4958913ff2d279",
      "tree": "1f7a7399f750084756567c2cb64f762e5b170955",
      "parents": [
        "180e131b326585b5bc7661e1c7b477a2761b5642"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Fri Dec 12 15:38:12 2014 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:02:08 2016 -0500"
      },
      "message": "sched/rt: Reduce rq lock contention by eliminating locking of non-feasible target\n\ncommit 80e3d87b2c5582db0ab5e39610ce3707d97ba409 upstream.\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 \u003ctim.c.chen@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nCc: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nCc: Suruchi Kadu \u003csuruchi.a.kadu@intel.com\u003e\nCc: Doug Nelson\u003cdoug.nelson@intel.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1421430374.2399.27.camel@schen9-desk2.jf.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aaedb09057b05c7c9e213dc465bff5f70e708535",
      "tree": "2f2a0c645f970d5f6390ca39ee2e1fe0f2eea790",
      "parents": [
        "a39bf4a8e29c7336c0c72652b7d0dd1cd1b13c51"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 07 20:58:41 2014 +0100"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:47 2015 +0800"
      },
      "message": "sched: 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 \u003d 90);\n ...\n sys_sched_setscheduler(pid(T1), SCHED_FIFO, .prio \u003d 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 \u003ctglx@linutronix.de\u003e\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1391803122-4425-6-git-send-email-bigeasy@linutronix.de\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "36cddaebe771b9476da10b724da435d5130bb0aa",
      "tree": "c095ee93018c05172cab85deef8749623536a49b",
      "parents": [
        "7afc45bbf2c761175211a41feb5766a56c2f189a"
      ],
      "author": {
        "name": "Brian Silverman",
        "email": "brian@peloton-tech.com",
        "time": "Wed Feb 18 16:23:56 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:29 2015 +0800"
      },
      "message": "sched: 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\u0027t 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 \u003cbrian@peloton-tech.com\u003e\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\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 \u003cmingo@kernel.org\u003e\n[lizf: Backported to 3.4: adjust contest]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7e56f7d5e001c27ff63505cb558ca1bfc9a4d765",
      "tree": "24b4b1fda27612730abdd8587c6565e91a48ead2",
      "parents": [
        "bbfd65dbf0305fdea6414280e5c3998930fd381b"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Mon Mar 11 16:33:42 2013 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:05:07 2015 -0400"
      },
      "message": "sched: provide per cpu-cgroup option to notify on migrations\n\nOn systems where CPUs may run asynchronously, task migrations\nbetween CPUs running at grossly different speeds can cause\nproblems.\n\nThis change provides a mechanism to notify a subsystem\nin the kernel if a task in a particular cgroup migrates to a\ndifferent CPU. Other subsystems (such as cpufreq) may then\nregister for this notifier to take appropriate action when\nsuch a task is migrated.\n\nThe cgroup attribute to set for this behavior is\n\"notify_on_migrate\" .\n\nChange-Id: Ie1868249e53ef901b89c837fdc33b0ad0c0a4590\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "590603b71e399e5dbf328eda7b780ee0dca939ce",
      "tree": "5959e9dc2080225bd89a930ddd7cf2425ff2d89c",
      "parents": [
        "c12b6db9f1a9841949ce5776b71dffb03f911692"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Fri Dec 12 15:38:12 2014 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:34:03 2015 +0800"
      },
      "message": "sched/rt: Reduce rq lock contention by eliminating locking of non-feasible target\n\ncommit 80e3d87b2c5582db0ab5e39610ce3707d97ba409 upstream.\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 \u003ctim.c.chen@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nCc: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nCc: Suruchi Kadu \u003csuruchi.a.kadu@intel.com\u003e\nCc: Doug Nelson\u003cdoug.nelson@intel.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1421430374.2399.27.camel@schen9-desk2.jf.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1097d78180e1a2916c2bcdb15cb90ba131af9cd8",
      "tree": "5910f8fc0dcb85c71011ccccee18895769699390",
      "parents": [
        "3ded4adc97887ddde3c1855f29f062e015d19425",
        "7fd7a446b1c2b96252e4389746e5419eae04faef"
      ],
      "author": {
        "name": "Paul",
        "email": "javelinanddart@gmail.com",
        "time": "Sun Jan 11 17:15:40 2015 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Jan 11 17:20:45 2015 -0800"
      },
      "message": "Merge tag \u0027v3.4.105\u0027 into cm-12.0\n\nThis is the 3.4.105 stable release\n\nConflicts:\n\tarch/arm/mm/proc-v7.S\n\tdrivers/bluetooth/hci_ldisc.c\n\tdrivers/media/dvb/dvb-core/dmxdev.c\n\tdrivers/usb/core/driver.c\n\tdrivers/usb/dwc3/core.c\n\tdrivers/usb/host/xhci-hub.c\n\tdrivers/usb/host/xhci.c\n\tdrivers/usb/serial/qcserial.c\n\tdrivers/usb/serial/usb_wwan.c\n\tkernel/events/core.c\n\tkernel/time/tick-sched.ck\n\tkernel/futex.c\n\tmm/memory_hotplug.c\n\tmm/vmscan.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/ipv4/ping.c\n\tnet/wireless/nl80211.c\n\tsound/soc/soc-core.c\n\nChange-Id: Id09da84afb427ba1a32ff26e74f2bb86458d4a2e\n"
    },
    {
      "commit": "f73ff697833654ee578b606ea746d15dc1220aab",
      "tree": "5fba9efb577e61579fc9dba897f500b200fd6985",
      "parents": [
        "7f6c1deb02e6ac110645c87fd2446594803a8a72"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jun 04 16:11:40 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 07 12:00:10 2014 -0700"
      },
      "message": "printk: rename printk_sched to printk_deferred\n\ncommit aac74dc495456412c4130a1167ce4beb6c1f0b38 upstream.\n\nAfter learning we\u0027ll need some sort of deferred printk functionality in\nthe timekeeping core, Peter suggested we rename the printk_sched function\nso it can be reused by needed subsystems.\n\nThis only changes the function name. No logic changes.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Jiri Bohac \u003cjbohac@suse.cz\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d6e81d4f7b4e8cea2817c7568e3756798cd29aae",
      "tree": "0f9ff9d27bcba2a3278122bb4834a33a4da02266",
      "parents": [
        "ee40d72c3e6fc7e6cd5241eb84fa104b61dc8ec3"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri May 16 11:50:42 2014 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:11 2014 -0700"
      },
      "message": "sched: Fix hotplug vs. set_cpus_allowed_ptr()\n\ncommit 6acbfb96976fc3350e30d964acb1dbbdf876d55e upstream.\n\nLai found that:\n\n  WARNING: CPU: 1 PID: 13 at arch/x86/kernel/smp.c:124 native_smp_send_reschedule+0x2d/0x4b()\n  ...\n  migration_cpu_stop+0x1d/0x22\n\nwas caused by set_cpus_allowed_ptr() assuming that cpu_active_mask is\nalways a sub-set of cpu_online_mask.\n\nThis isn\u0027t true since 5fbd036b552f (\"sched: Cleanup cpu_active madness\").\n\nSo set active and online at the same time to avoid this particular\nproblem.\n\nFixes: 5fbd036b552f (\"sched: Cleanup cpu_active madness\")\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Gautham R. Shenoy \u003cego@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Michael wang \u003cwangyun@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Toshi Kani \u003ctoshi.kani@hp.com\u003e\nLink: http://lkml.kernel.org/r/53758B12.8060609@cn.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "4e0d105c09b8bec501ff5455b774bf3a845d017c",
      "tree": "2f40d878516c7293b85309c34e3caf78cd652465",
      "parents": [
        "22feaed11f1b0c58aab5df196c0bf011e7095a62"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Sun Apr 13 09:34:53 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:10 2014 -0700"
      },
      "message": "sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check\n\ncommit 6227cb00cc120f9a43ce8313bb0475ddabcb7d01 upstream.\n\nThe check at the beginning of cpupri_find() makes sure that the task_pri\nvariable does not exceed the cp-\u003epri_to_cpu array length. But that length\nis CPUPRI_NR_PRIORITIES not MAX_RT_PRIO, where it will miss the last two\npriorities in that array.\n\nAs task_pri is computed from convert_prio() which should never be bigger\nthan CPUPRI_NR_PRIORITIES, if the check should cause a panic if it is\nhit.\n\nReported-by: Mike Galbraith \u003cumgwanakikbuti@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1397015410.5212.13.camel@marge.simpson.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e5f1ec5d39f6d59bfe5c53f4b28a94e3a4245e02",
      "tree": "72a98a486d26d757ef26ed5e6ccf25726d7b90ce",
      "parents": [
        "4aff95ab8f985d14f585187b5f78c65a56dd716b"
      ],
      "author": {
        "name": "libin",
        "email": "huawei.libin@huawei.com",
        "time": "Mon Apr 08 14:39:12 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:04 2014 -0700"
      },
      "message": "sched/debug: Fix sd-\u003e*_idx limit range avoiding overflow\n\ncommit fd9b86d37a600488dbd80fe60cca46b822bff1cd upstream.\n\nCommit 201c373e8e (\"sched/debug: Limit sd-\u003e*_idx range on\nsysctl\") was an incomplete bug fix.\n\nThis patch fixes sd-\u003e*_idx limit range to [0 ~ CPU_LOAD_IDX_MAX-1]\navoiding array overflow caused by setting sd-\u003e*_idx to CPU_LOAD_IDX_MAX\non sysctl.\n\nSigned-off-by: Libin \u003chuawei.libin@huawei.com\u003e\nCc: \u003cjiang.liu@huawei.com\u003e\nCc: \u003cguohanjun@huawei.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/51626610.2040607@huawei.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "4aff95ab8f985d14f585187b5f78c65a56dd716b",
      "tree": "a009a89d60863d3681042a21b496c08758636b78",
      "parents": [
        "74d86ed74b4ddf37de24a9ad979a8aafd2d4c25f"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Thu Aug 16 17:03:24 2012 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:04 2014 -0700"
      },
      "message": "sched/debug: Limit sd-\u003e*_idx range on sysctl\n\ncommit 201c373e8e4823700d3160d5c28e1ab18fd1193e upstream.\n\nVarious sd-\u003e*_idx\u0027s are used for refering the rq\u0027s load average table\nwhen selecting a cpu to run.  However they can be set to any number\nwith sysctl knobs so that it can crash the kernel if something bad is\ngiven. Fix it by limiting them into the actual range.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1345104204-8317-1-git-send-email-namhyung@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "c5989bd43645dbb5d48197b02397565d1ceffa29",
      "tree": "bda6cd4ad20680299c06d3c459804f92ec44dbdb",
      "parents": [
        "33d588d0d93e7bf0af4b05420585bfc5df474e63"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Apr 20 13:05:45 2012 +0000"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Mar 29 00:49:53 2014 -0700"
      },
      "message": "smp: Provide generic idle thread allocation\n\nAll SMP architectures have magic to fork the idle task and to store it\nfor reusage when cpu hotplug is enabled. Provide a generic\ninfrastructure for it.\n\nCreate/reinit the idle thread for the cpu which is brought up in the\ngeneric code and hand the thread pointer to the architecture code via\n__cpu_up().\n\nNote, that fork_idle() is called via a workqueue, because this\nguarantees that the idle thread does not get a reference to a user\nspace VM. This can happen when the boot process did not bring up all\npossible cpus and a later cpu_up() is initiated via the sysfs\ninterface. In that case fork_idle() would be called in the context of\nthe user space task and take a reference on the user space VM.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: Richard Kuo \u003crkuo@codeaurora.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: James E.J. Bottomley \u003cjejb@parisc-linux.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: x86@kernel.org\nAcked-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nLink: http://lkml.kernel.org/r/20120420124557.102478630@linutronix.de\n\nChange-Id: Ie2d32789f3a69ee15f38ba704aaa84d6be85bcd4\n"
    },
    {
      "commit": "6ba4d1d9112b3f6bf0f634870bb950b5b59fa86f",
      "tree": "f6089b725009d95c6686bb6bb02022231c3f0a88",
      "parents": [
        "efcb9185af1155146326a850aaa6617a5bb55172"
      ],
      "author": {
        "name": "George McCollister",
        "email": "george.mccollister@gmail.com",
        "time": "Tue Feb 18 17:56:51 2014 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Mar 23 21:37:03 2014 -0700"
      },
      "message": "sched: Fix double normalization of vruntime\n\ncommit 791c9e0292671a3bfa95286bb5c08129d8605618 upstream.\n\ndequeue_entity() is called when p-\u003eon_rq and sets se-\u003eon_rq \u003d 0\nwhich appears to guarentee that the !se-\u003eon_rq condition is met.\nIf the task has done set_current_state(TASK_INTERRUPTIBLE) without\nschedule() the second condition will be met and vruntime will be\nincorrectly adjusted twice.\n\nIn certain cases this can result in the task\u0027s vruntime never increasing\npast the vruntime of other tasks on the CFS\u0027 run queue, starving them of\nCPU time.\n\nThis patch changes switched_from_fair() to use !p-\u003eon_rq instead of\n!se-\u003eon_rq.\n\nI\u0027m able to cause a task with a priority of 120 to starve all other\ntasks with the same priority on an ARM platform running 3.2.51-rt72\nPREEMPT RT by writing one character at time to a serial tty (16550 UART)\nin a tight loop. I\u0027m also able to verify making this change corrects the\nproblem on that platform and kernel version.\n\nSigned-off-by: George McCollister \u003cgeorge.mccollister@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1392767811-28916-1-git-send-email-george.mccollister@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "66d383de0963dd351051304e36247e9a6fa66b77",
      "tree": "5cd17ffcb6edfa4385a2ceddb63ada9efdea2ee1",
      "parents": [
        "c523abc466c9b7c693e4a528ca2f54c6e931b6a6",
        "2606524141e4ff9b6a5d0bcbd9d601dfc5a8285c"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Mar 07 11:56:04 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Mar 07 11:56:04 2014 -0800"
      },
      "message": "Merge tag \u0027v3.4.82\u0027 into cm-11.0\n\nThis is the 3.4.82 stable release\n\nConflicts:\n\tarch/arm/kernel/traps.c\n\tmm/internal.h\n\nChange-Id: Ie3b1ffdfe133e76cfa3eaaa4305535af8490d7cc\n"
    },
    {
      "commit": "f5a4c4b79e57f875b6788f6f8352ca246bfd8450",
      "tree": "936b2200d4581b36faa0c94fab560013486885be",
      "parents": [
        "e2d51f27e382be7b70a755f3ea2fbbeacdb50834"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 17 17:15:29 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:32 2014 -0800"
      },
      "message": "sched/nohz: Fix rq-\u003ecpu_load calculations some more\n\ncommit 5aaa0b7a2ed5b12692c9ffb5222182bd558d3146 upstream.\n\nFollow up on commit 556061b00 (\"sched/nohz: Fix rq-\u003ecpu_load[]\ncalculations\") since while that fixed the busy case it regressed the\nmostly idle case.\n\nAdd a callback from the nohz exit to also age the rq-\u003ecpu_load[]\narray. This closes the hole where either there was no nohz load\nbalance pass during the nohz, or there was a \u0027significant\u0027 amount of\nidle time between the last nohz balance and the nohz exit.\n\nSo we\u0027ll update unconditionally from the tick to not insert any\naccidental 0 load periods while busy, and we try and catch up from\nnohz idle balance and nohz exit. Both these are still prone to missing\na jiffy, but that has always been the case.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: pjt@google.com\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nLink: http://lkml.kernel.org/n/tip-kt0trz0apodbf84ucjfdbr1a@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e2d51f27e382be7b70a755f3ea2fbbeacdb50834",
      "tree": "893a14b43a9eda39df07c1a6879c74f197977358",
      "parents": [
        "1c2bd0db1189643691557ff34406906b053cef92"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 11 17:31:26 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:32 2014 -0800"
      },
      "message": "sched/nohz: Fix rq-\u003ecpu_load[] calculations\n\ncommit 556061b00c9f2fd6a5524b6bde823ef12f299ecf upstream.\n\nWhile investigating why the load-balancer did funny I found that the\nrq-\u003ecpu_load[] tables were completely screwy.. a bit more digging\nrevealed that the updates that got through were missing ticks followed\nby a catchup of 2 ticks.\n\nThe catchup assumes the cpu was idle during that time (since only nohz\ncan cause missed ticks and the machine is idle etc..) this means that\nesp. the higher indices were significantly lower than they ought to\nbe.\n\nThe reason for this is that its not correct to compare against jiffies\non every jiffy on any other cpu than the cpu that updates jiffies.\n\nThis patch cludges around it by only doing the catch-up stuff from\nnohz_idle_balance() and doing the regular stuff unconditionally from\nthe tick.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: pjt@google.com\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nLink: http://lkml.kernel.org/n/tip-tp4kj18xdd5aj4vvj0qg55s2@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "dbf3239455b155c3e72deacda93ef3a041e190c9",
      "tree": "c7a8cfce370fa0de4cdeaab1b75925061fe9ccf1",
      "parents": [
        "f61eb9ceb26cee3fdbb8c7a4920f171f7661fb4f"
      ],
      "author": {
        "name": "Ying Xue",
        "email": "ying.xue@windriver.com",
        "time": "Tue Jul 17 15:03:43 2012 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 13 11:51:19 2014 -0800"
      },
      "message": "sched/rt: Avoid updating RT entry timeout twice within one tick period\n\ncommit 57d2aa00dcec67afa52478730f2b524521af14fb upstream.\n\nThe issue below was found in 2.6.34-rt rather than mainline rt\nkernel, but the issue still exists upstream as well.\n\nSo please let me describe how it was noticed on 2.6.34-rt:\n\nOn this version, each softirq has its own thread, it means there\nis at least one RT FIFO task per cpu. The priority of these\ntasks is set to 49 by default. If user launches an RT FIFO task\nwith priority lower than 49 of softirq RT tasks, it\u0027s possible\nthere are two RT FIFO tasks enqueued one cpu runqueue at one\nmoment. By current strategy of balancing RT tasks, when it comes\nto RT tasks, we really need to put them off to a CPU that they\ncan run on as soon as possible. Even if it means a bit of cache\nline flushing, we want RT tasks to be run with the least latency.\n\nWhen the user RT FIFO task which just launched before is\nrunning, the sched timer tick of the current cpu happens. In this\ntick period, the timeout value of the user RT task will be\nupdated once. Subsequently, we try to wake up one softirq RT\ntask on its local cpu. As the priority of current user RT task\nis lower than the softirq RT task, the current task will be\npreempted by the higher priority softirq RT task. Before\npreemption, we check to see if current can readily move to a\ndifferent cpu. If so, we will reschedule to allow the RT push logic\nto try to move current somewhere else. Whenever the woken\nsoftirq RT task runs, it first tries to migrate the user FIFO RT\ntask over to a cpu that is running a task of lesser priority. If\nmigration is done, it will send a reschedule request to the found\ncpu by IPI interrupt. Once the target cpu responds the IPI\ninterrupt, it will pick the migrated user RT task to preempt its\ncurrent task. When the user RT task is running on the new cpu,\nthe sched timer tick of the cpu fires. So it will tick the user\nRT task again. This also means the RT task timeout value will be\nupdated again. As the migration may be done in one tick period,\nit means the user RT task timeout value will be updated twice\nwithin one tick.\n\nIf we set a limit on the amount of cpu time for the user RT task\nby setrlimit(RLIMIT_RTTIME), the SIGXCPU signal should be posted\nupon reaching the soft limit.\n\nBut exactly when the SIGXCPU signal should be sent depends on the\nRT task timeout value. In fact the timeout mechanism of sending\nthe SIGXCPU signal assumes the RT task timeout is increased once\nevery tick.\n\nHowever, currently the timeout value may be added twice per\ntick. So it results in the SIGXCPU signal being sent earlier\nthan expected.\n\nTo solve this issue, we prevent the timeout value from increasing\ntwice within one tick time by remembering the jiffies value of\nlast updating the timeout. As long as the RT task\u0027s jiffies is\ndifferent with the global jiffies value, we allow its timeout to\nbe updated.\n\nSigned-off-by: Ying Xue \u003cying.xue@windriver.com\u003e\nSigned-off-by: Fan Du \u003cfan.du@windriver.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1342508623-2887-1-git-send-email-ying.xue@windriver.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n[ lizf: backported to 3.4: adjust context ]\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f61eb9ceb26cee3fdbb8c7a4920f171f7661fb4f",
      "tree": "7ef1b69d19fdc57f57ce58dc78988ce4a653aa8e",
      "parents": [
        "1e5c13ec422f665432bfc9f7c5fc1f9fd614afd3"
      ],
      "author": {
        "name": "Peter Boonstoppel",
        "email": "pboonstoppel@nvidia.com",
        "time": "Thu Aug 09 15:34:47 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 13 11:51:19 2014 -0800"
      },
      "message": "sched: Unthrottle rt runqueues in __disable_runtime()\n\ncommit a4c96ae319b8047f62dedbe1eac79e321c185749 upstream.\n\nmigrate_tasks() uses _pick_next_task_rt() to get tasks from the\nreal-time runqueues to be migrated. When rt_rq is throttled\n_pick_next_task_rt() won\u0027t return anything, in which case\nmigrate_tasks() can\u0027t move all threads over and gets stuck in an\ninfinite loop.\n\nInstead unthrottle rt runqueues before migrating tasks.\n\nAdditionally: move unthrottle_offline_cfs_rqs() to rq_offline_fair()\n\nSigned-off-by: Peter Boonstoppel \u003cpboonstoppel@nvidia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nLink: http://lkml.kernel.org/r/5FBF8E85CA34454794F0F7ECBA79798F379D3648B7@HQMAIL04.nvidia.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n[ lizf: backported to 3.4: adjust context ]\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1e5c13ec422f665432bfc9f7c5fc1f9fd614afd3",
      "tree": "8588210c14890e4a797a9ea5402d6fa42ba3ceb6",
      "parents": [
        "21b53baf40aecb134593ec74eb787f16c569cfc5"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Aug 07 10:02:38 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 13 11:51:18 2014 -0800"
      },
      "message": "sched,rt: fix isolated CPUs leaving root_task_group indefinitely throttled\n\ncommit e221d028bb08b47e624c5f0a31732c642db9d19a upstream.\n\nRoot task group bandwidth replenishment must service all CPUs, regardless of\nwhere the timer was last started, and regardless of the isolation mechanism,\nlest \u0027Quoth the Raven, \"Nevermore\"\u0027 become rt scheduling policy.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1344326558.6968.25.camel@marge.simpson.net\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "21b53baf40aecb134593ec74eb787f16c569cfc5",
      "tree": "c4c8bb46216c1baf4fe84d8787f5f6b7e01fe2f9",
      "parents": [
        "d5c20298b6d817b069c69d94df9cd8ed76b2ff15"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 16 21:34:23 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 13 11:51:18 2014 -0800"
      },
      "message": "sched/rt: Fix SCHED_RR across cgroups\n\ncommit 454c79999f7eaedcdf4c15c449e43902980cbdf5 upstream.\n\ntask_tick_rt() has an optimization to only reschedule SCHED_RR tasks\nif they were the only element on their rq.  However, with cgroups\na SCHED_RR task could be the only element on its per-cgroup rq but\nstill be competing with other SCHED_RR tasks in its parent\u0027s\ncgroup.  In this case, the SCHED_RR task in the child cgroup would\nnever yield at the end of its timeslice.  If the child cgroup\nrt_runtime_us was the same as the parent cgroup rt_runtime_us,\nthe task in the parent cgroup would starve completely.\n\nModify task_tick_rt() to check that the task is the only task on its\nrq, and that the each of the scheduling entities of its ancestors\nis also the only entity on its rq.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1337229266-15798-1-git-send-email-ccross@android.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "3be9a220c1be739e7cc13aa778c2d97064ff430e",
      "tree": "f36ebe7bd393590e677348e8b26b1dcfa00149cb",
      "parents": [
        "f2ee187924b3fdb2475fc86641a8508f3c579abd"
      ],
      "author": {
        "name": "Matt Wagantall",
        "email": "mattw@codeaurora.org",
        "time": "Thu Dec 05 20:01:32 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:29 2014 -0800"
      },
      "message": "sched/debug: Make sysrq prints of sched debug data optional\n\nCalls to sysrq_sched_debug_show() can yield rather verbose output\nwhich contributes to log spew and, under heavy load, may increase\nthe chances of a watchdog bark.\n\nMake printing of this data optional with the introduction of a\nnew Kconfig, CONFIG_SYSRQ_SCHED_DEBUG.\n\nChange-Id: I5f54d901d0dea403109f7ac33b8881d967a899ed\nSigned-off-by: Matt Wagantall \u003cmattw@codeaurora.org\u003e\n"
    },
    {
      "commit": "70d01bbd5d9dd6d6cbf0ad9a49e82ed615d4f957",
      "tree": "e7eb9d7ded2a6b53f883dacfa8f6179627c80fc1",
      "parents": [
        "eaf001971e9feaecfb88c7905666d74800e25b78"
      ],
      "author": {
        "name": "Vincent Guittot",
        "email": "vincent.guittot@linaro.org",
        "time": "Wed Jun 05 10:13:11 2013 +0200"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:28 2014 -0800"
      },
      "message": "sched: Fix clear NOHZ_BALANCE_KICK\n\nI have faced a sequence where the Idle Load Balance was sometime not\ntriggered for a while on my platform, in the following scenario:\n\n CPU 0 and CPU 1 are running tasks and CPU 2 is idle\n\n CPU 1 kicks the Idle Load Balance\n CPU 1 selects CPU 2 as the new Idle Load Balancer\n CPU 2 sets NOHZ_BALANCE_KICK for CPU 2\n CPU 2 sends a reschedule IPI to CPU 2\n\n While CPU 3 wakes up, CPU 0 or CPU 1 migrates a waking up task A on CPU 2\n\n CPU 2 finally wakes up, runs task A and discards the Idle Load Balance\n       task A quickly goes back to sleep (before a tick occurs on CPU 2)\n CPU 2 goes back to idle with NOHZ_BALANCE_KICK set\n\nWhenever CPU 2 will be selected as the ILB, no reschedule IPI will be sent\nbecause NOHZ_BALANCE_KICK is already set and no Idle Load Balance will be\nperformed.\n\nWe must wait for the sched softirq to be raised on CPU 2 thanks to another\npart the kernel to come back to clear NOHZ_BALANCE_KICK.\n\nThe proposed solution clears NOHZ_BALANCE_KICK in schedule_ipi if\nwe can\u0027t raise the sched_softirq for the Idle Load Balance.\n\nChange since V1:\n\n- move the clear of NOHZ_BALANCE_KICK in got_nohz_idle_kick if the ILB\n  can\u0027t run on this CPU (as suggested by Peter)\n\nChange-Id: Ia206acc5e1109dcb6e7cd09d96c238721b4ad044\nSigned-off-by: Vincent Guittot \u003cvincent.guittot@linaro.org\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1370419991-13870-1-git-send-email-vincent.guittot@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: 873b4c65b519fd769940eb281f77848227d4e5c1\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\n[smuckle@codeaurora.org: minor merge resolution for 3.4 in scheduler_ipi()]\nCRs-Fixed: 583754\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "eaf001971e9feaecfb88c7905666d74800e25b78",
      "tree": "580b0ae4877d5012e29a3536fdbda8490afcbe94",
      "parents": [
        "2dcea87b2a1ba331711661e34c3ce0a4c54c6ca8"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Tue Nov 19 14:16:53 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:27 2014 -0800"
      },
      "message": "tracing/sched: add load balancer tracepoint\n\nWhen doing performance analysis it can be useful to see exactly\nwhat is going on with the load balancer - when it runs and why\nexactly it may not be redistributing load.\n\nThis additional tracepoint will show the idle context of the\nload balance operation (idle, not idle, newly idle), various\nvalues from the load balancing operation, the final result,\nand the new balance interval.\n\nChange-Id: I9e5c97ae3878bea44e60d189ff3cec2275f2c75e\nCRs-Fixed: 583754\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "450e8d5d9c5ceb54831aa4220833706e35aa7115",
      "tree": "feed12d303771c7c82c9c1690744e64444b093a1",
      "parents": [
        "4e12d515ff158a3f985d953d434623814cbf26c5"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "bitbucket@online.de",
        "time": "Mon Jan 28 12:19:25 2013 +0100"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:24 2014 -0800"
      },
      "message": "sched: Fix select_idle_sibling() bouncing cow syndrome\n\nIf the previous CPU is cache affine and idle, select it.\n\nThe current implementation simply traverses the sd_llc domain,\ntaking the first idle CPU encountered, which walks buddy pairs\nhand in hand over the package, inflicting excruciating pain.\n\n1 tbench pair (worst case) in a 10 core + SMT package:\n\n  pre   15.22 MB/sec 1 procs\n  post 252.01 MB/sec 1 procs\n\nSigned-off-by: Mike Galbraith \u003cbitbucket@online.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1359371965.5783.127.camel@marge.simpson.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "e38ca498b972d0246551cac1c3dd4f7535e48458",
      "tree": "0cba69c1b374e80eb66fd8f76469efc7878147f7",
      "parents": [
        "67bed6808090539cefdc0ecd2738e12ba8bc037e"
      ],
      "author": {
        "name": "Peter Boonstoppel",
        "email": "pboonstoppel@nvidia.com",
        "time": "Thu Aug 09 15:34:47 2012 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:13 2014 -0800"
      },
      "message": "sched: Unthrottle rt runqueues in __disable_runtime()\n\nmigrate_tasks() uses _pick_next_task_rt() to get tasks from the\nreal-time runqueues to be migrated. When rt_rq is throttled\n_pick_next_task_rt() won\u0027t return anything, in which case\nmigrate_tasks() can\u0027t move all threads over and gets stuck in an\ninfinite loop.\n\nInstead unthrottle rt runqueues before migrating tasks.\n\nAdditionally: move unthrottle_offline_cfs_rqs() to rq_offline_fair()\n\nChange-Id: If8a4a399f1a14b7f4789c1b205dcfadbde555214\nSigned-off-by: Peter Boonstoppel \u003cpboonstoppel@nvidia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nLink: http://lkml.kernel.org/r/5FBF8E85CA34454794F0F7ECBA79798F379D3648B7@HQMAIL04.nvidia.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: a4c96ae319b8047f62dedbe1eac79e321c185749\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Syed Rameez Mustafa \u003crameezmustafa@codeaurora.org\u003e\n"
    },
    {
      "commit": "279070e4a14ee1f1be82ba4ca104238a8ac2934f",
      "tree": "6f95cfe791ab4d1553552228c571ba7fba7ad28c",
      "parents": [
        "c44229e4367f7a19dbfdc279458e77e0e26bbd39"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Tue Jul 30 14:22:33 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:12 2014 -0800"
      },
      "message": "sched: change WARN_ON_ONCE to WARN_ON in try_to_wake_up_local()\n\nThe WARN_ON_ONCE() calls at the beginning of try_to_wake_up_local()\nwere recently converted from BUG_ON() calls. If these hit it indicates\nsomething is wrong and that may contribute to other system instability.\nTo eliminate the risk of an instance of one of these errors going\nun-noticed because there was an earlier instance that occured long ago,\nchange to WARN_ON(). If there ever is a flood of these there are bigger\nproblems.\n\nChange-Id: I392832e2b6ec24b3569b001b1af9ecd4ed6828e7\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "c44229e4367f7a19dbfdc279458e77e0e26bbd39",
      "tree": "5d17f28b2410f3f7c3f5716ce9e306ffcb71b20a",
      "parents": [
        "267ddac4c6b3ccbdeb88ed8afdf044436ce9d882"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 22 14:04:28 2012 +0200"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:12 2014 -0800"
      },
      "message": "sched: Make sure to not re-read variables after validation\n\nWe could re-read rq-\u003ert_avg after we validated it was smaller than\ntotal, invalidating the check and resulting in an unintended negative.\n\nChange-Id: I8543974aad539107768e9e513ca3a8c4cb79b2ff\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nLink: http://lkml.kernel.org/r/1337688268.9698.29.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCRs-Fixed: 497236\nGit-commit: b654f7de41b0e3903ee2b51d3b8db77fe52ce728\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "267ddac4c6b3ccbdeb88ed8afdf044436ce9d882",
      "tree": "3899c44fcdc00ef2ddaa669f22d55be01522be63",
      "parents": [
        "e8c21d18999d624a75aa146abb45430929b8cf2c"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Tue Jun 11 17:43:09 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:12 2014 -0800"
      },
      "message": "sched: re-calculate a cpu\u0027s next_balance point upon sched domain changes\n\nCommit 55ddeb0f (sched: Reset rq-\u003enext_interval before going idle) reset\na cpu\u0027s rq-\u003enext_balance when pulled_task \u003d 0, which will be true when\nthe cpu failed to pull any task, causing it go idle. However that patch\nrelied on next_balance being calculated as a result of traversing cpu\u0027s\nsched domain hierarchy.\n\nA cpu that is the only online cpu will however not be attached to any\nsched domain hierarchy. When such a cpu calls into idle_balance(), we\nwill end up initializing next_balance to be 1sec away! Such a CPU will\ndefer load balance check for another 1sec, even though we may bring up\nmore cpus in the meantime requiring it to check for load imbalance more\nfrequently. This could then lead to increased scheduling latency for\nsome tasks.\n\nThis patch results in a cpu\u0027s next_balance being re-calculated when its\nattaching to a new sched domain hierarchy.  This should let cpus call\nload balance checks at the right time we expect them to!\n\nChange-Id: I855cff8da5ca28d278596c3bb0163b839d4704bc\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "e8c21d18999d624a75aa146abb45430929b8cf2c",
      "tree": "b03270fdebc1438cf92a9c215125980b9009ca95",
      "parents": [
        "f12accedccd3ca00a205151de2063224b4b380eb"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Mon May 13 15:11:55 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:11 2014 -0800"
      },
      "message": "sched: fix reference to wrong cfs_rq\n\nCommit 7db16c8c (sched: Fix SCHED_HRTICK bug leading to late preemption\nof tasks) introduced a bug in sched_slice() calculation by using wrong\ncfs_rq for tasks. rq-\u003ecfs was incorrectly used as task\u0027s cfs_rq, rather\nthan the correct one to which they belonged.\n\nFix the bug by using correct cfs_rq for tasks.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "f12accedccd3ca00a205151de2063224b4b380eb",
      "tree": "16206f5c76e64a4b4a3ac2a59be3b4f852eafdfb",
      "parents": [
        "ce1a041e68c83a7f49982d353318fc409bc15970"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Thu Apr 18 11:42:22 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:11 2014 -0800"
      },
      "message": "sched: Fix SCHED_HRTICK bug leading to late preemption of tasks\n\nSCHED_HRTICK feature is useful to preempt SCHED_FAIR tasks on-the-dot\n(just when they would have exceeded their ideal_runtime). It makes use\nof a a per-cpu hrtimer resource and hence alarming that hrtimer should\nbe based on total SCHED_FAIR tasks a cpu has across its various cfs_rqs,\nrather than being based on number of tasks in a particular cfs_rq (as\nimplemented currently). As a result, with current code, its possible for\na running task (which is the sole task in its cfs_rq) to be preempted\nmuch after its ideal_runtime has elapsed, resulting in increased latency\nfor tasks in other cfs_rq on same cpu.\n\nFix this by alarming sched hrtimer based on total number of SCHED_FAIR\ntasks a CPU has across its various cfs_rqs.\n\nChange-Id: I1f23680a64872f8ce0f451ac4bcae28e8967918f\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "ce1a041e68c83a7f49982d353318fc409bc15970",
      "tree": "51040569270b4629e10bd688835923a248e07ef0",
      "parents": [
        "7af150bd625ba9b4f822b5692c2c00cc2097281e"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Thu Mar 07 12:14:53 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:11 2014 -0800"
      },
      "message": "sched: Reset rq-\u003enext_interval before going idle\n\nnext_balance, the point in jiffy time scale when a cpu will next load\nbalance, could have been calculated when the cpu was busy. A busy cpu\nwill apply its sched domain\u0027s busy_factor (usually \u003e 1) in computing\nnext_balance for that sched domain, which causes the (busy) cpu to load\nbalance less frequently in its sched domains. However when the same cpu\nis going idle, its next_balance needs to be reset without consideration\nof busy_factor. Failure to do so would not trigger nohz idle balancer on\nthat cpu for unnecessarily long time (introducing additional scheduling\nlatencies for tasks). Fix bug in scheduler which aims to reset\nnext_balance before a cpu goes idle (as per existing comment) but is\nclearly not doing so.\n\nChange-Id: I7e027a51686528c4092d770c7d33c874d38f5df4\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "7af150bd625ba9b4f822b5692c2c00cc2097281e",
      "tree": "d909593ba721c4e96dcfc01b7cc630da2147a687",
      "parents": [
        "dcb32ee6fa05937ee15b27c1634e39d0d6e67f99"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Thu May 23 15:24:57 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:11 2014 -0800"
      },
      "message": "sched: remove migration notification from RT class\n\nCommit 88a7e37d265 (sched: provide per cpu-cgroup option to\nnotify on migrations) added a notifier call when a task is moved\nto a different CPU. Unfortunately the two call sites in the RT\nsched class where this occurs happens with a runqueue lock held.\nThis can result in a deadlock if the notifier call attempts to do\nsomething like wake up a task.\n\nFortunately the benefit of 88a7e37d265 comes mainly from notifying\non migration of non-RT tasks, so we can simply ignore the movements\nof RT tasks.\n\nCRs-Fixed: 491370\nChange-Id: I8849d826bf1eeaf85a6f6ad872acb475247c5926\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "9af6b695ac764184cdbdd42b77da3e600d337d14",
      "tree": "c4a5ae98b8872f62d290396b457f72d57ac72330",
      "parents": [
        "03d35a39f4de9f2e9d7fbc5c2d03dbcc5b882df7"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Oct 16 11:16:27 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jan 15 15:27:12 2014 -0800"
      },
      "message": "sched: Guarantee new group-entities always have weight\n\ncommit 0ac9b1c21874d2490331233b3242085f8151e166 upstream.\n\nCurrently, group entity load-weights are initialized to zero. This\nadmits some races with respect to the first time they are re-weighted in\nearlty use. ( Let g[x] denote the se for \"g\" on cpu \"x\". )\n\nSuppose that we have root-\u003ea and that a enters a throttled state,\nimmediately followed by a[0]-\u003et1 (the only task running on cpu[0])\nblocking:\n\n  put_prev_task(group_cfs_rq(a[0]), t1)\n  put_prev_entity(..., t1)\n  check_cfs_rq_runtime(group_cfs_rq(a[0]))\n  throttle_cfs_rq(group_cfs_rq(a[0]))\n\nThen, before unthrottling occurs, let a[0]-\u003eb[0]-\u003et2 wake for the first\ntime:\n\n  enqueue_task_fair(rq[0], t2)\n  enqueue_entity(group_cfs_rq(b[0]), t2)\n  enqueue_entity_load_avg(group_cfs_rq(b[0]), t2)\n  account_entity_enqueue(group_cfs_ra(b[0]), t2)\n  update_cfs_shares(group_cfs_rq(b[0]))\n  \u003c skipped because b is part of a throttled hierarchy \u003e\n  enqueue_entity(group_cfs_rq(a[0]), b[0])\n  ...\n\nWe now have b[0] enqueued, yet group_cfs_rq(a[0])-\u003eload.weight \u003d\u003d 0\nwhich violates invariants in several code-paths. Eliminate the\npossibility of this by initializing group entity weight.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20131016181627.22647.47543.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Chris J Arges \u003cchris.j.arges@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "03d35a39f4de9f2e9d7fbc5c2d03dbcc5b882df7",
      "tree": "be90a817103d24c521ba427819374fd0600cef40",
      "parents": [
        "9b318052acd24780f4dba1349ef3a30a7aef52ad"
      ],
      "author": {
        "name": "Ben Segall",
        "email": "bsegall@google.com",
        "time": "Wed Oct 16 11:16:22 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jan 15 15:27:11 2014 -0800"
      },
      "message": "sched: Fix hrtimer_cancel()/rq-\u003elock deadlock\n\ncommit 927b54fccbf04207ec92f669dce6806848cbec7d upstream.\n\n__start_cfs_bandwidth calls hrtimer_cancel while holding rq-\u003elock,\nwaiting for the hrtimer to finish. However, if sched_cfs_period_timer\nruns for another loop iteration, the hrtimer can attempt to take\nrq-\u003elock, resulting in deadlock.\n\nFix this by ensuring that cfs_b-\u003etimer_active is cleared only if the\n_latest_ call to do_sched_cfs_period_timer is returning as idle. Then\n__start_cfs_bandwidth can just call hrtimer_try_to_cancel and wait for\nthat to succeed or timer_active \u003d\u003d 1.\n\nSigned-off-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: pjt@google.com\nLink: http://lkml.kernel.org/r/20131016181622.22647.16643.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Chris J Arges \u003cchris.j.arges@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "9b318052acd24780f4dba1349ef3a30a7aef52ad",
      "tree": "0e64c6925ec778aee88dad406f04c83763ee210c",
      "parents": [
        "16e7480c23d33d9475d45be92c1ddf218575a647"
      ],
      "author": {
        "name": "Ben Segall",
        "email": "bsegall@google.com",
        "time": "Wed Oct 16 11:16:17 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jan 15 15:27:11 2014 -0800"
      },
      "message": "sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining\n\ncommit db06e78cc13d70f10877e0557becc88ab3ad2be8 upstream.\n\nhrtimer_expires_remaining does not take internal hrtimer locks and thus\nmust be guarded against concurrent __hrtimer_start_range_ns (but\nreturning HRTIMER_RESTART is safe). Use cfs_b-\u003elock to make it safe.\n\nSigned-off-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: pjt@google.com\nLink: http://lkml.kernel.org/r/20131016181617.22647.73829.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Chris J Arges \u003cchris.j.arges@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "16e7480c23d33d9475d45be92c1ddf218575a647",
      "tree": "7cf3d25a05f42f95407ab5ea844d88ce451164ec",
      "parents": [
        "a63f31f1f2cdb459b121f644ccbd07ae84f45d4e"
      ],
      "author": {
        "name": "Ben Segall",
        "email": "bsegall@google.com",
        "time": "Wed Oct 16 11:16:12 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jan 15 15:27:11 2014 -0800"
      },
      "message": "sched: Fix race on toggling cfs_bandwidth_used\n\ncommit 1ee14e6c8cddeeb8a490d7b54cd9016e4bb900b4 upstream.\n\nWhen we transition cfs_bandwidth_used to false, any currently\nthrottled groups will incorrectly return false from cfs_rq_throttled.\nWhile tg_set_cfs_bandwidth will unthrottle them eventually, currently\nrunning code (including at least dequeue_task_fair and\ndistribute_cfs_runtime) will cause errors.\n\nFix this by turning off cfs_bandwidth_used only after unthrottling all\ncfs_rqs.\n\nTested: toggle bandwidth back and forth on a loaded cgroup. Caused\ncrashes in minutes without the patch, hasn\u0027t crashed with it.\n\nSigned-off-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: pjt@google.com\nLink: http://lkml.kernel.org/r/20131016181611.22647.80365.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Chris J Arges \u003cchris.j.arges@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "fda73056f62d84376a3d29926708b4a08155da31",
      "tree": "0080c4eec02c23179f59a50d269f48f7662b61ce",
      "parents": [
        "cf8f2e58d0893f9785b8056b29d9bbcb4758765f",
        "94f578e6aba14bb2aeb00db2e7f6e5f704fee937"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jan 14 21:50:44 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jan 14 21:50:44 2014 -0800"
      },
      "message": "Merge tag \u0027v3.4.76\u0027 into cm-11.0\n\nThis is the 3.4.76 stable release\n\nConflicts:\n\tdrivers/gpio/gpio-msm-v2.c\n\nChange-Id: Ic80b29098bdf656b5e5c9b95d98d2ec64bba1f28\n"
    },
    {
      "commit": "dfb473b35096a0ffae221c7eeb49c34882ea6f9c",
      "tree": "a071f807c029cc0d39a46bceffea0f7c7990f7f3",
      "parents": [
        "05bbcdd32afbfd520c71ae8104a8bf531aed9163"
      ],
      "author": {
        "name": "Ben Segall",
        "email": "bsegall@google.com",
        "time": "Wed Oct 16 11:16:32 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jan 08 09:42:12 2014 -0800"
      },
      "message": "sched: Avoid throttle_cfs_rq() racing with period_timer stopping\n\ncommit f9f9ffc237dd924f048204e8799da74f9ecf40cf upstream.\n\nthrottle_cfs_rq() doesn\u0027t check to make sure that period_timer is running,\nand while update_curr/assign_cfs_runtime does, a concurrently running\nperiod_timer on another cpu could cancel itself between this cpu\u0027s\nupdate_curr and throttle_cfs_rq(). If there are no other cfs_rqs running\nin the tg to restart the timer, this causes the cfs_rq to be stranded\nforever.\n\nFix this by calling __start_cfs_bandwidth() in throttle if the timer is\ninactive.\n\n(Also add some sched_debug lines for cfs_bandwidth.)\n\nTested: make a run/sleep task in a cgroup, loop switching the cgroup\nbetween 1ms/100ms quota and unlimited, checking for timer_active\u003d0 and\nthrottled\u003d1 as a failure. With the throttle_cfs_rq() change commented out\nthis fails, with the full patch it passes.\n\nSigned-off-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: pjt@google.com\nLink: http://lkml.kernel.org/r/20131016181632.22647.84174.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Chris J Arges \u003cchris.j.arges@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "3f8878956c833443d6c6e498e9ed6a18ee30e0f5",
      "tree": "4d82b3f085f1085301ebee2c9415ff13c09af66b",
      "parents": [
        "a1192c0e5d037def6763f3873d3340615c241fe7"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Wed Nov 27 19:59:13 2013 +0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jan 08 09:42:11 2014 -0800"
      },
      "message": "sched/rt: Fix rq\u0027s cpupri leak while enqueue/dequeue child RT entities\n\ncommit 757dfcaa41844595964f1220f1d33182dae49976 upstream.\n\nThis patch touches the RT group scheduling case.\n\nFunctions inc_rt_prio_smp() and dec_rt_prio_smp() change (global) rq\u0027s\npriority, while rt_rq passed to them may be not the top-level rt_rq.\nThis is wrong, because changing of priority on a child level does not\nguarantee that the priority is the highest all over the rq. So, this\nleak makes RT balancing unusable.\n\nThe short example: the task having the highest priority among all rq\u0027s\nRT tasks (no one other task has the same priority) are waking on a\nthrottle rt_rq.  The rq\u0027s cpupri is set to the task\u0027s priority\nequivalent, but real rq-\u003ert.highest_prio.curr is less.\n\nThe patch below fixes the problem.\n\nSigned-off-by: Kirill Tkhai \u003ctkhai@yandex.ru\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/49231385567953@web4m.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2a38ada0f1ab9f894eea4428731ebc811b51c3f3",
      "tree": "759c765808a23a3a35e4ba10d8306c847c0205b7",
      "parents": [
        "19218e895cefdd389c96af12c93c89e7276bbaad",
        "44d19f5a04ae4e433548ba2f25e4d2ccfcac765e"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "message": "Merge tag \u0027v3.4.72\u0027 into tmp\n\nThis is the 3.4.72 stable release\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/include/asm/mutex.h\n\tarch/arm/kernel/perf_event.c\n\tarch/arm/kernel/traps.c\n\tarch/arm/mm/dma-mapping.c\n\tdrivers/base/power/main.c\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/gpu/drm/radeon/radeon_mode.h\n\tdrivers/mmc/card/block.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/usb/core/message.c\n\tdrivers/usb/host/xhci-plat.c\n\tdrivers/usb/host/xhci.h\n\tdrivers/virtio/virtio_ring.c\n\tfs/ubifs/dir.c\n\tinclude/linux/freezer.h\n\tinclude/linux/virtio.h\n\tinclude/media/v4l2-ctrls.h\n\tinclude/net/bluetooth/hci_core.h\n\tinclude/net/bluetooth/mgmt.h\n\tkernel/cgroup.c\n\tkernel/futex.c\n\tkernel/signal.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_core.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/bluetooth/mgmt.c\n\tnet/bluetooth/rfcomm/sock.c\n\tnet/bluetooth/smp.c\n\nChange-Id: I4fb0d5de74ca76f933d95d98e1a9c2c859402f34\n"
    },
    {
      "commit": "8f77c2895be7f4cb22c918c1aab1270fd8885ecd",
      "tree": "c0598ef38714b949d4ffa81ce5bad361c922d64e",
      "parents": [
        "a4710c60a66743df6277ce37ae2f9ed19fcdec09"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Mon Mar 11 16:33:42 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 03 22:08:22 2013 -0800"
      },
      "message": "sched: provide per cpu-cgroup option to notify on migrations\n\nOn systems where CPUs may run asynchronously, task migrations\nbetween CPUs running at grossly different speeds can cause\nproblems.\n\nThis change provides a mechanism to notify a subsystem\nin the kernel if a task in a particular cgroup migrates to a\ndifferent CPU. Other subsystems (such as cpufreq) may then\nregister for this notifier to take appropriate action when\nsuch a task is migrated.\n\nThe cgroup attribute to set for this behavior is\n\"notify_on_migrate\" .\n\nChange-Id: Ie1868249e53ef901b89c837fdc33b0ad0c0a4590\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "62875332eafea9ee150a6037c0a1a20669e02aa1",
      "tree": "71c673017dc9991b143ad989e6b3d20802a13719",
      "parents": [
        "ebce1a846aa297022fc372d59e6829d0453125f2"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Tue Sep 10 18:16:36 2013 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Oct 01 09:10:51 2013 -0700"
      },
      "message": "sched/fair: Fix small race where child-\u003ese.parent,cfs_rq might point to invalid ones\n\ncommit 6c9a27f5da9609fca46cb2b183724531b48f71ad upstream.\n\nThere is a small race between copy_process() and cgroup_attach_task()\nwhere child-\u003ese.parent,cfs_rq points to invalid (old) ones.\n\n        parent doing fork()      | someone moving the parent to another cgroup\n  -------------------------------+---------------------------------------------\n    copy_process()\n      + dup_task_struct()\n        -\u003e parent-\u003ese is copied to child-\u003ese.\n           se.parent,cfs_rq of them point to old ones.\n\n                                     cgroup_attach_task()\n                                       + cgroup_task_migrate()\n                                         -\u003e parent-\u003ecgroup is updated.\n                                       + cpu_cgroup_attach()\n                                         + sched_move_task()\n                                           + task_move_group_fair()\n                                             +- set_task_rq()\n                                                -\u003e se.parent,cfs_rq of parent\n                                                   are updated.\n\n      + cgroup_fork()\n        -\u003e parent-\u003ecgroup is copied to child-\u003ecgroup. (*1)\n      + sched_fork()\n        + task_fork_fair()\n          -\u003e se.parent,cfs_rq of child are accessed\n             while they point to old ones. (*2)\n\nIn the worst case, this bug can lead to \"use-after-free\" and cause a panic,\nbecause it\u0027s new cgroup\u0027s refcount that is incremented at (*1),\nso the old cgroup(and related data) can be freed before (*2).\n\nIn fact, a panic caused by this bug was originally caught in RHEL6.4.\n\n    BUG: unable to handle kernel NULL pointer dereference at (null)\n    IP: [\u003cffffffff81051e3e\u003e] sched_slice+0x6e/0xa0\n    [...]\n    Call Trace:\n     [\u003cffffffff81051f25\u003e] place_entity+0x75/0xa0\n     [\u003cffffffff81056a3a\u003e] task_fork_fair+0xaa/0x160\n     [\u003cffffffff81063c0b\u003e] sched_fork+0x6b/0x140\n     [\u003cffffffff8106c3c2\u003e] copy_process+0x5b2/0x1450\n     [\u003cffffffff81063b49\u003e] ? wake_up_new_task+0xd9/0x130\n     [\u003cffffffff8106d2f4\u003e] do_fork+0x94/0x460\n     [\u003cffffffff81072a9e\u003e] ? sys_wait4+0xae/0x100\n     [\u003cffffffff81009598\u003e] sys_clone+0x28/0x30\n     [\u003cffffffff8100b393\u003e] stub_clone+0x13/0x20\n     [\u003cffffffff8100b072\u003e] ? system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/039601ceae06$733d3130$59b79390$@mxp.nes.nec.co.jp\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1836cd176170d39f5b1fda9cd47d3c3f0f10dad2",
      "tree": "6452080dec303b174785e4b68ffaff2673e2a33c",
      "parents": [
        "ee9ef037ac99b542df34848fca2c9765910535e6"
      ],
      "author": {
        "name": "Zhu Yanhai",
        "email": "gaoyang.zyh@taobao.com",
        "time": "Tue Jan 08 12:56:52 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Aug 11 15:38:43 2013 -0700"
      },
      "message": "sched: Fix the broken sched_rr_get_interval()\n\ncommit a59f4e079d19464eebb9b06513a1d4f55fdae5ba upstream.\n\nThe caller of sched_sliced() should pass se.cfs_rq and se as the\narguments, however in sched_rr_get_interval() we gave it\nrq.cfs_rq and se, which made the following computation obviously\nwrong.\n\nThe change was introduced by commit:\n\n  77034937dc45 sched: fix crash in sys_sched_rr_get_interval()\n\n... 5 years ago, while it had been the correct \u0027cfs_rq_of\u0027 before\nthe commit. The change seems to be irrelevant to the commit\nmsg, which was to return a 0 timeslice for tasks that are on an\nidle runqueue. So I believe that was just a plain typo.\n\nSigned-off-by: Zhu Yanhai \u003cgaoyang.zyh@taobao.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1357621012-15039-1-git-send-email-gaoyang.zyh@taobao.com\n[ Since this is an ABI and an old bug, we\u0027ll test this via a\n  slow upstream route, to hopefully discover any app breakage. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1c9ce1e6c11777c95b974883be2f0313873d6f14",
      "tree": "68b149cb9f9e7988fc0955239208d9ab104d7bb6",
      "parents": [
        "849520777e464fa051188d1118d43f21babb9dbe",
        "00709f7f01c3a10252f030f0bdacecbb349d7be4"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jul 22 22:10:20 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jul 22 22:10:20 2013 -0700"
      },
      "message": "Merge tag \u0027v3.4.11\u0027 into cm-10.1\n\nThis is the 3.4.11 stable release\n\nConflicts:\n\tarch/arm/vfp/vfpmodule.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\nChange-Id: I164bf611358e14afd3ff48e55a99c0d7c7afc45f\n"
    },
    {
      "commit": "dde448d95d8698ee4c8373bb48fe08a22f41052f",
      "tree": "7fe87fa93bfa5b81e6f87b147e32512d2e8198e3",
      "parents": [
        "ac4f6190fae02a3dc30133f90488b996f726bf7a",
        "f95b978981a7d154ba40d14c18e8ed5c694e6124"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "message": "Merge tag \u0027v3.4.10\u0027 into cm-10.1\n\nThis is the 3.4.10 stable release\n\nConflicts:\n\tarch/arm/mm/tlb-v7.S\n\tarch/arm/vfp/entry.S\n\tdrivers/base/power/main.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/net/tun.c\n\tdrivers/usb/core/hub.c\n\tdrivers/usb/host/xhci.h\n\tinclude/linux/sched.h\n\tkernel/power/suspend.c\n\nChange-Id: Ia2477ec93ceb64b13dd1a2d8aa646cb233387d14\n"
    },
    {
      "commit": "410537558144cc886d780a02af9a09a122bff35b",
      "tree": "4bb0fec2c15698657d1d5929db9ca3f8d5759954",
      "parents": [
        "2a6b0247eee46f424e032fb7431cc4700ad19ea5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 18 12:22:34 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Apr 25 21:19:55 2013 -0700"
      },
      "message": "sched: Convert BUG_ON()s in try_to_wake_up_local() to WARN_ON_ONCE()s\n\ncommit 383efcd00053ec40023010ce5034bd702e7ab373 upstream.\n\ntry_to_wake_up_local() should only be invoked to wake up another\ntask in the same runqueue and BUG_ON()s are used to enforce the\nrule. Missing try_to_wake_up_local() can stall workqueue\nexecution but such stalls are likely to be finite either by\nanother work item being queued or the one blocked getting\nunblocked.  There\u0027s no reason to trigger BUG while holding rq\nlock crashing the whole system.\n\nConvert BUG_ON()s in try_to_wake_up_local() to WARN_ON_ONCE()s.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20130318192234.GD3042@htj.dyndns.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "fdd9ce008f3de39fa7fcd17717f1d7a0895269ea",
      "tree": "f69986fac5f79f8dc785ef2b490162d17f80c8a7",
      "parents": [
        "bff6627568427d14375d84426f491646fdf71a1f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Apr 06 10:10:27 2013 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Apr 16 21:27:27 2013 -0700"
      },
      "message": "sched_clock: Prevent 64bit inatomicity on 32bit systems\n\ncommit a1cbcaa9ea87b87a96b9fc465951dcf36e459ca2 upstream.\n\nThe sched_clock_remote() implementation has the following inatomicity\nproblem on 32bit systems when accessing the remote scd-\u003eclock, which\nis a 64bit value.\n\nCPU0\t\t\tCPU1\n\nsched_clock_local()\tsched_clock_remote(CPU0)\n...\n\t\t\tremote_clock \u003d scd[CPU0]-\u003eclock\n\t\t\t    read_low32bit(scd[CPU0]-\u003eclock)\ncmpxchg64(scd-\u003eclock,...)\n\t\t\t    read_high32bit(scd[CPU0]-\u003eclock)\n\nWhile the update of scd-\u003eclock is using an atomic64 mechanism, the\nreadout on the remote cpu is not, which can cause completely bogus\nreadouts.\n\nIt is a quite rare problem, because it requires the update to hit the\nnarrow race window between the low/high readout and the update must go\nacross the 32bit boundary.\n\nThe resulting misbehaviour is, that CPU1 will see the sched_clock on\nCPU1 ~4 seconds ahead of it\u0027s own and update CPU1s sched_clock value\nto this bogus timestamp. This stays that way due to the clamping\nimplementation for about 4 seconds until the synchronization with\nCLOCK_MONOTONIC undoes the problem.\n\nThe issue is hard to observe, because it might only result in a less\naccurate SCHED_OTHER timeslicing behaviour. To create observable\ndamage on realtime scheduling classes, it is necessary that the bogus\nupdate of CPU1 sched_clock happens in the context of an realtime\nthread, which then gets charged 4 seconds of RT runtime, which results\nin the RT throttler mechanism to trigger and prevent scheduling of RT\ntasks for a little less than 4 seconds. So this is quite unlikely as\nwell.\n\nThe issue was quite hard to decode as the reproduction time is between\n2 days and 3 weeks and intrusive tracing makes it less likely, but the\nfollowing trace recorded with trace_clock\u003dglobal, which uses\nsched_clock_local(), gave the final hint:\n\n  \u003cidle\u003e-0   0d..30 400269.477150: hrtimer_cancel: hrtimer\u003d0xf7061e80\n  \u003cidle\u003e-0   0d..30 400269.477151: hrtimer_start:  hrtimer\u003d0xf7061e80 ...\nirq/20-S-587 1d..32 400273.772118: sched_wakeup:   comm\u003d ... target_cpu\u003d0\n  \u003cidle\u003e-0   0dN.30 400273.772118: hrtimer_cancel: hrtimer\u003d0xf7061e80\n\nWhat happens is that CPU0 goes idle and invokes\nsched_clock_idle_sleep_event() which invokes sched_clock_local() and\nCPU1 runs a remote wakeup for CPU0 at the same time, which invokes\nsched_remote_clock(). The time jump gets propagated to CPU0 via\nsched_remote_clock() and stays stale on both cores for ~4 seconds.\n\nThere are only two other possibilities, which could cause a stale\nsched clock:\n\n1) ktime_get() which reads out CLOCK_MONOTONIC returns a sporadic\n   wrong value.\n\n2) sched_clock() which reads the TSC returns a sporadic wrong value.\n\n#1 can be excluded because sched_clock would continue to increase for\n   one jiffy and then go stale.\n\n#2 can be excluded because it would not make the clock jump\n   forward. It would just result in a stale sched_clock for one jiffy.\n\nAfter quite some brain twisting and finding the same pattern on other\ntraces, sched_clock_remote() remained the only place which could cause\nsuch a problem and as explained above it\u0027s indeed racy on 32bit\nsystems.\n\nSo while on 64bit systems the readout is atomic, we need to verify the\nremote readout on 32bit machines. We need to protect the local-\u003eclock\nreadout in sched_clock_remote() on 32bit as well because an NMI could\nhit between the low and the high readout, call sched_clock_local() and\nmodify local-\u003eclock.\n\nThanks to Siegfried Wulsch for bearing with my debug requests and\ngoing through the tedious tasks of running a bunch of reproducer\nsystems to generate the debug information which let me decode the\nissue.\n\nReported-by: Siegfried Wulsch \u003cSiegfried.Wulsch@rovema.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1304051544160.21884@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "89960feebaf4f9a53f93a0ce6888207e4a808799",
      "tree": "91b4e4224f264e072b047ac636f585a2de98e602",
      "parents": [
        "11151f33ae2b29f8346f5ac1250c1879e3348cbc"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Mon Jan 14 11:55:31 2013 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Feb 11 08:47:18 2013 -0800"
      },
      "message": "sched/rt: Use root_domain of rt_rq not current processor\n\ncommit aa7f67304d1a03180f463258aa6f15a8b434e77d upstream.\n\nWhen the system has multiple domains do_sched_rt_period_timer()\ncan run on any CPU and may iterate over all rt_rq in\ncpu_online_mask.  This means when balance_runtime() is run for a\ngiven rt_rq that rt_rq may be in a different rd than the current\nprocessor.  Thus if we use smp_processor_id() to get rd in\ndo_balance_runtime() we may borrow runtime from a rt_rq that is\nnot part of our rd.\n\nThis changes do_balance_runtime to get the rd from the passed in\nrt_rq ensuring that we borrow runtime only from the correct rd\nfor the given rt_rq.\n\nThis fixes a BUG at kernel/sched/rt.c:687! in __disable_runtime\nwhen we try reclaim runtime lent to other rt_rq but runtime has\nbeen lent to a rt_rq in another rd.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Mike Galbraith \u003cbitbucket@online.de\u003e\nCc: peterz@infradead.org\nLink: http://lkml.kernel.org/r/1358186131-29494-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "465760c68a4e5037f10a7eab1df3fb2aff1e03a4",
      "tree": "01412ebaacf8ff07622f0048e2dad45643ba4790",
      "parents": [
        "9b6d794e7e56f3a413c57a15d4e07fb7efe6530a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Jan 21 20:48:17 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jan 27 20:47:43 2013 -0800"
      },
      "message": "wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task\n\ncommit 9067ac85d533651b98c2ff903182a20cbb361fcb upstream.\n\nwake_up_process() should never wakeup a TASK_STOPPED/TRACED task.\nChange it to use TASK_NORMAL and add the WARN_ON().\n\nTASK_ALL has no other users, probably can be killed.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d448abac51854c994e6436713945ecf57c1badbb",
      "tree": "810413c28b120da523d140052cf8f104ade86280",
      "parents": [
        "6dbd3b7dbcb05fe324bf629256ae5f0510c6a5f0"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Oct 24 15:00:20 2012 -0700"
      },
      "committer": {
        "name": "Sudhir Sharma",
        "email": "sudsha@codeaurora.org",
        "time": "Mon Dec 10 11:22:08 2012 -0800"
      },
      "message": "sched: add sysctl for controlling task migrations on wake\n\nThe PF_WAKE_UP_IDLE per-task flag made it impossible to enable\nthe old behavior of SD_SHARE_PKG_RESOURCES, where every task\nmigrates to an idle CPU on wakeup.\n\nThe sched_wake_to_idle sysctl value, when made nonzero, will cause\nall tasks to migrate to an idle CPU if one is available when the\ntask is woken up. This is regardless of how PF_WAKE_UP_IDLE is\nconfigured for tasks in the system. Similar to PF_WAKE_UP_IDLE,\nthe SD_SHARE_PKG_RESOURCES scheduler domain flag must be enabled\nfor the sysctl value to have an effect.\n\nChange-Id: I23bed846d26502c7aed600bfcf1c13053a7e5f61\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n(cherry picked from commit 9d5b38dc0025d19df5b756b16024b4269e73f282)\n"
    }
  ],
  "next": "3d81da8645585b9c116a7ac20b99ac8909677c80"
}
