)]}'
{
  "log": [
    {
      "commit": "ab2789213d224202237292d78aaa0c386c7b28b2",
      "tree": "da6a28ca9a2eddad554742361e496764f17682a3",
      "parents": [
        "75fc2d3797c47f5f70ca71c41c342c352845cd06"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Dec 15 11:47:00 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 16 09:44:58 2011 +0100"
      },
      "message": "sched: Fix select_idle_sibling() regression in selecting an idle SMT sibling\n\nMike Galbraith reported that this recent commit:\n\n   commit 4dcfe1025b513c2c1da5bf5586adb0e80148f612\n   Author: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n   Date:   Thu Nov 10 13:01:10 2011 +0100\n\n       sched: Avoid SMT siblings in select_idle_sibling() if possible\n\nstopped selecting an idle SMT sibling when there are no idle\ncores in a single socket system.\n\nIntent of the select_idle_sibling() was to fallback to an idle\nSMT sibling, if it fails to identify an idle core. But this\nfallback was not happening on systems where all the scheduler\ndomains had `SD_SHARE_PKG_RESOURCES\u0027 flag set.\n\nFix it. Slightly bigger patch of cleaning all these goto\u0027s etc\nis queued up for the next release.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nReported-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/1323978421.1984.244.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fccfdc6f0d8c83c854eeb6d93aa158f0e551bd49",
      "tree": "d3a397152c6bff8675350e58e2aceb4ec34c1108",
      "parents": [
        "4dcfe1025b513c2c1da5bf5586adb0e80148f612"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 07 20:26:34 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 16 08:43:45 2011 +0100"
      },
      "message": "sched: Fix buglet in return_cfs_rq_runtime()\n\nIn return_cfs_rq_runtime() we want to return bandwidth when there are no\nremaining tasks, not \"return\" when this is the case.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111108042736.623812423@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dcfe1025b513c2c1da5bf5586adb0e80148f612",
      "tree": "1c0bf8ad4c09a3a618c471b6468873d8d8ed2117",
      "parents": [
        "f1c6f1a7eed963ed233ba4c8b6fa8addb86c6ddc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Nov 10 13:01:10 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 16 08:43:43 2011 +0100"
      },
      "message": "sched: Avoid SMT siblings in select_idle_sibling() if possible\n\nAvoid select_idle_sibling() from picking a sibling thread if there\u0027s\nan idle core that shares cache.\n\nThis fixes SMT balancing in the increasingly common case where there\u0027s\na shared cache core available to balance to.\n\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/1321350377.1421.55.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "461819ac8ee950ce027c72a066156a3df9e60c7e",
      "tree": "56f6c312adfdf826e9d57b797a9e101b9ff3ab31",
      "parents": [
        "cf5f0acf3935c91379e709a71ecf68805d366659"
      ],
      "author": {
        "name": "Hui Kang",
        "email": "hkang.sunysb@gmail.com",
        "time": "Tue Oct 11 23:00:59 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 14 12:50:34 2011 +0100"
      },
      "message": "sched_fair: Fix a typo in the comment describing update_sd_lb_stats\n\nSigned-off-by: Hui Kang \u003chkang.sunysb@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1318388459-4427-1-git-send-email-hkang.sunysb@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf5f0acf3935c91379e709a71ecf68805d366659",
      "tree": "66bbd968ec8031c33e7134b6c7f9387c796d6873",
      "parents": [
        "7f80850d3f9fd8fda23a317044aef3a6bafab06b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 13 16:52:28 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 14 12:50:32 2011 +0100"
      },
      "message": "sched: Add a comment to effective_load() since it\u0027s a pain\n\nEvery time I have to stare at this function I need to completely\nreverse engineer its workings, about time I write a comment\nexplaining the thing.\n\nCollected bits and pieces from previous changelogs, mostly:\n\n  4be9daaa1b33701f011f4117f22dc1e45a3e6e34\n  83378269a5fad98f562ebc0f09c349575e6cbfe1\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1318518057.27731.2.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa17b507f142d37aeac322a95f6f7c6375f25601",
      "tree": "5ff8b9d7087175aca85dff3393932fe9b5497425",
      "parents": [
        "6eb57e0d65ebd99a71d435dc96d83e725752eef8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 16 12:23:22 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:56 2011 +0200"
      },
      "message": "sched: Wrap scheduler p-\u003ecpus_allowed access\n\nThis task is preparatory for the migrate_disable() implementation, but\nstands on its own and provides a cleanup.\n\nIt currently only converts those sites required for task-placement.\nKosaki-san once mentioned replacing cpus_allowed with a proper\ncpumask_t instead of the NR_CPUS sized array it currently is, that\nwould also require something like this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nLink: http://lkml.kernel.org/n/tip-e42skvaddos99psip0vce41o@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6eb57e0d65ebd99a71d435dc96d83e725752eef8",
      "tree": "0349de8e8478a9b39dd1c75d347c36b9ebbef24c",
      "parents": [
        "ca38062e57e97791c2f62e3dbd06caf3ebb5721c"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Oct 03 15:09:01 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:27 2011 +0200"
      },
      "message": "sched: Request for idle balance during nohz idle load balance\n\nrq\u0027s idle_at_tick is set to idle/busy during the timer tick\ndepending on the cpu was idle or not. This will be used later in the load\nbalance that will be done in the softirq context (which is a process\ncontext in -RT kernels).\n\nFor nohz kernels, for the cpu doing nohz idle load balance on behalf of\nall the idle cpu\u0027s, its rq-\u003eidle_at_tick might have a stale value (which is\nrecorded when it got the timer tick presumably when it is busy).\n\nAs the nohz idle load balancing is also being done at the same place\nas the regular load balancing, nohz idle load balancing was bailing out\nwhen it sees rq\u0027s idle_at_tick not set.\n\nThus leading to poor system utilization.\n\nRename rq\u0027s idle_at_tick to idle_balance and set it when someone requests\nfor nohz idle balance on an idle cpu.\n\nReported-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111003220934.892350549@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca38062e57e97791c2f62e3dbd06caf3ebb5721c",
      "tree": "c022f6a3d3087cc8eaebbc5640ca145f7d9c50d8",
      "parents": [
        "9243a169acb9df9c63632fb7d5464359a107877a"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Oct 03 15:09:00 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:23 2011 +0200"
      },
      "message": "sched: Use resched IPI to kick off the nohz idle balance\n\nCurrent use of smp call function to kick the nohz idle balance can deadlock\nin this scenario.\n\n1. cpu-A did a generic_exec_single() to cpu-B and after queuing its call single\ndata (csd) to the call single queue, cpu-A took a timer interrupt.  Actual IPI\nto cpu-B to process the call single queue is not yet sent.\n\n2. As part of the timer interrupt handler, cpu-A decided to kick cpu-B\nfor the idle load balancing (sets cpu-B\u0027s rq-\u003enohz_balance_kick to 1)\nand __smp_call_function_single() with nowait will queue the csd to the\ncpu-B\u0027s queue. But the generic_exec_single() won\u0027t send an IPI to cpu-B\nas the call single queue was not empty.\n\n3. cpu-A is busy with lot of interrupts\n\n4. Meanwhile cpu-B is entering and exiting idle and noticed that it has\nit\u0027s rq-\u003enohz_balance_kick set to \u00271\u0027. So it will go ahead and do the\nidle load balancer and clear its rq-\u003enohz_balance_kick.\n\n5. At this point, csd queued as part of the step-2 above is still locked\nand waiting to be serviced on cpu-B.\n\n6. cpu-A is still busy with interrupt load and now it got another timer\ninterrupt and as part of it decided to kick cpu-B for another idle load\nbalancing (as it finds cpu-B\u0027s rq-\u003enohz_balance_kick cleared in step-4\nabove) and does __smp_call_function_single() with the same csd that is\nstill locked.\n\n7. And we get a deadlock waiting for the csd_lock() in the\n__smp_call_function_single().\n\nMain issue here is that cpu-B can service the idle load balancer kick\nrequest from cpu-A even with out receiving the IPI and this lead to\ndoing multiple __smp_call_function_single() on the same csd leading to\ndeadlock.\n\nTo kick a cpu, scheduler already has the reschedule vector reserved. Use\nthat mechanism (kick_process()) instead of using the generic smp call function\nmechanism to kick off the nohz idle load balancing and avoid the deadlock.\n\n   [ This issue is present from 2.6.35+ kernels, but marking it -stable\n     only from v3.0+ as the proposed fix depends on the scheduler_ipi()\n     that is introduced recently. ]\n\nReported-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: stable@kernel.org # v3.0+\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111003220934.834943260@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4cfb33ed980085b14a8f376281edb2e270f0244",
      "tree": "d4f4e8387cefcf44068597328e0901f09f45d4bc",
      "parents": [
        "bfa322c48dc69bfdaee10faf3bd8dbc23b39a21c"
      ],
      "author": {
        "name": "Wang Xingchao",
        "email": "xingchao.wang@intel.com",
        "time": "Fri Sep 16 13:35:52 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 26 13:25:49 2011 +0200"
      },
      "message": "sched: Remove redundant test in check_preempt_tick()\n\nThe caller already checks for nr_running \u003e 1, therefore we don\u0027t have\nto do so again.\n\nSigned-off-by: Wang Xingchao \u003cxingchao.wang@intel.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/1316194552-12019-1-git-send-email-xingchao.wang@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d8b4986d3dbc4fabc2054d63f1d31d6ed2fb1ca8",
      "tree": "d6afd92e5425f64b337c916d12dc58ca101c334d",
      "parents": [
        "e8da1b18b32064c43881bceef0f051c2110c9ab9"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:41 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:54 2011 +0200"
      },
      "message": "sched: Return unused runtime on group dequeue\n\nWhen a local cfs_rq blocks we return the majority of its remaining quota to the\nglobal bandwidth pool for use by other runqueues.\n\nWe do this only when the quota is current and there is more than\nmin_cfs_rq_quota [1ms by default] of runtime remaining on the rq.\n\nIn the case where there are throttled runqueues and we have sufficient\nbandwidth to meter out a slice, a second timer is kicked off to handle this\ndelivery, unthrottling where appropriate.\n\nUsing a \u0027worst case\u0027 antagonist which executes on each cpu\nfor 1ms before moving onto the next on a fairly large machine:\n\nno quota generations:\n\n 197.47 ms       /cgroup/a/cpuacct.usage\n 199.46 ms       /cgroup/a/cpuacct.usage\n 205.46 ms       /cgroup/a/cpuacct.usage\n 198.46 ms       /cgroup/a/cpuacct.usage\n 208.39 ms       /cgroup/a/cpuacct.usage\n\nSince we are allowed to use \"stale\" quota our usage is effectively bounded by\nthe rate of input into the global pool and performance is relatively stable.\n\nwith quota generations [1s increments]:\n\n 119.58 ms       /cgroup/a/cpuacct.usage\n 119.65 ms       /cgroup/a/cpuacct.usage\n 119.64 ms       /cgroup/a/cpuacct.usage\n 119.63 ms       /cgroup/a/cpuacct.usage\n 119.60 ms       /cgroup/a/cpuacct.usage\n\nThe large deficit here is due to quota generations (/intentionally/) preventing\nus from now using previously stranded slack quota.  The cost is that this quota\nbecomes unavailable.\n\nwith quota generations and quota return:\n\n 200.09 ms       /cgroup/a/cpuacct.usage\n 200.09 ms       /cgroup/a/cpuacct.usage\n 198.09 ms       /cgroup/a/cpuacct.usage\n 200.09 ms       /cgroup/a/cpuacct.usage\n 200.06 ms       /cgroup/a/cpuacct.usage\n\nBy returning unused quota we\u0027re able to both stably consume our desired quota\nand prevent unintentional overages due to the abuse of slack quota from\nprevious quota periods (especially on a large machine).\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.306848658@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e8da1b18b32064c43881bceef0f051c2110c9ab9",
      "tree": "8d6e9e5713c1da4cee3ceba1da67df6cab22ab9f",
      "parents": [
        "d3d9dc3302368269acf94b7381663b93000fe2fe"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Thu Jul 21 09:43:40 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:49 2011 +0200"
      },
      "message": "sched: Add exports tracking cfs bandwidth control statistics\n\nThis change introduces statistics exports for the cpu sub-system, these are\nadded through the use of a stat file similar to that exported by other\nsubsystems.\n\nThe following exports are included:\n\nnr_periods:\tnumber of periods in which execution occurred\nnr_throttled:\tthe number of periods above in which execution was throttle\nthrottled_time:\tcumulative wall-time that any cpus have been throttled for\nthis group\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.198901931@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3d9dc3302368269acf94b7381663b93000fe2fe",
      "tree": "4659e1f9efdea0f15ab5ef551c718416fb8e7954",
      "parents": [
        "8cb120d3e41a0464a559d639d519cef563717a4e"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:39 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:47 2011 +0200"
      },
      "message": "sched: Throttle entities exceeding their allowed bandwidth\n\nWith the machinery in place to throttle and unthrottle entities, as well as\nhandle their participation (or lack there of) we can now enable throttling.\n\nThere are 2 points that we must check whether it\u0027s time to set throttled state:\n put_prev_entity() and enqueue_entity().\n\n- put_prev_entity() is the typical throttle path, we reach it by exceeding our\n  allocated run-time within update_curr()-\u003eaccount_cfs_rq_runtime() and going\n  through a reschedule.\n\n- enqueue_entity() covers the case of a wake-up into an already throttled\n  group.  In this case we know the group cannot be on_rq and can throttle\n  immediately.  Checks are added at time of put_prev_entity() and\n  enqueue_entity()\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.091415417@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5238cdd3873e67a98b28c1161d65d2a615c320a3",
      "tree": "6c0e162a8ef9e0eb4d0099b537cfde5138aeddb4",
      "parents": [
        "64660c864f46202b932b911a69deb09805bdbaf8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:37 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:42 2011 +0200"
      },
      "message": "sched: Prevent buddy interactions with throttled entities\n\nBuddies allow us to select \"on-rq\" entities without actually selecting them\nfrom a cfs_rq\u0027s rb_tree.  As a result we must ensure that throttled entities\nare not falsely nominated as buddies.  The fact that entities are dequeued\nwithin throttle_entity is not sufficient for clearing buddy status as the\nnomination may occur after throttling.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.886850167@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "64660c864f46202b932b911a69deb09805bdbaf8",
      "tree": "cf49455195a184e4962c6cac2c39c4f690d74ddc",
      "parents": [
        "8277434ef1202ce30315f8edb3fc760aa6e74493"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:36 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:40 2011 +0200"
      },
      "message": "sched: Prevent interactions with throttled entities\n\nFrom the perspective of load-balance and shares distribution, throttled\nentities should be invisible.\n\nHowever, both of these operations work on \u0027active\u0027 lists and are not\ninherently aware of what group hierarchies may be present.  In some cases this\nmay be side-stepped (e.g. we could sideload via tg_load_down in load balance)\nwhile in others (e.g. update_shares()) it is more difficult to compute without\nincurring some O(n^2) costs.\n\nInstead, track hierarchicaal throttled state at time of transition.  This\nallows us to easily identify whether an entity belongs to a throttled hierarchy\nand avoid incorrect interactions with it.\n\nAlso, when an entity leaves a throttled hierarchy we need to advance its\ntime averaging for shares averaging so that the elapsed throttled time is not\nconsidered as part of the cfs_rq\u0027s operation.\n\nWe also use this information to prevent buddy interactions in the wakeup and\nyield_to() paths.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.777916795@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "671fd9dabe5239ad218c7eb48b2b9edee50250e6",
      "tree": "351f59453eb699661bd811210f24d8b7fd554ca4",
      "parents": [
        "85dac906bec3bb41bfaa7ccaa65c4706de5cfdf8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:34 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:36 2011 +0200"
      },
      "message": "sched: Add support for unthrottling group entities\n\nAt the start of each period we refresh the global bandwidth pool.  At this time\nwe must also unthrottle any cfs_rq entities who are now within bandwidth once\nmore (as quota permits).\n\nUnthrottled entities have their corresponding cfs_rq-\u003ethrottled flag cleared\nand their entities re-enqueued.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.574628950@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85dac906bec3bb41bfaa7ccaa65c4706de5cfdf8",
      "tree": "5d3f71d409fe002b0dfd2cdfb7ef09a9d5851f66",
      "parents": [
        "a9cf55b2861057a213e610da2fec52125439a11d"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:33 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:34 2011 +0200"
      },
      "message": "sched: Add support for throttling group entities\n\nNow that consumption is tracked (via update_curr()) we add support to throttle\ngroup entities (and their corresponding cfs_rqs) in the case where this is no\nrun-time remaining.\n\nThrottled entities are dequeued to prevent scheduling, additionally we mark\nthem as throttled (using cfs_rq-\u003ethrottled) to prevent them from becoming\nre-enqueued until they are unthrottled.  A list of a task_group\u0027s throttled\nentities are maintained on the cfs_bandwidth structure.\n\nNote: While the machinery for throttling is added in this patch the act of\nthrottling an entity exceeding its bandwidth is deferred until later within\nthe series.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.480608533@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a9cf55b2861057a213e610da2fec52125439a11d",
      "tree": "6c0caf35a6e8fbba7325227f11029f5f4d4cbf7e",
      "parents": [
        "58088ad0152ba4b7997388c93d0ca208ec1ece75"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:32 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:31 2011 +0200"
      },
      "message": "sched: Expire invalid runtime\n\nSince quota is managed using a global state but consumed on a per-cpu basis\nwe need to ensure that our per-cpu state is appropriately synchronized.\nMost importantly, runtime that is state (from a previous period) should not be\nlocally consumable.\n\nWe take advantage of existing sched_clock synchronization about the jiffy to\nefficiently detect whether we have (globally) crossed a quota boundary above.\n\nOne catch is that the direction of spread on sched_clock is undefined,\nspecifically, we don\u0027t know whether our local clock is behind or ahead\nof the one responsible for the current expiration time.\n\nFortunately we can differentiate these by considering whether the\nglobal deadline has advanced.  If it has not, then we assume our clock to be\n\"fast\" and advance our local expiration; otherwise, we know the deadline has\ntruly passed and we expire our local runtime.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.379275352@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58088ad0152ba4b7997388c93d0ca208ec1ece75",
      "tree": "22d818b745056effc53ee6fa97ee9103548766b5",
      "parents": [
        "ec12cb7f31e28854efae7dd6f9544e0a66379040"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:31 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:28 2011 +0200"
      },
      "message": "sched: Add a timer to handle CFS bandwidth refresh\n\nThis patch adds a per-task_group timer which handles the refresh of the global\nCFS bandwidth pool.\n\nSince the RT pool is using a similar timer there\u0027s some small refactoring to\nshare this support.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.277271273@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec12cb7f31e28854efae7dd6f9544e0a66379040",
      "tree": "30a7293a4f9d566043f524bb4c43d4ae8b0560db",
      "parents": [
        "a790de99599a29ad3f18667530cf4b9f4b7e3234"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:30 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:26 2011 +0200"
      },
      "message": "sched: Accumulate per-cfs_rq cpu usage and charge against bandwidth\n\nAccount bandwidth usage on the cfs_rq level versus the task_groups to which\nthey belong.  Whether we are tracking bandwidth on a given cfs_rq is maintained\nunder cfs_rq-\u003eruntime_enabled.\n\ncfs_rq\u0027s which belong to a bandwidth constrained task_group have their runtime\naccounted via the update_curr() path, which withdraws bandwidth from the global\npool as desired.  Updates involving the global pool are currently protected\nunder cfs_bandwidth-\u003elock, local runtime is protected by rq-\u003elock.\n\nThis patch only assigns and tracks quota, no action is taken in the case that\ncfs_rq-\u003eruntime_used exceeds cfs_rq-\u003eruntime_assigned.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.179386821@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ab84d31e15502fb626169ba2663381e34bf965b2",
      "tree": "658ce7caa6199aa74c5feea92ec8d3e9a2cb4296",
      "parents": [
        "953bfcd10e6f3697233e8e5128c611d275da39c1"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:28 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:20 2011 +0200"
      },
      "message": "sched: Introduce primitives to account for CFS bandwidth tracking\n\nIn this patch we introduce the notion of CFS bandwidth, partitioned into\nglobally unassigned bandwidth, and locally claimed bandwidth.\n\n - The global bandwidth is per task_group, it represents a pool of unclaimed\n   bandwidth that cfs_rqs can allocate from.\n - The local bandwidth is tracked per-cfs_rq, this represents allotments from\n   the global pool bandwidth assigned to a specific cpu.\n\nBandwidth is managed via cgroupfs, adding two new interfaces to the cpu subsystem:\n - cpu.cfs_period_us : the bandwidth period in usecs\n - cpu.cfs_quota_us : the cpu bandwidth (in usecs) that this tg will be allowed\n   to consume over period above.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184756.972636699@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "953bfcd10e6f3697233e8e5128c611d275da39c1",
      "tree": "a3ca8136bb9e992bb40945c5eee2a8dcc0fd0b57",
      "parents": [
        "5710f15b52664ae0bfa60a66d75464769d297b2b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:27 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:01:13 2011 +0200"
      },
      "message": "sched: Implement hierarchical task accounting for SCHED_OTHER\n\nIntroduce hierarchical task accounting for the group scheduling case in CFS, as\nwell as promoting the responsibility for maintaining rq-\u003enr_running to the\nscheduling classes.\n\nThe primary motivation for this is that with scheduling classes supporting\nbandwidth throttling it is possible for entities participating in throttled\nsub-trees to not have root visible changes in rq-\u003enr_running across activate\nand de-activate operations.  This in turn leads to incorrect idle and\nweight-per-task load balance decisions.\n\nThis also allows us to make a small fixlet to the fastpath in pick_next_task()\nunder group scheduling.\n\nNote: this issue also exists with the existing sched_rt throttling mechanism.\nThis patch does not address that.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184756.878333391@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0835471697255b415edcefd6b1e25b6c034439f2",
      "tree": "921d1c42bf9b6656135a1126ee8723287ef4bfa1",
      "parents": [
        "67d955383ab2ef8866c494c14156a4f3d29e441c"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:19 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:46 2011 +0200"
      },
      "message": "sched: Remove noop in lowest_flag_domain()\n\nChecking for the validity of sd is removed, since it is already\nchecked by the for_each_domain macro.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTimT+Tut-3TshCDm-NiLLXrOznibNA@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c2efaed9bc973e3aeab1385c618017b56c8f6d7",
      "tree": "2a401b92c58c8aa8a40dafc513fb6be42f92c80a",
      "parents": [
        "e2b245f89ee3f5b03fb42d843a79a58cf4773181"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Fri Jul 29 16:20:33 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:41 2011 +0200"
      },
      "message": "sched: Kill WAKEUP_PREEMPT\n\nRemove the WAKEUP_PREEMPT feature, disabling it doesn\u0027t make any sense\nand its outlived its use by a long long while.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110729082033.GB12106@zhy\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f3171438fc917b9f6b8b60dbb7a3fff9a0f68fd",
      "tree": "9164575614f17bbce9a03128af460e997189a808",
      "parents": [
        "2bd2d6f2dc952fc44fc52887de36e51896da96b9"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Fri Jul 22 09:14:31 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 22 12:47:22 2011 +0200"
      },
      "message": "sched: Cleanup duplicate local variable in [enqueue|dequeue]_task_fair\n\nNo need to define a new \"cfs_rq\" variable in the \"for\" block.\nJust use the one at the top of the function.\n\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311297271.3938.1352.camel@minggr.sh.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bd2d6f2dc952fc44fc52887de36e51896da96b9",
      "tree": "0b08e0ae13cad776cb216a4b85b1eb8d6eda6611",
      "parents": [
        "acb5a9ba3bd7cd8b3264f67a3789a9587d3b935b"
      ],
      "author": {
        "name": "Stephan Baerwolf",
        "email": "stephan.baerwolf@tu-ilmenau.de",
        "time": "Wed Jul 20 14:46:59 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:55 2011 +0200"
      },
      "message": "sched: Replace use of entity_key()\n\n\"entity_key()\" is only used in \"__enqueue_entity()\" and\nits only function is to subtract a tasks vruntime by\nits groups minvruntime.\nBefore this patch a rbtree enqueue-decision is done by\ncomparing two tasks in the style:\n\n\t\"if (entity_key(cfs_rq, se) \u003c entity_key(cfs_rq, entry))\"\n\nwhich would be\n\n\t\"if (se-\u003evruntime-cfs_rq-\u003emin_vruntime \u003c entry-\u003evruntime-cfs_rq-\u003emin_vruntime)\"\n\nor (if reducing cfs_rq-\u003emin_vruntime out)\n\n\t\"if (se-\u003evruntime \u003c entry-\u003evruntime)\"\n\nwhich is\n\n\t\"if (entity_before(se, entry))\"\n\nSo we do not need \"entity_key()\".\nIf \"entity_before()\" is inline we will also save one subtraction (only one,\nbecause \"entity_key(cfs_rq, se)\"  was cached in \"key\")\n\nSigned-off-by: Stephan Baerwolf \u003cstephan.baerwolf@tu-ilmenau.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-ns12mnd2h5w8rb9agd8hnsfk@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "045176d22f08bc0b650a028df0f62fc3c2747699",
      "tree": "8dc6dd7afa8b953a593f7302314aa032bd472b36",
      "parents": [
        "5f817d676b7b7ac4a29f5ed93063ae7a24550c12"
      ],
      "author": {
        "name": "Jan Schoenherr",
        "email": "schnhrr@cs.tu-berlin.de",
        "time": "Wed Jul 13 20:13:32 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:49 2011 +0200"
      },
      "message": "sched: Remove unused function cpu_cfs_rq()\n\nThe last reference to cpu_cfs_rq() was removed with commit 88ec22d3\n(\"sched: Remove the cfs_rq dependency from set_task_cpu()\"). Thus,\nremove this function, too.\n\nSigned-off-by: Jan Schoenherr \u003cschnhrr@cs.tu-berlin.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1310580816-10861-3-git-send-email-schnhrr@cs.tu-berlin.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9763b67fb9f3050c6da739105888327587c30c4d",
      "tree": "822e6a5243c3d872f86d9c9b980896bc4cd8a491",
      "parents": [
        "9598c82dcacadc3b9daa8170613fd054c6124d30"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 13 13:09:25 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:46 2011 +0200"
      },
      "message": "sched, cgroup: Optimize load_balance_fair()\n\nUse for_each_leaf_cfs_rq() instead of list_for_each_entry_rcu(), this\nachieves that load_balance_fair() only iterates those task_groups that\nactually have tasks on busiest, and that we iterate bottom-up, trying to\nmove light groups before the heavier ones.\n\nNo idea if it will actually work out to be beneficial in practice, does\nanybody have a cgroup workload that might show a difference one way or\nthe other?\n\n[ Also move update_h_load to sched_fair.c, loosing #ifdef-ery ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nLink: http://lkml.kernel.org/r/1310557009.2586.28.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9598c82dcacadc3b9daa8170613fd054c6124d30",
      "tree": "1d6c8b5c1aa9882bf9f5f64b68356baf625d23f8",
      "parents": [
        "9bbd7374361d9bfc75108c3ad1c1b6db28b1be59"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Jul 06 22:30:37 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:44 2011 +0200"
      },
      "message": "sched: Don\u0027t update shares twice on on_rq parent\n\nIn dequeue_task_fair() we bail on dequeue when we encounter a parenting entity\nwith additional weight.  However, we perform a double shares update on this\nentity as we continue the shares update traversal from this point, despite\ndequeue_entity() having already updated its queuing cfs_rq.\nAvoid this by starting from the parent when we resume.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110707053059.797714697@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9bbd7374361d9bfc75108c3ad1c1b6db28b1be59",
      "tree": "d787a387a2a2e3d8c0476b79ae57dd217098763f",
      "parents": [
        "994bf1c92270e3d7731ea08f1d1bd7a668314e60"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Tue Jul 05 19:07:21 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:43 2011 +0200"
      },
      "message": "sched: update correct entity\u0027s runtime in check_preempt_wakeup()\n\nWhile looking at check_preempt_wakeup() I realized that we are\npotentially updating the wrong entity in the fair-group scheduling\ncase. In this case the current task\u0027s cfs_rq may not be the same as\nthe one used for the comparison between the waking task and the\nexisting task\u0027s vruntime.\n\nThis potentially results in us using a stale vruntime in the\npre-emption decision, providing a small false preference for the\nprevious task. The effects of this are bounded since we always\nperform a hierarchal update on the tick.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/CAPM31R+2Ke2urUZKao5W92_LupdR4AYEv-EZWiJ3tG\u003dtEes2cw@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "994bf1c92270e3d7731ea08f1d1bd7a668314e60",
      "tree": "4409a21eab486e53fbe350a66e8a4f28b7a720c0",
      "parents": [
        "bd96efe17d945f0bad56d592f8686dc6309905e7",
        "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 17:59:54 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:00:01 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: pick up the latest scheduler fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c3f75cbd144014bea6af866a154cc2e73ab2287",
      "tree": "2a565f7ff0820269973415c5605e313cfff903b4",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 14 13:00:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:40 2011 +0200"
      },
      "message": "sched: Break out cpu_power from the sched_group structure\n\nIn order to prepare for non-unique sched_groups per domain, we need to\ncarry the cpu_power elsewhere, so put a level of indirection in.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a46dae38087e62dd5fb08a6dadf1407717ed13c",
      "tree": "1840acef6c5003aee8744b64fec3a13002ba0abd",
      "parents": [
        "36b2e922b5acd291051fab25bc7535274ce49532"
      ],
      "author": {
        "name": "Nikunj A. Dadhania",
        "email": "nikunj@linux.vnet.ibm.com",
        "time": "Tue Jun 07 15:43:22 2011 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:39:06 2011 +0200"
      },
      "message": "sched: Remove rcu_read_lock() from wake_affine()\n\nwake_affine() is only called from one path: select_task_rq_fair(),\nwhich already has the RCU read lock held.\n\nSigned-off-by: Nikunj A. Dadhania \u003cnikunj@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110607101251.777.34547.stgit@IBM-009124035060.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e876231785d82443a5ac8b6c660e9f51bc5dede",
      "tree": "cab00c4c8ec3090a41215223dde2f47483287cb7",
      "parents": [
        "d6aa8f85f16379d42c147b22b59e33b67f9ff466"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue May 17 16:21:10 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:56 2011 +0200"
      },
      "message": "sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n\nDima Zavin \u003cdima@android.com\u003e reported:\n\n\"After pulling the thread off the run-queue during a cgroup change,\nthe cfs_rq.min_vruntime gets recalculated. The dequeued thread\u0027s vruntime\nthen gets normalized to this new value. This can then lead to the thread\ngetting an unfair boost in the new group if the vruntime of the next\ntask in the old run-queue was way further ahead.\"\n\nReported-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nRecalls-having-tested-once-upon-a-time-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1305674470-23727-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1399fa7807a1a5998bbf147e80668e9950661dfa",
      "tree": "dc4e1a97f50b8e7297c82f63e1ad2b15430b33d9",
      "parents": [
        "f05998d4b80632f2cc00f108da503066ef5d38d5"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed May 18 10:09:39 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 20 14:16:50 2011 +0200"
      },
      "message": "sched: Introduce SCHED_POWER_SCALE to scale cpu_power calculations\n\nSCHED_LOAD_SCALE is used to increase nice resolution and to\nscale cpu_power calculations in the scheduler. This patch\nintroduces SCHED_POWER_SCALE and converts all uses of\nSCHED_LOAD_SCALE for scaling cpu_power to use SCHED_POWER_SCALE\ninstead.\n\nThis is a preparatory patch for increasing the resolution of\nSCHED_LOAD_SCALE, and there is no need to increase resolution\nfor cpu_power calculations.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nikunj A. Dadhania \u003cnikunj@linux.vnet.ibm.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Stephan Barwolf \u003cstephan.baerwolf@tu-ilmenau.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLink: http://lkml.kernel.org/r/1305738580-9924-3-git-send-email-ncrao@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "931aeeda0dca81152aec48f30be01e86a268bf89",
      "tree": "7314d932c1ad6f00285ae35fe82d0872b637483e",
      "parents": [
        "1437f5bca3c2d162f058cba37dfbeb20f619040d"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Tue May 03 22:31:07 2011 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 04 09:07:21 2011 +0200"
      },
      "message": "sched: Remove unused \u0027this_best_prio arg\u0027 from balance_tasks()\n\nIt\u0027s passed across multiple functions but is never really used, so\nremove it.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1304447467-29200-1-git-send-email-vdavydov@parallels.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2f36825b176f67e5c5228aa33d828bc39718811f",
      "tree": "065130f8eb74a419d8ddf1856ccc64ee7b195843",
      "parents": [
        "69c80f3e9d3c569f8a3cee94ba1a324b5a7fa6b9"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Thu Apr 14 10:30:53 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 19 10:08:38 2011 +0200"
      },
      "message": "sched: Next buddy hint on sleep and preempt path\n\nWhen a task in a taskgroup sleeps, pick_next_task starts all the way back at\nthe root and picks the task/taskgroup with the min vruntime across all\nrunnable tasks.\n\nBut when there are many frequently sleeping tasks across different taskgroups,\nit makes better sense to stay with same taskgroup for its slice period (or\nuntil all tasks in the taskgroup sleeps) instead of switching cross taskgroup\non each sleep after a short runtime.\n\nThis helps specifically where taskgroups corresponds to a process with\nmultiple threads. The change reduces the number of CR3 switches in this case.\n\nExample:\n\nTwo taskgroups with 2 threads each which are running for 2ms and\nsleeping for 1ms. Looking at sched:sched_switch shows:\n\nBEFORE: taskgroup_1 threads [5004, 5005], taskgroup_2 threads [5016, 5017]\n      cpu-soaker-5004  [003]  3683.391089\n      cpu-soaker-5016  [003]  3683.393106\n      cpu-soaker-5005  [003]  3683.395119\n      cpu-soaker-5017  [003]  3683.397130\n      cpu-soaker-5004  [003]  3683.399143\n      cpu-soaker-5016  [003]  3683.401155\n      cpu-soaker-5005  [003]  3683.403168\n      cpu-soaker-5017  [003]  3683.405170\n\nAFTER: taskgroup_1 threads [21890, 21891], taskgroup_2 threads [21934, 21935]\n      cpu-soaker-21890 [003]   865.895494\n      cpu-soaker-21935 [003]   865.897506\n      cpu-soaker-21934 [003]   865.899520\n      cpu-soaker-21935 [003]   865.901532\n      cpu-soaker-21934 [003]   865.903543\n      cpu-soaker-21935 [003]   865.905546\n      cpu-soaker-21891 [003]   865.907548\n      cpu-soaker-21890 [003]   865.909560\n      cpu-soaker-21891 [003]   865.911571\n      cpu-soaker-21890 [003]   865.913582\n      cpu-soaker-21891 [003]   865.915594\n      cpu-soaker-21934 [003]   865.917606\n\nSimilar problem is there when there are multiple taskgroups and say a task A\npreempts currently running task B of taskgroup_1. On schedule, pick_next_task\ncan pick an unrelated task on taskgroup_2. Here it would be better to give some\npreference to task B on pick_next_task.\n\nA simple (may be extreme case) benchmark I tried was tbench with 2 tbench\nclient processes with 2 threads each running on a single CPU. Avg throughput\nacross 5 50 sec runs was:\n\n BEFORE: 105.84 MB/sec\n AFTER:  112.42 MB/sec\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1302802253-25760-1-git-send-email-venki@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69c80f3e9d3c569f8a3cee94ba1a324b5a7fa6b9",
      "tree": "d802b0ade642dcad187384da9b5312d90e47ea45",
      "parents": [
        "6ddafdaab3f809b110ada253d2f2d4910ebd3ac5"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Wed Apr 13 18:21:09 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 19 10:08:37 2011 +0200"
      },
      "message": "sched: Make set_*_buddy() work on non-task entities\n\nMake set_*_buddy() work on non-task sched_entity, to facilitate the\nuse of next_buddy to cache a group entity in cases where one of the\ntasks within that entity sleeps or gets preempted.\n\nset_skip_buddy() was incorrectly comparing the policy of task that is\nyielding to be not equal to SCHED_IDLE. Yielding should happen even\nwhen task yielding is SCHED_IDLE. This change removes the policy check\non the yielding task.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1302744070-30079-2-git-send-email-venki@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ddafdaab3f809b110ada253d2f2d4910ebd3ac5",
      "tree": "366bb7513511a05b6e11ab89bfe3b2dbd1d62a03",
      "parents": [
        "3905c54f2bd2c6f937f87307987ca072eabc3e7b",
        "bd8e7dded88a3e1c085c333f19ff31387616f71a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 18 14:53:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 18 14:53:33 2011 +0200"
      },
      "message": "Merge branch \u0027sched/locking\u0027 into sched/core\n\nMerge reason: the rq locking changes are stable,\n              propagate them into the .40 queue.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3fe1698b7fe05aeb063564e71e40d09f28d8e80c",
      "tree": "d068bd6a075cd85c64a040cf9fc8e661f8be00a8",
      "parents": [
        "74f8e4b2335de45485b8d5b31a504747f13c8070"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:48 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:37 2011 +0200"
      },
      "message": "sched: Deal with non-atomic min_vruntime reads on 32bits\n\nIn order to avoid reading partial updated min_vruntime values on 32bit\nimplement a seqcount like solution.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.111378493@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74f8e4b2335de45485b8d5b31a504747f13c8070",
      "tree": "f8f8ba3e346239c44177d09620e65b18870d911f",
      "parents": [
        "7608dec2ce2004c234339bef8c8074e5e601d0e9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:47 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:36 2011 +0200"
      },
      "message": "sched: Remove rq argument to sched_class::task_waking()\n\nIn preparation of calling this without rq-\u003elock held, remove the\ndependency on the rq argument.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.071474242@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7608dec2ce2004c234339bef8c8074e5e601d0e9",
      "tree": "a855754a4fa3de6fe0d287c9d94d58d7bd6e8978",
      "parents": [
        "013fdb8086acaae5f8eb96f9ad48fcd98882ac46"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:46 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:36 2011 +0200"
      },
      "message": "sched: Drop the rq argument to sched_class::select_task_rq()\n\nIn preparation of calling select_task_rq() without rq-\u003elock held, drop\nthe dependency on the rq argument.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.031077745@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a6c75f2f8d988ecfecf971f98f1cb6fc4de522fe",
      "tree": "0524765c72bd13c0d4190c2dc17ac1a01c9269ad",
      "parents": [
        "822ff793c34a5d4c8b5f3f9ce932602233d96464"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:09:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 12:58:20 2011 +0200"
      },
      "message": "sched: Avoid using sd-\u003elevel\n\nDon\u0027t use sd-\u003elevel for identifying properties of the domain.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.350174079@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dce840a08702bd13a9a186e07e63d1ef82256b5e",
      "tree": "168bb98aed7f5761ebe31aa92c34959e9d0f238a",
      "parents": [
        "a9c9a9b6bff27ac9c746344a9c1a19bf3327002c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:09:50 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 12:58:19 2011 +0200"
      },
      "message": "sched: Dynamically allocate sched_domain/sched_group data-structures\n\nInstead of relying on static allocations for the sched_domain and\nsched_group trees, dynamically allocate and RCU free them.\n\nAllocating this dynamically also allows for some build_sched_groups()\nsimplification since we can now (like with other simplifications) rely\non the sched_domain tree instead of hard-coded knowledge.\n\nOne tricky to note is that detach_destroy_domains() needs to hold\nrcu_read_lock() over the entire tear-down, per-cpu is not sufficient\nsince that can lead to partial sched_group existance (could possibly\nbe solved by doing the tear-down backwards but this is much more\nrobust).\n\nA concequence of the above is that we can no longer print the\nsched_domain debug stuff from cpu_attach_domain() since that might now\nrun with preemption disabled (due to classic RCU etc.) and\nsched_domain_debug() does some GFP_KERNEL allocations.\n\nAnother thing to note is that we now fully rely on normal RCU and not\nRCU-sched, this is because with the new and exiting RCU flavours we\ngrew over the years BH doesn\u0027t necessarily hold off RCU-sched grace\nperiods (-rt is known to break this). This would in fact already cause\nus grief since we do sched_domain/sched_group iterations from softirq\ncontext.\n\nThis patch is somewhat larger than I would like it to be, but I didn\u0027t\nfind any means of shrinking/splitting this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.245307941@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4ad9bd208c98f32a6f9136618e0b8bebe3fb370",
      "tree": "1cefacea2cc5d95f148a0036b1b13996ba8ed04f",
      "parents": [
        "b30aef17f71cf9e24b10c11cbb5e5f0ebe8a85ab"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Apr 08 12:53:09 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 11:08:55 2011 +0200"
      },
      "message": "sched: Eliminate dead code from wakeup_gran()\n\ncalc_delta_fair() checks NICE_0_LOAD already, delete duplicate check.\n\nSigned-off-by: Shaohua Li\u003cshaohua.li@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLink: http://lkml.kernel.org/r/1302238389.3981.92.camel@sli10-conroe\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b30aef17f71cf9e24b10c11cbb5e5f0ebe8a85ab",
      "tree": "0e5e0e0d1d93edf934f58b116ee0c4e81db01e72",
      "parents": [
        "b0432d8f162c7d5d9537b4cb749d44076b76a783"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Fri Apr 08 12:20:16 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 11:08:54 2011 +0200"
      },
      "message": "sched: Fix erroneous all_pinned logic\n\nThe scheduler load balancer has specific code to deal with cases of\nunbalanced system due to lots of unmovable tasks (for example because of\nhard CPU affinity). In those situation, it excludes the busiest CPU that\nhas pinned tasks for load balance consideration such that it can perform\nsecond 2nd load balance pass on the rest of the system.\n\nThis all works as designed if there is only one cgroup in the system.\n\nHowever, when we have multiple cgroups, this logic has false positives and\ntriggers multiple load balance passes despite there are actually no pinned\ntasks at all.\n\nThe reason it has false positives is that the all pinned logic is deep in\nthe lowest function of can_migrate_task() and is too low level:\n\nload_balance_fair() iterates each task group and calls balance_tasks() to\nmigrate target load. Along the way, balance_tasks() will also set a\nall_pinned variable. Given that task-groups are iterated, this all_pinned\nvariable is essentially the status of last group in the scanning process.\nTask group can have number of reasons that no load being migrated, none\ndue to cpu affinity. However, this status bit is being propagated back up\nto the higher level load_balance(), which incorrectly think that no tasks\nwere moved.  It kick off the all pinned logic and start multiple passes\nattempt to move load onto puller CPU.\n\nTo fix this, move the all_pinned aggregation up at the iterator level.\nThis ensures that the status is aggregated over all task-groups, not just\nlast one in the list.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTi\u003dernzNawaR5tJZEsV_QVnfxqXmsQ@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0432d8f162c7d5d9537b4cb749d44076b76a783",
      "tree": "98b94ec55f6d18935aedbc9ab898705ad252b939",
      "parents": [
        "4263a2f1dad8c8e7ce2352a0cbc882c2b0c044a9"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Thu Apr 07 17:23:22 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 11:08:54 2011 +0200"
      },
      "message": "sched: Fix sched-domain avg_load calculation\n\nIn function find_busiest_group(), the sched-domain avg_load isn\u0027t\ncalculated at all if there is a group imbalance within the domain. This\nwill cause erroneous imbalance calculation.\n\nThe reason is that calculate_imbalance() sees sds-\u003eavg_load \u003d 0 and it\nwill dump entire sds-\u003emax_load into imbalance variable, which is used\nlater on to migrate entire load from busiest CPU to the puller CPU.\n\nThis has two really bad effect:\n\n1. stampede of task migration, and they won\u0027t be able to break out\n   of the bad state because of positive feedback loop: large load\n   delta -\u003e heavier load migration -\u003e larger imbalance and the cycle\n   goes on.\n\n2. severe imbalance in CPU queue depth.  This causes really long\n   scheduling latency blip which affects badly on application that\n   has tight latency requirement.\n\nThe fix is to have kernel calculate domain avg_load in both cases. This\nwill ensure that imbalance calculation is always sensible and the target\nis usually half way between busiest and puller CPU.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110408002322.3A0D812217F@elm.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b9686ff4ddfdf45662024edd567920e6db87beb",
      "tree": "1d7e1d735121ea3c44ab72a24506151e4e88a36e",
      "parents": [
        "df9b29d13e043e134e65b9f66b68fa7eae5db8f0",
        "f994d99cf140dbb637e49882891c89b3fd84becd",
        "49c022e657fbe661460d191fbe776a387132e2b3",
        "09552b2696896dbb715be0caf91b23276f9139ba",
        "4f5058c3b71ed5930bb2b478c4d5dbc799dd9ad1",
        "f64fac86f9cd375743ed34385efc8a7732fa8e7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:12:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:12:58 2011 -0700"
      },
      "message": "Merge branches \u0027x86-fixes-for-linus\u0027, \u0027sched-fixes-for-linus\u0027, \u0027timers-fixes-for-linus\u0027, \u0027irq-fixes-for-linus\u0027 and \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86-32, fpu: Fix FPU exception handling on non-SSE systems\n  x86, hibernate: Initialize mmu_cr4_features during boot\n  x86-32, NUMA: Fix ACPI NUMA init broken by recent x86-64 change\n  x86: visws: Fixup irq overhaul fallout\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Clean up rebalance_domains() load-balance interval calculation\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86/mrst/vrtc: Fix boot crash in mrst_rtc_init()\n  rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm()\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Fix cpumask leak in __setup_irq()\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf probe: Fix listing incorrect line number with inline function\n  perf probe: Fix to find recursively inlined function\n  perf probe: Fix multiple --vars options behavior\n  perf probe: Fix to remove redundant close\n  perf probe: Fix to ensure function declared file\n"
    },
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "49c022e657fbe661460d191fbe776a387132e2b3",
      "tree": "487b713816a5ff3d81437aeecf111ffa414f6ede",
      "parents": [
        "b2a8b4b81966094703088a7bc76a313af841924d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 10:14:25 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 05 10:29:36 2011 +0200"
      },
      "message": "sched: Clean up rebalance_domains() load-balance interval calculation\n\nInstead of the possible multiple-evaluation of num_online_cpus()\nin rebalance_domains() that Linus reported, avoid it altogether\nin the normal case since it\u0027s implemented with a Hamming weight\nfunction over a cpu bitmask which can be darn expensive for those\nwith big iron.\n\nThis also makes it cleaner, smaller and documents the code.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1301991265.2225.12.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "3436ae1298cb22d722a6520fc97f112dd767a9e1",
      "tree": "ba05a2b0a80157f9eb19e34b0ac54b9dd279600b",
      "parents": [
        "e2495b577324938f0209b4f895c5f205c7e47854"
      ],
      "author": {
        "name": "Sisir Koppaka",
        "email": "sisir.koppaka@gmail.com",
        "time": "Sat Mar 26 18:22:55 2011 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 31 13:00:37 2011 +0200"
      },
      "message": "sched: Fix rebalance interval calculation\n\nThe interval for checking scheduling domains if they are due to be\nbalanced currently depends on boot state NR_CPUS, which may not\naccurately reflect the number of online CPUs at the time of check.\n\nThus replace NR_CPUS with num_online_cpus().\n\n (ed: Should only affect those who set NR_CPUS really high, such as 4096\n      or so :-)\n\nSigned-off-by: Sisir Koppaka \u003csisir.koppaka@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cAANLkTikqHWid2Q93F5U5Qw5snJH8C5PXoa7J6\u003d6hYO94@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d1cafd8b56ea726c10a5a104de57cc3ed8fa953",
      "tree": "638ba81859114b2bda8b4899cf73cc20a8a31553",
      "parents": [
        "c02aa73b1d18e43cfd79c2f193b225e84ca497c8"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Tue Mar 01 16:28:21 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 11:14:31 2011 +0100"
      },
      "message": "sched: Resched proper CPU on yield_to()\n\nyield_to_task_fair() has code to resched the CPU of yielding task when the\nintention is to resched the CPU of the task that is being yielded to.\n\nChange here fixes the problem and also makes the resched conditional on\nrq !\u003d p_rq.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1299025701-22168-1-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2f5c9ab79f78e8b91ac993e0543d65b661dd19b",
      "tree": "9fcdae7cad6745d02d5389ab591b454bb4c17b60",
      "parents": [
        "e0a92c17470775cd85bac52f5372ccc3dc58254a"
      ],
      "author": {
        "name": "Darren Hart",
        "email": "dvhart@linux.intel.com",
        "time": "Tue Feb 22 13:04:33 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 11:14:29 2011 +0100"
      },
      "message": "sched: Allow SCHED_BATCH to preempt SCHED_IDLE tasks\n\nPerform the test for SCHED_IDLE before testing for SCHED_BATCH (and\nensure idle tasks don\u0027t preempt idle tasks) so the non-interactive,\nbut still important, SCHED_BATCH tasks will run in favor of the very\nlow priority SCHED_IDLE tasks.\n\nSigned-off-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Richard Purdie \u003crichard.purdie@linuxfoundation.org\u003e\nLKML-Reference: \u003c1298408674-3130-2-git-send-email-dvhart@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "866ab43efd325fae8889ea77a744d03f2b957e38",
      "tree": "450263aa8a30abb4a0ab2812643aa7a83711df05",
      "parents": [
        "cc57aa8f4b3bece8c26c7929728edcc5fa6b5aed"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 21 18:56:47 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:33:57 2011 +0100"
      },
      "message": "sched: Fix the group_imb logic\n\nOn a 2*6*2 machine something like:\n\n taskset -c 3-11 bash -c \u0027for ((i\u003d0;i\u003c9;i++)) do while :; do :; done \u0026 done\u0027\n\n_should_ result in 9 busy CPUs, each running 1 task.\n\nHowever it didn\u0027t quite work reliably, most of the time one cpu of the\nsecond socket (6-11) would be idle and one cpu of the first socket\n(0-5) would have two tasks on it.\n\nThe group_imb logic is supposed to deal with this and detect when a\nparticular group is imbalanced (like in our case, 0-2 are idle but 3-5\nwill have 4 tasks on it).\n\nThe detection phase needed a bit of a tweak as it was too weak and\nrequired more than 2 avg weight tasks difference between idle and busy\ncpus in the group which won\u0027t trigger for our test-case. So cure that\nto be one or more avg task weight difference between cpus.\n\nOnce the detection phase worked, it was then defeated by the f_b_g()\ntests trying to avoid ping-pongs. In particular, this_load \u003e\u003d max_load\ntriggered because the pulling cpu (the (first) idle cpu in on the\nsecond socket, say 6) would find this_load to be 5 and max_load to be\n4 (there\u0027d be 5 tasks running on our socket and only 4 on the other\nsocket).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cc57aa8f4b3bece8c26c7929728edcc5fa6b5aed",
      "tree": "476c6d4b2d1e2d2cc77c35a8066c284877c7b5b3",
      "parents": [
        "c186fafe9aba87c1a93df8c7120a6ae01fe435ad"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 21 18:55:32 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:33:56 2011 +0100"
      },
      "message": "sched: Clean up some f_b_g() comments\n\nThe existing comment tends to grow state (as it already has), split it\nup and place it near the actual tests.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c186fafe9aba87c1a93df8c7120a6ae01fe435ad",
      "tree": "e6cbd31f1dd720d0f614df87f3e5b2876cf32a84",
      "parents": [
        "d927dc937910ad8c7350266cac70e42a5f0b48cf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 21 18:52:53 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:33:55 2011 +0100"
      },
      "message": "sched: Clean up remnants of sd_idle\n\nWith the wholesale removal of the sd_idle SMT logic we can clean up\nsome more.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "46e49b3836c7cd2ae5b5fe76fa981d0d292a52fe",
      "tree": "25c9a3fa6ad6f45fb8553e0ebe52b973a02f4ef6",
      "parents": [
        "48fa4b8ecf683f5e411303553da9e186e8b8406e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Feb 14 14:38:50 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 13:33:20 2011 +0100"
      },
      "message": "sched: Wholesale removal of sd_idle logic\n\nsd_idle logic was introduced way back in 2005 (commit 5969fe06),\nas an HT optimization.\n\nAs per the discussion in the thread here:\n\n  lkml - sched: Resolve sd_idle and first_idle_cpu Catch-22 - v1\n  https://patchwork.kernel.org/patch/532501/\n\nThe capacity based logic in the load balancer right now handles this\nin a much cleaner way, handling more than 2 SMT siblings etc, and sd_idle\ndoes not seem to bring any additional benefits. sd_idle logic also has\nsome bugs that has performance impact. Here is the patch that removes\nthe sd_idle logic altogether.\n\nAlso, there was a dependency of sched_mc_power_savings \u003d\u003d 2, with sd_idle\nlogic.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1297723130-693-1-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d95f412200652694e63e64bfd49f0ae274a54479",
      "tree": "d2abb7b2c635bbc9f344b45051b6186b1317718c",
      "parents": [
        "ac53db596cc08ecb8040cfb6f71ae40c6f2041c4"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Feb 01 09:50:51 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:33 2011 +0100"
      },
      "message": "sched: Add yield_to(task, preempt) functionality\n\nCurrently only implemented for fair class tasks.\n\nAdd a yield_to_task method() to the fair scheduling class. allowing the\ncaller of yield_to() to accelerate another thread in it\u0027s thread group,\ntask group.\n\nImplemented via a scheduler hint, using cfs_rq-\u003enext to encourage the\ntarget being selected.  We can rely on pick_next_entity to keep things\nfair, so noone can accelerate a thread that has already used its fair\nshare of CPU time.\n\nThis also means callers should only call yield_to when they really\nmean it.  Calling it too often can result in the scheduler just\nignoring the hint.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201095051.4ddb7738@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac53db596cc08ecb8040cfb6f71ae40c6f2041c4",
      "tree": "c263b558772213530532026af6fa9e34a8f88375",
      "parents": [
        "2c13c919d9e9a3db9896143a501f83dcbbe1ced4"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Feb 01 09:51:03 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:33 2011 +0100"
      },
      "message": "sched: Use a buddy to implement yield_task_fair()\n\nUse the buddy mechanism to implement yield_task_fair.  This\nallows us to skip onto the next highest priority se at every\nlevel in the CFS tree, unless doing so would introduce gross\nunfairness in CPU time distribution.\n\nWe order the buddy selection in pick_next_entity to check\nyield first, then last, then next.  We need next to be able\nto override yield, because it is possible for the \"next\" and\n\"yield\" task to be different processen in the same sub-tree\nof the CFS tree.  When they are, we need to go into that\nsub-tree regardless of the \"yield\" hint, and pick the correct\nentity once we get to the right level.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201095103.3a79e92a@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c13c919d9e9a3db9896143a501f83dcbbe1ced4",
      "tree": "4c326d2384ee0d09991cf5246baead5cfd08f3f9",
      "parents": [
        "725e7580aaf98e9f7b22b8ccfc640ad0c09e2b08"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Feb 01 09:48:37 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:32 2011 +0100"
      },
      "message": "sched: Limit the scope of clear_buddies\n\nThe clear_buddies function does not seem to play well with the concept\nof hierarchical runqueues.  In the following tree, task groups are\nrepresented by \u0027G\u0027, tasks by \u0027T\u0027, next by \u0027n\u0027 and last by \u0027l\u0027.\n\n     (nl)\n    /    \\\n   G(nl)  G\n   / \\     \\\n T(l) T(n)  T\n\nThis situation can arise when a task is woken up T(n), and the previously\nrunning task T(l) is marked last.\n\nWhen clear_buddies is called from either T(l) or T(n), the next and last\nbuddies of the group G(nl) will be cleared.  This is not the desired\nresult, since we would like to be able to find the other type of buddy\nin many cases.\n\nThis especially a worry when implementing yield_task_fair through the\nbuddy system.\n\nThe fix is simple: only clear the buddy type that the task itself\nis indicated to be.  As an added bonus, we stop walking up the tree\nwhen the buddy has already been cleared or pointed elsewhere.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.coM\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201094837.6b0962a9@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "725e7580aaf98e9f7b22b8ccfc640ad0c09e2b08",
      "tree": "8717e0fce19f74509ac1dffa91be95c3ef76c1e5",
      "parents": [
        "6ea72f12069306b235151c5b05ac0cca7e1dedfa"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Feb 01 09:47:15 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:32 2011 +0100"
      },
      "message": "sched: Check the right -\u003enr_running in yield_task_fair()\n\nWith CONFIG_FAIR_GROUP_SCHED, each task_group has its own cfs_rq.\nYielding to a task from another cfs_rq may be worthwhile, since\na process calling yield typically cannot use the CPU right now.\n\nTherefor, we want to check the per-cpu nr_running, not the\ncgroup local one.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201094715.798c4f86@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da7a735e51f9622eb3e1672594d4a41da01d7e4f",
      "tree": "27623dcd39c52a80b79e0ee86ab426fc9c7e2b46",
      "parents": [
        "a8941d7ec81678fb69aea7183338175f112f3e0d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jan 17 17:03:27 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:22 2011 +0100"
      },
      "message": "sched: Fix switch_from_fair()\n\nWhen a task is taken out of the fair class we must ensure the vruntime\nis properly normalized because when we put it back in it will assume\nto be normalized.\n\nThe case that goes wrong is when changing away from the fair class\nwhile sleeping. Sleeping tasks have non-normalized vruntime in order\nto make sleeper-fairness work. So treat the switch away from fair as a\nwakeup and preserve the relative vruntime.\n\nAlso update sysrq-n to call the -\u003eswitch_{to,from} methods.\n\nReported-by: Onkalo Samu \u003csamu.p.onkalo@nokia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f07333bf6ee66d9b49286cec4371cf375e745b7a",
      "tree": "03a1e9968eadf2465b6fc04fb8c1ab67327ea0f2",
      "parents": [
        "6d5ab2932a21ea54406ab95c43ecff90a3eddfda"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:03 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:19 2011 +0100"
      },
      "message": "sched: Avoid expensive initial update_cfs_load()\n\nSince cfs-\u003e{load_stamp,load_last} are zero-initalized the initial load update\nwill consider the delta to be \u0027since the beginning of time\u0027.\n\nThis results in a lot of pointless divisions to bring this large period to be\nwithin the sysctl_sched_shares_window.\n\nFix this by initializing load_stamp to be 1 at cfs_rq initialization, this\nallows for an initial load_stamp \u003e load_last which then lets standard idle\ntruncation proceed.\n\nWe avoid spinning (and slightly improve consistency) by fixing delta to be\n[period - 1] in this path resulting in a slightly more predictable shares ramp.\n(Previously the amount of idle time preserved by the overflow would range between\n[period/2,period-1].)\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044852.102126037@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d5ab2932a21ea54406ab95c43ecff90a3eddfda",
      "tree": "0d2ad00378aec0888426997f8f8dc5d7a3b8a602",
      "parents": [
        "05ca62c6ca17f39b88fa956d5ebc1fa6e93ad5e3"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:01 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:19 2011 +0100"
      },
      "message": "sched: Simplify update_cfs_shares parameters\n\nRe-visiting this: Since update_cfs_shares will now only ever re-weight an\nentity that is a relative parent of the current entity in enqueue_entity; we\ncan safely issue the account_entity_enqueue relative to that cfs_rq and avoid\nthe requirement for special handling of the enqueue case in update_cfs_shares.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.915214637@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05ca62c6ca17f39b88fa956d5ebc1fa6e93ad5e3",
      "tree": "a56f4f47dd23ef65ebb5c579adb1fbb29ba3faed",
      "parents": [
        "b815f1963e47b9b69bb17e0588bd5af5b1114ae0"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:02 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:03 2011 +0100"
      },
      "message": "sched: Use rq-\u003eclock_task instead of rq-\u003eclock for correctly maintaining load averages\n\nThe delta in clock_task is a more fair attribution of how much time a tg has\nbeen contributing load to the current cpu.\n\nWhile not really important it also means we\u0027re more in sync (by magnitude)\nwith respect to periodic updates (since __update_curr deltas are clock_task\nbased).\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044852.007092349@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b815f1963e47b9b69bb17e0588bd5af5b1114ae0",
      "tree": "b7c087fbf80f0e46fabfc919c619827e73963592",
      "parents": [
        "e37b6a7b27b400c3aa488db8c6629a05095bc79c"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:00 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:02 2011 +0100"
      },
      "message": "sched: Fix/remove redundant cfs_rq checks\n\nSince updates are against an entity\u0027s queuing cfs_rq it\u0027s not possible to\nenter update_cfs_{shares,load} with a NULL cfs_rq.  (Indeed, update_cfs_load\nwould crash prior to the check if we did anyway since we load is examined\nduring the initializers).\n\nAlso, in the update_cfs_load case there\u0027s no point\nin maintaining averages for rq-\u003ecfs_rq since we don\u0027t perform shares\ndistribution at that level -- NULL check is replaced accordingly.\n\nThanks to Dan Carpenter for pointing out the deference before NULL check.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.825284940@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e37b6a7b27b400c3aa488db8c6629a05095bc79c",
      "tree": "b27ed41b74eb7e69d2e6b02cc659c4fab3ef12ef",
      "parents": [
        "6663050edd9c2e8b1e1f55c09459144d84c045f0"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:44:59 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:01 2011 +0100"
      },
      "message": "sched: Fix sign under-flows in wake_affine\n\nWhile care is taken around the zero-point in effective_load to not exceed\nthe instantaneous rq-\u003eweight, it\u0027s still possible (e.g. using wake_idx !\u003d 0)\nfor (load + effective_load) to underflow.\n\nIn this case the comparing the unsigned values can result in incorrect balanced\ndecisions.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.734245014@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ff6dcac735704824c1dff64dc6863c390d364cc",
      "tree": "6ccbdd6f80da38f104199538f06f1bf2a5cb235e",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Mon Jan 24 15:33:52 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 24 11:47:50 2011 +0100"
      },
      "message": "sched: Fix poor interactivity on UP systems due to group scheduler nice tune bug\n\nMichael Witten and Christian Kujau reported that the autogroup\nscheduling feature hurts interactivity on their UP systems.\n\nIt turns out that this is an older bug in the group scheduling code,\nand the wider appeal provided by the autogroup feature exposed it\nmore prominently.\n\nWhen on UP with FAIR_GROUP_SCHED enabled, tune shares\nonly affect tg-\u003eshares, but is not reflected in\ntg-\u003ese-\u003eload. The reason is that update_cfs_shares()\ndoes nothing on UP.\n\nSo introduce update_cfs_shares() for UP \u0026\u0026 FAIR_GROUP_SCHED.\n\nThis issue was found when enable autogroup scheduling was enabled,\nbut it is an older bug that also exists on cgroup.cpu on UP.\n\nReported-and-Tested-by: Michael Witten \u003cmfwitten@gmail.com\u003e\nReported-and-Tested-by: Christian Kujau \u003cchristian@nerdbynature.de\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20110124073352.GA24186@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7d8294415f0ce4254827d4a2a5ee88b00be52a8",
      "tree": "9f8024d6566bc391fcb2aced8427db81ca4e9078",
      "parents": [
        "fce2097983d914ea8c2338efc6f6e9bb737f6ae4"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Jan 05 05:41:17 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 18 15:09:44 2011 +0100"
      },
      "message": "sched: Fix signed unsigned comparison in check_preempt_tick()\n\nSigned unsigned comparison may lead to superfluous resched if leftmost\nis right of the current task, wasting a few cycles, and inadvertently\n_lengthening_ the current task\u0027s slice.\n\nReported-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1294202477.9384.5.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "977dda7c9b540f48b228174346d8b31542c1e99f",
      "tree": "77d40bcc72c1590dfcaeadb60e92a270bd204c52",
      "parents": [
        "c9b5f501ef1580faa30c40c644b7691870462201"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 14 17:57:50 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 18 15:09:38 2011 +0100"
      },
      "message": "sched: Update effective_load() to use global share weights\n\nPreviously effective_load would approximate the global load weight present on\na group taking advantage of:\n\nentity_weight \u003d tg-\u003eshares ( lw / global_lw ), where entity_weight was provided\nby tg_shares_up.\n\nThis worked (approximately) for an \u0027empty\u0027 (at tg level) cpu since we would\nplace boost load representative of what a newly woken task would receive.\n\nHowever, now that load is instantaneously updated this assumption is no longer\ntrue and the load calculation is rather incorrect in this case.\n\nFix this (and improve the general case) by re-writing effective_load to take\nadvantage of the new shares distribution code.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110115015817.069769529@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "19e5eebb8eaa5ca3ff8aa18cb57ccb7a9f67277d",
      "tree": "652d43e29e101433fbb100b7af8ef0c35e420d7b",
      "parents": [
        "43365bd7ff37979d2afdccbe953299ed64a4649b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Dec 15 19:10:18 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 19 16:36:30 2010 +0100"
      },
      "message": "sched: Fix interactivity bug by charging unaccounted run-time on entity re-weight\n\nMike Galbraith reported poor interactivity[*] when the new shares distribution\ncode was combined with autogroups.\n\nThe root cause turns out to be a mis-ordering of accounting accrued execution\ntime and shares updates.  Since update_curr() is issued hierarchically,\nupdating the parent entity weights to reflect child enqueue/dequeue results in\nthe parent\u0027s unaccounted execution time then being accrued (vs vruntime) at the\nnew weight as opposed to the weight present at accumulation.\n\nWhile this doesn\u0027t have much effect on processes with timeslices that cross a\ntick, it is particularly problematic for an interactive process (e.g. Xorg)\nwhich incurs many (tiny) timeslices.  In this scenario almost all updates are\nat dequeue which can result in significant fairness perturbation (especially if\nit is the only thread, resulting in potential {tg-\u003eshares, MIN_SHARES}\ntransitions).\n\nCorrect this by ensuring unaccounted time is accumulated prior to manipulating\nan entity\u0027s weight.\n\n[*] http://xkcd.com/619/ is perversely Nostradamian here.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20101216031038.159704378@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43365bd7ff37979d2afdccbe953299ed64a4649b",
      "tree": "b90aa8813d0f92cae88bc26604e48dea0ee9f87d",
      "parents": [
        "ca680888d5d0d03862ec311a83c6a1c7a1e00a01"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Dec 15 19:10:17 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 19 16:36:22 2010 +0100"
      },
      "message": "sched: Move periodic share updates to entity_tick()\n\nLong running entities that do not block (dequeue) require periodic updates to\nmaintain accurate share values.  (Note: group entities with several threads are\nquite likely to be non-blocking in many circumstances).\n\nBy virtue of being long-running however, we will see entity ticks (otherwise\nthe required update occurs in dequeue/put and we are done).  Thus we can move\nthe detection (and associated work) for these updates into the periodic path.\n\nThis restores the \u0027atomicity\u0027 of update_curr() with respect to accounting.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101216031038.067028969@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e9255e6a2141e050d51bc4d96dbef494a87d653",
      "tree": "f190b142830153eaab05555a93c4f71a144ba3d4",
      "parents": [
        "5091faa449ee0b7d73bc296a93bca9540fc51d0a",
        "6313e3c21743cc88bb5bd8aa72948ee1e83937b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 08 20:15:26 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 08 20:15:29 2010 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: we want to queue up dependent cleanup\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22a867d81707b0a2720bb5f65255265b95d30526",
      "tree": "7ec19b155b50b13ae95244c2bfa16aea4920c4f6",
      "parents": [
        "5bb6b1ea67a73f0665a41726dd7138977b992c6c",
        "3561d43fd289f590fdae672e5eb831b8d5cf0bf6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 26 15:03:27 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 26 15:05:21 2010 +0100"
      },
      "message": "Merge commit \u0027v2.6.37-rc3\u0027 into sched/core\n\nMerge reason: Pick up latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70caf8a6c13c2279b35f2ad6b644815533d6c476",
      "tree": "eae7e189473aa028eaced1a5a2b38bef4f2c9587",
      "parents": [
        "28d0686cf7b14e30243096bd874d3f80591ed392"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Nov 20 00:53:51 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 23 10:29:07 2010 +0100"
      },
      "message": "sched: Fix UP build breakage\n\nThe recent cgroup-scheduling rework caused a UP build problem.\n\nCc: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6b5591829bd348a5fbe1c428d28dea00621cdba",
      "tree": "d8f8131c4d8033685b2e77bffee6cdcf0a975d38",
      "parents": [
        "3b3d190ec3683d568fd2ebaead5e1ec7f97b6e37"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:09 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:50 2010 +0100"
      },
      "message": "sched: Allow update_cfs_load() to update global load\n\nRefactor the global load updates from update_shares_cpu() so that\nupdate_cfs_load() can update global load when it is more than ~10%\nout of sync.\n\nThe new global_load parameter allows us to force an update, regardless of\nthe error factor so that we can synchronize w/ update_shares().\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.377473595@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b3d190ec3683d568fd2ebaead5e1ec7f97b6e37",
      "tree": "6839bc473200dcb69c5de998921684ac569ce18b",
      "parents": [
        "c66eaf619c0c7937e9ded160ae83b5a7a6b19b56"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:08 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:49 2010 +0100"
      },
      "message": "sched: Implement demand based update_cfs_load()\n\nWhen the system is busy, dilation of rq-\u003enext_balance makes lb-\u003eupdate_shares()\ninsufficiently frequent for threads which don\u0027t sleep (no dequeue/enqueue\nupdates).  Adjust for this by making demand based updates based on the\naccumulation of execution time sufficient to wrap our averaging window.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.291159744@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c66eaf619c0c7937e9ded160ae83b5a7a6b19b56",
      "tree": "04fca9a8b4c017efa00d7e7077a1aba9d454248a",
      "parents": [
        "a7a4f8a752ec734b2eab904fc863d5dc873de338"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:07 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:49 2010 +0100"
      },
      "message": "sched: Update shares on idle_balance\n\nSince shares updates are no longer expensive and effectively local, update them\nat idle_balance().  This allows us to more quickly redistribute shares to\nanother cpu when our load becomes idle.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.204191702@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7a4f8a752ec734b2eab904fc863d5dc873de338",
      "tree": "18b69c4cc0fc10cf6f0fe429308b25086942d921",
      "parents": [
        "67e86250f8ea7b8f7da53ac25ea73c6bd71f5cd9"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:06 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:49 2010 +0100"
      },
      "message": "sched: Add sysctl_sched_shares_window\n\nIntroduce a new sysctl for the shares window and disambiguate it from\nsched_time_avg.\n\nA 10ms window appears to be a good compromise between accuracy and performance.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.112173964@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "67e86250f8ea7b8f7da53ac25ea73c6bd71f5cd9",
      "tree": "9e429bdc568172f00e81aa4dcb57796ed0d404dd",
      "parents": [
        "e33078baa4d30ad1d0e46d1f62b9e5a63a3e6ee3"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:05 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:48 2010 +0100"
      },
      "message": "sched: Introduce hierarchal order on shares update list\n\nAvoid duplicate shares update calls by ensuring children always appear before\nparents in rq-\u003eleaf_cfs_rq_list.\n\nThis allows us to do a single in-order traversal for update_shares().\n\nSince we always enqueue in bottom-up order this reduces to 2 cases:\n\n1) Our parent is already in the list, e.g.\n\n   root\n     \\\n      b\n      /\\\n      c d* (root-\u003eb-\u003ec already enqueued)\n\nSince d\u0027s parent is enqueued we push it to the head of the list, implicitly ahead of b.\n\n2) Our parent does not appear in the list (or we have no parent)\n\nIn this case we enqueue to the tail of the list, if our parent is subsequently enqueued\n(bottom-up) it will appear to our right by the same rule.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.022488865@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e33078baa4d30ad1d0e46d1f62b9e5a63a3e6ee3",
      "tree": "13d1a075c9cd41ce666cf21b0b209bd3d121f566",
      "parents": [
        "f0d7442a5924a802b66eef79b3708f77297bfb35"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:04 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:48 2010 +0100"
      },
      "message": "sched: Fix update_cfs_load() synchronization\n\nUsing cfs_rq-\u003enr_running is not sufficient to synchronize update_cfs_load with\nthe put path since nr_running accounting occurs at deactivation.\n\nIt\u0027s also not safe to make the removal decision based on load_avg as this fails\nwith both high periods and low shares.  Resolve this by clipping history after\n4 periods without activity.\n\nNote: the above will always occur from update_shares() since in the\nlast-task-sleep-case that task will still be cfs_rq-\u003ecurr when update_cfs_load\nis called.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234937.933428187@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f0d7442a5924a802b66eef79b3708f77297bfb35",
      "tree": "edffcb20dca3dfe7315b128dc8948977c7c27fa8",
      "parents": [
        "9e3081ca61147b29f52fddb4f7c6b6b82ea5eb7a"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:03 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:47 2010 +0100"
      },
      "message": "sched: Fix load corruption from update_cfs_shares()\n\nAs part of enqueue_entity both a new entity weight and its contribution to the\nqueuing cfs_rq / rq are updated.  Since update_cfs_shares will only update the\nqueueing weights when the entity is on_rq (which in this case it is not yet),\nthere\u0027s a dependency loop here:\n\nupdate_cfs_shares needs account_entity_enqueue to update cfs_rq-\u003eload.weight\naccount_entity_enqueue needs the updated weight for the queuing cfs_rq load[*]\n\nFix this and avoid spurious dequeue/enqueues by issuing update_cfs_shares as\nif we had accounted the enqueue already.\n\nThis was also resulting in rq-\u003eload corruption previously.\n\n[*]: this dependency also exists when using the group cfs_rq w/\n     update_cfs_shares as the weight of the enqueued entity changes\n     without the load being updated.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234937.844900206@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e3081ca61147b29f52fddb4f7c6b6b82ea5eb7a",
      "tree": "74ec7a4f3e544ed64afb6cb7abe6322ca700d19a",
      "parents": [
        "3d4b47b4b040c9d77dd68104cfc1055d89a55afd"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 15 15:47:02 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:47 2010 +0100"
      },
      "message": "sched: Make tg_shares_up() walk on-demand\n\nMake tg_shares_up() use the active cgroup list, this means we cannot\ndo a strict bottom-up walk of the hierarchy, but assuming its a very\nwide tree with a small number of active groups it should be a win.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234937.754159484@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3d4b47b4b040c9d77dd68104cfc1055d89a55afd",
      "tree": "a4b39b5d7c89a319b81543c1b26778d6220e772b",
      "parents": [
        "2069dd75c7d0f49355939e5586daf5a9ab216db7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 15 15:47:01 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:47 2010 +0100"
      },
      "message": "sched: Implement on-demand (active) cfs_rq list\n\nMake certain load-balance actions scale per number of active cgroups\ninstead of the number of existing cgroups.\n\nThis makes wakeup/sleep paths more expensive, but is a win for systems\nwhere the vast majority of existing cgroups are idle.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234937.666535048@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2069dd75c7d0f49355939e5586daf5a9ab216db7",
      "tree": "c221747420e47b194a2a634024438a55420224d5",
      "parents": [
        "48c5ccae88dcd989d9de507e8510313c6cbd352b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 15 15:47:00 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:46 2010 +0100"
      },
      "message": "sched: Rewrite tg_shares_up)\n\nBy tracking a per-cpu load-avg for each cfs_rq and folding it into a\nglobal task_group load on each tick we can rework tg_shares_up to be\nstrictly per-cpu.\n\nThis should improve cpu-cgroup performance for smp systems\nsignificantly.\n\n[ Paul: changed to use queueing cfs_rq + bug fixes ]\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234937.580480400@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d5ad140bc1505a98c0f040937125bfcbb508078f",
      "tree": "adc1581eb61159675f9163515fd2402f81b586e2",
      "parents": [
        "b5482cfa1c95a188b3054fa33274806add91bbe5"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed Nov 17 11:42:04 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:12:33 2010 +0100"
      },
      "message": "sched: Fix idle balancing\n\nAn earlier commit reverts idle balancing throttling reset to fix a 30%\nregression in volanomark throughput. We still need to reset idle_stamp\nwhen we pull a task in newidle balance.\n\nReported-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1290022924-3548-1-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5482cfa1c95a188b3054fa33274806add91bbe5",
      "tree": "bcd6091faa23ab203ea9f6f4262a466bf3a696a1",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Tue Nov 16 17:34:02 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:11:43 2010 +0100"
      },
      "message": "sched: Fix volanomark performance regression\n\nCommit fab4762 triggers excessive idle balancing, causing a ~30% loss in\nvolanomark throughput. Remove idle balancing throttle reset.\n\nOriginally-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1289928732.5169.211.camel@maggy.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e5a74059f9059d330744eac84873b1b99657008",
      "tree": "f32f8ac76d5a6c49c1b4cd8f83155af00007fac0",
      "parents": [
        "2d46709082c062cae7cce1a15f8cd4cd81b92d88"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Oct 31 12:37:04 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 11 14:37:23 2010 +0100"
      },
      "message": "sched: Fix cross-sched-class wakeup preemption\n\nInstead of dealing with sched classes inside each check_preempt_curr()\nimplementation, pull out this logic into the generic wakeup preemption\npath.\n\nThis fixes a hang in KVM (and others) where we are waiting for the\nstop machine thread to run ...\n\nReported-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nTested-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nTested-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1288891946.2039.31.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aae6d3ddd8b90f5b2c8d79a2b914d1706d124193",
      "tree": "b993f929f4b1cc38ef01094ff4504eaf358adb31",
      "parents": [
        "f6614b7bb405a9b35dd28baea989a749492c46b2"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Fri Sep 17 15:02:32 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 10 23:13:56 2010 +0100"
      },
      "message": "sched: Use group weight, idle cpu metrics to fix imbalances during idle\n\nCurrently we consider a sched domain to be well balanced when the imbalance\nis less than the domain\u0027s imablance_pct. As the number of cores and threads\nare increasing, current values of imbalance_pct (for example 25% for a\nNUMA domain) are not enough to detect imbalances like:\n\na) On a WSM-EP system (two sockets, each having 6 cores and 12 logical threads),\n24 cpu-hogging tasks get scheduled as 13 on one socket and 11 on another\nsocket. Leading to an idle HT cpu.\n\nb) On a hypothetial 2 socket NHM-EX system (each socket having 8 cores and\n16 logical threads), 16 cpu-hogging tasks can get scheduled as 9 on one\nsocket and 7 on another socket. Leaving one core in a socket idle\nwhereas in another socket we have a core having both its HT siblings busy.\n\nWhile this issue can be fixed by decreasing the domain\u0027s imbalance_pct\n(by making it a function of number of logical cpus in the domain), it\ncan potentially cause more task migrations across sched groups in an\noverloaded case.\n\nFix this by using imbalance_pct only during newly_idle and busy\nload balancing. And during idle load balancing, check if there\nis an imbalance in number of idle cpu\u0027s across the busiest and this\nsched_group or if the busiest group has more tasks than its weight that\nthe idle cpu in this_group can pull.\n\nReported-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1284760952.2676.11.camel@sbsiddha-MOBL3.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37542b6a7e73e81f8c066a48e6911e476ee3b22f",
      "tree": "39da99d28803b18c223eebe45c3170992ee08b7e",
      "parents": [
        "c07724e5b868c603f2a65f3855c77b23454db3ed",
        "d4a6f3c32c39132318454e77d59ab14b06f6eb02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 08:05:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 08:05:33 2010 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched_stat: Update sched_info_queue/dequeue() code comments\n  sched, cgroup: Fixup broken cgroup movement\n"
    },
    {
      "commit": "b2b5ce022acf5e9f52f7b78c5579994fdde191d4",
      "tree": "15e7d1742b530cdbe7b0734378e7f043b9a5faac",
      "parents": [
        "b7dadc38797584f6203386da1947ed5edf516646"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 15 15:24:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 22 14:16:45 2010 +0200"
      },
      "message": "sched, cgroup: Fixup broken cgroup movement\n\nDima noticed that we fail to correct the -\u003evruntime of sleeping tasks\nwhen we move them between cgroups.\n\nReported-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c1287150604.29097.1513.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bc4016f48161454a9a8e5eb209b0693c6cde9f62",
      "tree": "f470f5d711e975b152eec90282f5dd30a1d5dba5",
      "parents": [
        "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
        "b7dadc38797584f6203386da1947ed5edf516646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (29 commits)\n  sched: Export account_system_vtime()\n  sched: Call tick_check_idle before __irq_enter\n  sched: Remove irq time from available CPU power\n  sched: Do not account irq time to current task\n  x86: Add IRQ_TIME_ACCOUNTING\n  sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time\n  sched: Add a PF flag for ksoftirqd identification\n  sched: Consolidate account_system_vtime extern declaration\n  sched: Fix softirq time accounting\n  sched: Drop group_capacity to 1 only if local group has extra capacity\n  sched: Force balancing on newidle balance if local group has capacity\n  sched: Set group_imb only a task can be pulled from the busiest cpu\n  sched: Do not consider SCHED_IDLE tasks to be cache hot\n  sched: Drop all load weight manipulation for RT tasks\n  sched: Create special class for stop/migrate work\n  sched: Unindent labels\n  sched: Comment updates: fix default latency and granularity numbers\n  tracing/sched: Add sched_pi_setprio tracepoint\n  sched: Give CPU bound RT tasks preference\n  sched: Try not to migrate higher priority RT tasks\n  ...\n"
    },
    {
      "commit": "aa483808516ca5cacfa0e5849691f64fec25828e",
      "tree": "38a1d9f1cb1157bd68dc2475447bacbb4b63c64a",
      "parents": [
        "305e6835e05513406fa12820e40e4a8ecb63743c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:22 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:27 2010 +0200"
      },
      "message": "sched: Remove irq time from available CPU power\n\nThe idea was suggested by Peter Zijlstra here:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d127476934517534\u0026w\u003d2\n\nirq time is technically not available to the tasks running on the CPU.\nThis patch removes irq time from CPU power piggybacking on\nsched_rt_avg_update().\n\nTested this by keeping CPU X busy with a network intensive task having 75%\noa a single CPU irq processing (hard+soft) on a 4-way system. And start seven\ncycle soakers on the system. Without this change, there will be two tasks on\neach CPU. With this change, there is a single task on irq busy CPU X and\nremaining 7 tasks are spread around among other 3 CPUs.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-8-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "305e6835e05513406fa12820e40e4a8ecb63743c",
      "tree": "8b43703e27d26f4a7e743a99459e0b465cd1e5e1",
      "parents": [
        "e82b8e4ea4f3dffe6e7939f90e78da675fcc450e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:21 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:26 2010 +0200"
      },
      "message": "sched: Do not account irq time to current task\n\nScheduler accounts both softirq and interrupt processing times to the\ncurrently running task. This means, if the interrupt processing was\nfor some other task in the system, then the current task ends up being\npenalized as it gets shorter runtime than otherwise.\n\nChange sched task accounting to acoount only actual task time from\ncurrently running task. Now update_curr(), modifies the delta_exec to\ndepend on rq-\u003eclock_task.\n\nNote that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can\nextend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats\nfor later.\n\nThis change will impact scheduling behavior in interrupt heavy conditions.\n\nTested on a 4-way system with eth0 handled by CPU 2 and a network heavy\ntask (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2\nspending 75%+ of its time in irq processing. CPU 3 spending around 35%\ntime running nc task.\n\nNow, if I run another CPU intensive task on CPU 2, without this change\n/proc/\u003cpid\u003e/schedstat shows 100% of time accounted to this task. With this\nchange, it rightly shows less than 25% accounted to this task as remaining\ntime is actually spent on irq processing.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-7-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75dd321d79d495a0ee579e6249ebc38ddbb2667f",
      "tree": "182f2ca3c9124da514c647547d4f4e549ba7afc1",
      "parents": [
        "fab476228ba37907ad75216d0fd9732ada9c119e"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Fri Oct 15 13:12:30 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:19 2010 +0200"
      },
      "message": "sched: Drop group_capacity to 1 only if local group has extra capacity\n\nWhen SD_PREFER_SIBLING is set on a sched domain, drop group_capacity to 1\nonly if the local group has extra capacity. The extra check prevents the case\nwhere you always pull from the heaviest group when it is already under-utilized\n(possible with a large weight task outweighs the tasks on the system).\n\nFor example, consider a 16-cpu quad-core quad-socket machine with MC and NUMA\nscheduling domains. Let\u0027s say we spawn 15 nice0 tasks and one nice-15 task,\nand each task is running on one core. In this case, we observe the following\nevents when balancing at the NUMA domain:\n\n- find_busiest_group() will always pick the sched group containing the niced\n  task to be the busiest group.\n- find_busiest_queue() will then always pick one of the cpus running the\n  nice0 task (never picks the cpu with the nice -15 task since\n  weighted_cpuload \u003e imbalance).\n- The load balancer fails to migrate the task since it is the running task\n  and increments sd-\u003enr_balance_failed.\n- It repeats the above steps a few more times until sd-\u003enr_balance_failed \u003e 5,\n  at which point it kicks off the active load balancer, wakes up the migration\n  thread and kicks the nice 0 task off the cpu.\n\nThe load balancer doesn\u0027t stop until we kick out all nice 0 tasks from\nthe sched group, leaving you with 3 idle cpus and one cpu running the\nnice -15 task.\n\nWhen balancing at the NUMA domain, we drop sgs.group_capacity to 1 if the child\ndomain (in this case MC) has SD_PREFER_SIBLING set.  Subsequent load checks are\nnot relevant because the niced task has a very large weight.\n\nIn this patch, we add an extra condition to the \"if(prefer_sibling)\" check in\nupdate_sd_lb_stats(). We drop the capacity of a group only if the local group\nhas extra capacity, ie. nr_running \u003c group_capacity. This patch preserves the\noriginal intent of the prefer_siblings check (to spread tasks across the system\nin low utilization scenarios) and fixes the case above.\n\nIt helps in the following ways:\n- In low utilization cases (where nr_tasks \u003c\u003c nr_cpus), we still drop\n  group_capacity down to 1 if we prefer siblings.\n- On very busy systems (where nr_tasks \u003e\u003e nr_cpus), sgs.nr_running will most\n  likely be \u003e sgs.group_capacity.\n- When balancing large weight tasks, if the local group does not have extra\n  capacity, we do not pick the group with the niced task as the busiest group.\n  This prevents failed balances, active migration and the under-utilization\n  described above.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-5-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fab476228ba37907ad75216d0fd9732ada9c119e",
      "tree": "51246ee236cbaae94e18213e5419f9e9f244d69d",
      "parents": [
        "2582f0eba54066b5e98ff2b27ef0cfa833b59f54"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Fri Oct 15 13:12:29 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:18 2010 +0200"
      },
      "message": "sched: Force balancing on newidle balance if local group has capacity\n\nThis patch forces a load balance on a newly idle cpu when the local group has\nextra capacity and the busiest group does not have any. It improves system\nutilization when balancing tasks with a large weight differential.\n\nUnder certain situations, such as a niced down task (i.e. nice \u003d -15) in the\npresence of nr_cpus NICE0 tasks, the niced task lands on a sched group and\nkicks away other tasks because of its large weight. This leads to sub-optimal\nutilization of the machine. Even though the sched group has capacity, it does\nnot pull tasks because sds.this_load \u003e\u003e sds.max_load, and f_b_g() returns NULL.\n\nWith this patch, if the local group has extra capacity, we shortcut the checks\nin f_b_g() and try to pull a task over. A sched group has extra capacity if the\ngroup capacity is greater than the number of running tasks in that group.\n\nThanks to Mike Galbraith for discussions leading to this patch and for the\ninsight to reuse SD_NEWIDLE_BALANCE.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-4-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2582f0eba54066b5e98ff2b27ef0cfa833b59f54",
      "tree": "c5a41c2b1458a813b40f20f529a3b86a93c24932",
      "parents": [
        "ef8002f6848236de5adc613063ebeabddea8a6fb"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed Oct 13 12:09:36 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:17 2010 +0200"
      },
      "message": "sched: Set group_imb only a task can be pulled from the busiest cpu\n\nWhen cycling through sched groups to determine the busiest group, set\ngroup_imb only if the busiest cpu has more than 1 runnable task. This patch\nfixes the case where two cpus in a group have one runnable task each, but there\nis a large weight differential between these two tasks. The load balancer is\nunable to migrate any task from this group, and hence do not consider this\ngroup to be imbalanced.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286996978-7007-3-git-send-email-ncrao@google.com\u003e\n[ small code readability edits ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "864616ee6785d9fac7a2cd80c01a2da89579f2e4",
      "tree": "7d7918238041b60868e4b2eff9c37f0bc1557dcf",
      "parents": [
        "ed859ed3b0f9893c6bce3708e8928341c15699b9"
      ],
      "author": {
        "name": "Takuya Yoshikawa",
        "email": "yoshikawa.takuya@oss.ntt.co.jp",
        "time": "Thu Oct 14 16:09:13 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:13:35 2010 +0200"
      },
      "message": "sched: Comment updates: fix default latency and granularity numbers\n\nTargeted preemption latency and minimal preemption granularity\nfor CPU-bound tasks have been changed.\n\nThis patch updates the comments about these values.\n\nSigned-off-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20101014160913.eb24fef4.yoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ed859ed3b0f9893c6bce3708e8928341c15699b9",
      "tree": "59c507f00bc13becb4accdd64fdc01ece08b4645",
      "parents": [
        "a8027073eb127cd207070891374b5c54c2ce3d23",
        "53eeb64e808971207350386121f4bab12fa2f45f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:11:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:11:46 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update from -rc5 to -almost-final\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0a0f667a349247bd7f05f806b662a25653822bc",
      "tree": "90f9e4221e348ece7d211f3039a1b7281f0391e8",
      "parents": [
        "1144182a8757f2a1f909f0c592898aaaf80884fc"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Oct 06 17:32:51 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Oct 07 10:40:50 2010 -0700"
      },
      "message": "sched: suppress RCU lockdep splat in task_fork_fair\n\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e [ INFO: suspicious rcu_dereference_check() usage. ]\n\u003e ---------------------------------------------------\n\u003e /home/greearb/git/linux.wireless-testing/kernel/sched.c:618 invoked rcu_dereference_check() without protection!\n\u003e\n\u003e other info that might help us debug this:\n\u003e\n\u003e rcu_scheduler_active \u003d 1, debug_locks \u003d 1\n\u003e 1 lock held by ifup/23517:\n\u003e   #0:  (\u0026rq-\u003elock){-.-.-.}, at: [\u003cc042f782\u003e] task_fork_fair+0x3b/0x108\n\u003e\n\u003e stack backtrace:\n\u003e Pid: 23517, comm: ifup Not tainted 2.6.36-rc6-wl+ #5\n\u003e Call Trace:\n\u003e   [\u003cc075e219\u003e] ? printk+0xf/0x16\n\u003e   [\u003cc0455842\u003e] lockdep_rcu_dereference+0x74/0x7d\n\u003e   [\u003cc0426854\u003e] task_group+0x6d/0x79\n\u003e   [\u003cc042686e\u003e] set_task_rq+0xe/0x57\n\u003e   [\u003cc042f79e\u003e] task_fork_fair+0x57/0x108\n\u003e   [\u003cc042e965\u003e] sched_fork+0x82/0xf9\n\u003e   [\u003cc04334b3\u003e] copy_process+0x569/0xe8e\n\u003e   [\u003cc0433ef0\u003e] do_fork+0x118/0x262\n\u003e   [\u003cc076302f\u003e] ? do_page_fault+0x16a/0x2cf\n\u003e   [\u003cc044b80c\u003e] ? up_read+0x16/0x2a\n\u003e   [\u003cc04085ae\u003e] sys_clone+0x1b/0x20\n\u003e   [\u003cc04030a5\u003e] ptregs_clone+0x15/0x30\n\u003e   [\u003cc0402f1c\u003e] ? sysenter_do_call+0x12/0x38\n\nHere a newly created task is having its runqueue assigned.  The new task\nis not yet on the tasklist, so cannot go away.  This is therefore a false\npositive, suppress with an RCU read-side critical section.\n\nReported-by: Ben Greear \u003cgreearb@candelatech.com\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Ben Greear \u003cgreearb@candelatech.com\n"
    }
  ],
  "next": "58b26c4c025778c09c7a1438ff185080e11b7d0a"
}
