)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "58b26c4c025778c09c7a1438ff185080e11b7d0a",
      "tree": "c13bae937fbe81fb37ab2d3c82b253149e1febe5",
      "parents": [
        "cf84fd96323633be7d437e1de4505fc82ff2c11a"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Fri Sep 10 18:19:17 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 21 13:57:11 2010 +0200"
      },
      "message": "sched: Increment cache_nice_tries only on periodic lb\n\nscheduler uses cache_nice_tries as an indicator to do cache_hot and\nactive load balance, when normal load balance fails. Currently,\nthis value is changed on any failed load balance attempt. That ends\nup being not so nice to workloads that enter/exit idle often, as\nthey do more frequent new_idle balance and that pretty soon results\nin cache hot tasks being pulled in.\n\nMaking the cache_nice_tries ignore failed new_idle balance seems to\nmake better sense. With that only the failed load balance in\nperiodic load balance gets accounted and the rate of accumulation\nof cache_nice_tries will not depend on idle entry/exit (short\nrunning sleep-wakeup kind of tasks). This reduces movement of\ncache_hot tasks.\n\nschedstat diff (after-before) excerpt from a workload that has\nfrequent and short wakeup-idle pattern (:2 in cpu col below refers\nto NEWIDLE idx) This snapshot was across ~400 seconds.\n\nWithout this change:\ndomainstats:  domain0\n cpu     cnt      bln      fld      imb     gain    hgain  nobusyq  nobusyg\n 0:2  306487   219575    73167  110069413    44583    19070     1172   218403\n 1:2  292139   194853    81421  120893383    50745    21902     1259   193594\n 2:2  283166   174607    91359  129699642    54931    23688     1287   173320\n 3:2  273998   161788    93991  132757146    57122    24351     1366   160422\n 4:2  289851   215692    62190  83398383    36377    13680      851   214841\n 5:2  316312   222146    77605  117582154    49948    20281      988   221158\n 6:2  297172   195596    83623  122133390    52801    21301      929   194667\n 7:2  283391   178078    86378  126622761    55122    22239      928   177150\n 8:2  297655   210359    72995  110246694    45798    19777     1125   209234\n 9:2  297357   202011    79363  119753474    50953    22088     1089   200922\n10:2  278797   178703    83180  122514385    52969    22726     1128   177575\n11:2  272661   167669    86978  127342327    55857    24342     1195   166474\n12:2  293039   204031    73211  110282059    47285    19651      948   203083\n13:2  289502   196762    76803  114712942    49339    20547     1016   195746\n14:2  264446   169609    78292  115715605    50459    21017      982   168627\n15:2  260968   163660    80142  116811793    51483    21281     1064   162596\n\nWith this change:\ndomainstats:  domain0\n cpu     cnt      bln      fld      imb     gain    hgain  nobusyq  nobusyg\n 0:2  272347   187380    77455  105420270    24975        1      953   186427\n 1:2  267276   172360    86234  116242264    28087        6     1028   171332\n 2:2  259769   156777    93281  123243134    30555        1     1043   155734\n 3:2  250870   143129    97627  127370868    32026        6     1188   141941\n 4:2  248422   177116    64096  78261112    22202        2      757   176359\n 5:2  275595   180683    84950  116075022    29400        6      778   179905\n 6:2  262418   162609    88944  119256898    31056        4      817   161792\n 7:2  252204   147946    92646  122388300    32879        4      824   147122\n 8:2  262335   172239    81631  110477214    26599        4      864   171375\n 9:2  261563   164775    88016  117203621    28331        3      849   163926\n10:2  243389   140949    93379  121353071    29585        2      909   140040\n11:2  242795   134651    98310  124768957    30895        2     1016   133635\n12:2  255234   166622    79843  104696912    26483        4      746   165876\n13:2  244944   151595    83855  109808099    27787        3      801   150794\n14:2  241301   140982    89935  116954383    30403        6      845   140137\n15:2  232271   128564    92821  119185207    31207        4     1416   127148\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1284167957-3675-1-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f6c3f1686e7ec1dd8725a9a3dcb857dfd0c7a5bf",
      "tree": "fb0179d1f071dbb857e0ab7f2aace4579deb62c1",
      "parents": [
        "e75e863dd5c7d96b91ebbd241da5328fc38a78cc"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Sep 13 11:02:21 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 21 13:50:50 2010 +0200"
      },
      "message": "sched: Fix nohz balance kick\n\nThere\u0027s a situation where the nohz balancer will try to wake itself:\n\ncpu-x is idle which is also ilb_cpu\ngot a scheduler tick during idle\nand the nohz_kick_needed() in trigger_load_balance() checks for\nrq_x-\u003enr_running which might not be zero (because of someone waking a\ntask on this rq etc) and this leads to the situation of the cpu-x\nsending a kick to itself.\n\nAnd this can cause a lockup.\n\nAvoid this by not marking ourself eligible for kicking.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1284400941.2684.19.camel@sbsiddha-MOBL3.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0bf377bbb0bea6130f35613491887cc622e42a8b",
      "tree": "1ecb56fb6195dcdb673ef3a08390b98e54f4f726",
      "parents": [
        "49553c2ef88749dd502687f4eb9c258bb10a4f44"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 12 08:14:52 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 13 20:17:11 2010 +0200"
      },
      "message": "sched: Improve latencies under load by decreasing minimum scheduling granularity\n\nMathieu reported bad latencies with make -j10 kind of kbuild\nworkloads - which is mostly caused by us scheduling with a\ntoo coarse granularity.\n\nReduce the minimum granularity some more, to make sure we\ncan meet the latency target.\n\nI got the following results (make -j10 kbuild load, average of 3\nruns):\n\n vanilla:\n\n  maximum latency: 38278.9 µs\n  average latency:  7730.1 µs\n\n patched:\n\n  maximum latency: 22702.1 µs\n  average latency:  6684.8 µs\n\nMathieu also measured it:\n\n|\n| * wakeup-latency.c (SIGEV_THREAD) with make -j10\n|\n| - Mainline 2.6.35.2 kernel\n|\n| maximum latency: 45762.1 µs\n| average latency: 7348.6 µs\n|\n| - With only Peter\u0027s smaller min_gran (shown below):\n|\n| maximum latency: 29100.6 µs\n| average latency: 6684.1 µs\n|\n\nReported-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cAANLkTi\u003d8m4g01wZPacySoF7U0PevTNVgJoZZrHiUD-pN@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aad1830e6b978f5d90e5d81d071e1752f526f732",
      "tree": "af5ba1a5ce1574201e4b4da0366a19a4149e0f8c",
      "parents": [
        "3e6dce76d99b328716b43929b9195adfee1de00c",
        "55496c896b8a695140045099d4e0175cf09d4eae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 11 07:59:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 11 07:59:49 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  x86, tsc: Fix a preemption leak in restore_sched_clock_state()\n  sched: Move sched_avg_update() to update_cpu_load()\n"
    },
    {
      "commit": "da2b71edd8a7db44fe1746261410a981f3e03632",
      "tree": "4c84c8761590138cffb244eb54fb29263175a6cd",
      "parents": [
        "d56557af19867edb8c0e96f8e26399698a08857f"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Aug 23 13:42:51 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:39:33 2010 +0200"
      },
      "message": "sched: Move sched_avg_update() to update_cpu_load()\n\nCurrently sched_avg_update() (which updates rt_avg stats in the rq)\nis getting called from scale_rt_power() (in the load balance context)\nwhich doesn\u0027t take rq-\u003elock.\n\nFix it by moving the sched_avg_update() to more appropriate\nupdate_cpu_load() where the CFS load gets updated as well.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1282596171.2694.3.camel@sbsiddha-MOBL3\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3bd3de66f60df4c9a2076e2886a622458929056",
      "tree": "d0b1fa885acfa96536cf74f487acb28d63442b83",
      "parents": [
        "ef5dc121d5a0bb1fa477c5395277259f07d318a3"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Aug 10 14:17:51 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 05 14:36:58 2010 +0200"
      },
      "message": "gcc-4.6: kernel/*: Fix unused but set warnings\n\nNo real bugs I believe, just some dead code.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: andi@firstfloor.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "861d034ee814917a83bd5de4b26e3b8336ddeeb8",
      "tree": "6514cb3ebbb58fb0a638e267dfd6da510a5c8a00",
      "parents": [
        "763008c4357b73c8d18396dfd8d79dc58fa3f99d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Aug 19 13:31:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 20 14:59:01 2010 +0200"
      },
      "message": "sched: Fix rq-\u003eclock synchronization when migrating tasks\n\nsched_fork() -- we do task placement in -\u003etask_fork_fair() ensure we\n  update_rq_clock() so we work with current time. We leave the vruntime\n  in relative state, so the time delay until wake_up_new_task() doesn\u0027t\n  matter.\n\nwake_up_new_task() -- Since task_fork_fair() left p-\u003evruntime in\n  relative state we can safely migrate, the activate_task() on the\n  remote rq will call update_rq_clock() and causes the clock to be\n  synced (enough).\n\nTested-by: Jack Daniel \u003cwanders.thirst@gmail.com\u003e\nTested-by: Philby John \u003cpjohn@mvista.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1281002322.1923.1708.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dca45ad8af54963c005393a484ad117b8ba6150f",
      "tree": "7c9a6966283a6bb12b54e5680a67d203be292930",
      "parents": [
        "68c38fc3cb4e5a60f502ee9c45f3dfe70e5165ad",
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: Move from the -rc3 to the almost-rc6 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbc8cb5baead9607309583b20873ab0cc8d89eaf",
      "tree": "425cfb2772ef50c1858a7d833408ad1bcc423f51",
      "parents": [
        "5343bdb8fd076f16edc9d113a9e35e2a1d1f4966"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 09 15:15:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 17 12:05:14 2010 +0200"
      },
      "message": "sched: Reduce update_group_power() calls\n\nCurrently we update cpu_power() too often, update_group_power() only\nupdates the local group\u0027s cpu_power but it gets called for all groups.\n\nFurthermore, CPU_NEWLY_IDLE invocations will result in all cpus\ncalling it, even though a slow update of cpu_power is sufficient.\n\nTherefore move the update under \u0027idle !\u003d CPU_NEWLY_IDLE \u0026\u0026\nlocal_group\u0027 to reduce superfluous invocations.\n\nReported-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLKML-Reference: \u003c1278612989.1900.176.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5343bdb8fd076f16edc9d113a9e35e2a1d1f4966",
      "tree": "567ef046a11d203331bbb9372b2e29f817fbf2fe",
      "parents": [
        "2ec57d448b2e8fcfba539a46701b43f14f037f17"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Fri Jul 09 15:19:54 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 17 12:02:08 2010 +0200"
      },
      "message": "sched: Update rq-\u003eclock for nohz balanced cpus\n\nSuresh spotted that we don\u0027t update the rq-\u003eclock in the nohz\nload-balancer path.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1278626014.2834.74.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ec57d448b2e8fcfba539a46701b43f14f037f17",
      "tree": "92f014a595860b3124816ba4bb1ec8751ea66543",
      "parents": [
        "0b2e918aa99fe6c3b8f163aa323a275ad8577828"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Tue Jun 29 12:02:01 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 29 10:44:29 2010 +0200"
      },
      "message": "sched: Fix spelling of sibling\n\nNo logic changes, only spelling.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nCc: linuxppc-dev@ozlabs.org\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c15249.1277776921@neuling.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3b577dec1f2ce32d2db6d2ca6badff7002512af",
      "tree": "c9d5d84b2d3e4ae1251f69932a526367a2bac7fa",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Tue Jun 01 14:06:13 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 06:50:44 2010 -0700"
      },
      "message": "rcu: apply RCU protection to wake_affine()\n\nThe task_group() function returns a pointer that must be protected\nby either RCU, the -\u003ealloc_lock, or the cgroup lock (see the\nrcu_dereference_check() in task_subsys_state(), which is invoked by\ntask_group()).  The wake_affine() function currently does none of these,\nwhich means that a concurrent update would be within its rights to free\nthe structure returned by task_group().  Because wake_affine() uses this\nstructure only to compute load-balancing heuristics, there is no reason\nto acquire either of the two locks.\n\nTherefore, this commit introduces an RCU read-side critical section that\nstarts before the first call to task_group() and ends after the last use\nof the \"tg\" pointer returned from task_group().  Thanks to Li Zefan for\npointing out the need to extend the RCU read-side critical section from\nthat proposed by the original patch.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b6b12294405e6ec029e627c49adf3193829a2685",
      "tree": "bafbeeaa4a9c7a80e1ff20a14694fcb9d145a9fb",
      "parents": [
        "694f5a1112959a6996cabdb6f8d3003e87dac8a7"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Thu Jun 10 12:06:21 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:55 2010 +0200"
      },
      "message": "sched: Fix comments to make them DocBook happy\n\nDocbook fails in sched_fair.c due to comments added in the asymmetric\npacking patch series.\n\nThis fixes these errors. No code changes.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c24737.1276135581@neuling.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "694f5a1112959a6996cabdb6f8d3003e87dac8a7",
      "tree": "051bcf1e25b185435baf0e5f1dfd81e63c62fbaf",
      "parents": [
        "4cb6948e5365ab874bb71ac35fb6b7c6dd305765"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Thu Jun 10 09:03:37 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:54 2010 +0200"
      },
      "message": "sched: Fix fix_small_capacity\n\nThe CPU power test is the wrong way around in fix_small_capacity.\n\nThis was due to a small changes made in the posted patch on lkml to what\nwas was taken upstream.\n\nThis patch fixes asymmetric packing for POWER7.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c12629.1276124617@neuling.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "532cb4c401e225b084c14d6bd6a2f8ee561de2f1",
      "tree": "0ce57c2e21cd12ee05561ab2b9c4b66729da8e5a",
      "parents": [
        "9d5efe05eb0c904545a28b19c18b949f23334de0"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Tue Jun 08 14:57:02 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:55 2010 +0200"
      },
      "message": "sched: Add asymmetric group packing option for sibling domain\n\nCheck to see if the group is packed in a sched doman.\n\nThis is primarily intended to used at the sibling level.  Some cores\nlike POWER7 prefer to use lower numbered SMT threads.  In the case of\nPOWER7, it can move to lower SMT modes only when higher threads are\nidle.  When in lower SMT modes, the threads will perform better since\nthey share less core resources.  Hence when we have idle threads, we\nwant them to be the higher ones.\n\nThis adds a hook into f_b_g() called check_asym_packing() to check the\npacking.  This packing function is run on idle threads.  It checks to\nsee if the busiest CPU in this domain (core in the P7 case) has a\nhigher CPU number than what where the packing function is being run\non.  If it is, calculate the imbalance and return the higher busier\nthread as the busiest group to f_b_g().  Here we are assuming a lower\nCPU number will be equivalent to a lower SMT thread number.\n\nIt also creates a new SD_ASYM_PACKING flag to enable this feature at\nany scheduler domain level.\n\nIt also creates an arch hook to enable this feature at the sibling\nlevel.  The default function doesn\u0027t enable this feature.\n\nBased heavily on patch from Peter Zijlstra.\nFixes from Srivatsa Vaddagiri.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20100608045702.2936CCC897@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9d5efe05eb0c904545a28b19c18b949f23334de0",
      "tree": "afa28fe2f3abd6fb538a7f0039c75a5e6463eeb1",
      "parents": [
        "83cd4fe27ad8446619b2e030b171b858501de87d"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Tue Jun 08 14:57:02 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:54 2010 +0200"
      },
      "message": "sched: Fix capacity calculations for SMT4\n\nHandle cpu capacity being reported as 0 on cores with more number of\nhardware threads. For example on a Power7 core with 4 hardware\nthreads, core power is 1177 and thus power of each hardware thread is\n1177/4 \u003d 294. This low power can lead to capacity for each hardware\nthread being calculated as 0, which leads to tasks bouncing within the\ncore madly!\n\nFix this by reporting capacity for hardware threads as 1, provided\ntheir power is not scaled down significantly because of frequency\nscaling or real-time tasks usage of cpu.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c20100608045702.21D03CC895@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83cd4fe27ad8446619b2e030b171b858501de87d",
      "tree": "81c7d26f4f00139ae355017239371d91cc4b2aef",
      "parents": [
        "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Fri May 21 17:09:41 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:52 2010 +0200"
      },
      "message": "sched: Change nohz idle load balancing logic to push model\n\nIn the new push model, all idle CPUs indeed go into nohz mode. There is\nstill the concept of idle load balancer (performing the load balancing\non behalf of all the idle cpu\u0027s in the system). Busy CPU kicks the nohz\nbalancer when any of the nohz CPUs need idle load balancing.\nThe kickee CPU does the idle load balancing on behalf of all idle CPUs\ninstead of the normal idle balance.\n\nThis addresses the below two problems with the current nohz ilb logic:\n* the idle load balancer continued to have periodic ticks during idle and\n  wokeup frequently, even though it did not have any rebalancing to do on\n  behalf of any of the idle CPUs.\n* On x86 and CPUs that have APIC timer stoppage on idle CPUs, this\n  periodic wakeup can result in a periodic additional interrupt on a CPU\n  doing the timer broadcast.\n\nAlso currently we are migrating the unpinned timers from an idle to the cpu\ndoing idle load balancing (when all the cpus in the system are idle,\nthere is no idle load balancing cpu and timers get added to the same idle cpu\nwhere the request was made. So the existing optimization works only on semi idle\nsystem).\n\nAnd In semi idle system, we no longer have periodic ticks on the idle load\nbalancer CPU. Using that cpu will add more delays to the timers than intended\n(as that cpu\u0027s timer base may not be uptodate wrt jiffies etc). This was\ncausing mysterious slowdowns during boot etc.\n\nFor now, in the semi idle case, use the nearest busy cpu for migrating timers\nfrom an idle cpu.  This is good for power-savings anyway.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@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\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c1274486981.2840.46.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c",
      "tree": "b9bfc0f78135502adf7c83313948a705fb19384b",
      "parents": [
        "246d86b51845063e4b06b27579990492dc5fa317"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon May 17 18:14:43 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:51 2010 +0200"
      },
      "message": "sched: Avoid side-effect of tickless idle on update_cpu_load\n\ntickless idle has a negative side effect on update_cpu_load(), which\nin turn can affect load balancing behavior.\n\nupdate_cpu_load() is supposed to be called every tick, to keep track\nof various load indicies. With tickless idle, there are no scheduler\nticks called on the idle CPUs. Idle CPUs may still do load balancing\n(with idle_load_balance CPU) using the stale cpu_load. It will also\ncause problems when all CPUs go idle for a while and become active\nagain. In this case loads would not degrade as expected.\n\nThis is how rq-\u003enr_load_updates change looks like under different\nconditions:\n\n\u003ccpu_num\u003e \u003cnr_load_updates change\u003e\nAll CPUS idle for 10 seconds (HZ\u003d1000)\n0 1621\n10 496\n11 139\n12 875\n13 1672\n14 12\n15 21\n1 1472\n2 2426\n3 1161\n4 2108\n5 1525\n6 701\n7 249\n8 766\n9 1967\n\nOne CPU busy rest idle for 10 seconds\n0 10003\n10 601\n11 95\n12 966\n13 1597\n14 114\n15 98\n1 3457\n2 93\n3 6679\n4 1425\n5 1479\n6 595\n7 193\n8 633\n9 1687\n\nAll CPUs busy for 10 seconds\n0 10026\n10 10026\n11 10026\n12 10026\n13 10025\n14 10025\n15 10025\n1 10026\n2 10026\n3 10026\n4 10026\n5 10026\n6 10026\n7 10026\n8 10026\n9 10026\n\nThat is update_cpu_load works properly only when all CPUs are busy.\nIf all are idle, all the CPUs get way lower updates.  And when few\nCPUs are busy and rest are idle, only busy and ilb CPU does proper\nupdates and rest of the idle CPUs will do lower updates.\n\nThe patch keeps track of when a last update was done and fixes up\nthe load avg based on current time.\n\nOn one of my test system SPECjbb with warehouse 1..numcpus, patch\nimproves throughput numbers by ~1% (average of 6 runs).  On another\ntest system (with different domain hierarchy) there is no noticable\nchange in perf.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cAANLkTilLtDWQsAUrIxJ6s04WTgmw9GuOODc5AOrYsaR5@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e51fd5e22e12b39f49b1bb60b37b300b17378a43",
      "tree": "391500ff509dc30991db38e3d54eaccfe385d1cb",
      "parents": [
        "54e88fad223c4e1d94289611a90c7fe3ebe5631b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 31 12:37:30 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 01 09:27:16 2010 +0200"
      },
      "message": "sched: Fix wake_affine() vs RT tasks\n\nMike reports that since e9e9250b (sched: Scale down cpu_power due to RT\ntasks), wake_affine() goes funny on RT tasks due to them still having a\n!0 weight and wake_affine() still subtracts that from the rq weight.\n\nSince nobody should be using se-\u003eweight for RT tasks, set the value to\nzero. Also, since we now use -\u003ecpu_power to normalize rq weights to\naccount for RT cpu usage, add that factor into the imbalance computation.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1275316109.27810.22969.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "969c79215a35b06e5e3efe69b9412f858df7856c",
      "tree": "4256378687c8bc2011ec35a3e28bc3b6473e912c",
      "parents": [
        "3fc1f1e27a5b807791d72e5d992aa33b668a6626"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "message": "sched: replace migration_thread with cpu_stop\n\nCurrently migration_thread is serving three purposes - migration\npusher, context to execute active_load_balance() and forced context\nswitcher for expedited RCU synchronize_sched.  All three roles are\nhardcoded into migration_thread() and determining which job is\nscheduled is slightly messy.\n\nThis patch kills migration_thread and replaces all three uses with\ncpu_stop.  The three different roles of migration_thread() are\nsplitted into three separate cpu_stop callbacks -\nmigration_cpu_stop(), active_load_balance_cpu_stop() and\nsynchronize_sched_expedited_cpu_stop() - and each use case now simply\nasks cpu_stop to execute the callback as necessary.\n\nsynchronize_sched_expedited() was implemented with private\npreallocated resources and custom multi-cpu queueing and waiting\nlogic, both of which are provided by cpu_stop.\nsynchronize_sched_expedited_count is made atomic and all other shared\nresources along with the mutex are dropped.\n\nsynchronize_sched_expedited() also implemented a check to detect cases\nwhere not all the callback got executed on their assigned cpus and\nfall back to synchronize_sched().  If called with cpu hotplug blocked,\ncpu_stop already guarantees that and the condition cannot happen;\notherwise, stop_machine() would break.  However, this patch preserves\nthe paranoid check using a cpumask to record on which cpus the stopper\nran so that it can serve as a bisection point if something actually\ngoes wrong theree.\n\nBecause the internal execution state is no longer visible,\nrcu_expedited_torture_stats() is removed.\n\nThis patch also renames cpu_stop threads to from \"stopper/%d\" to\n\"migration/%d\".  The names of these threads ultimately don\u0027t matter\nand there\u0027s no reason to make unnecessary userland visible changes.\n\nWith this patch applied, stop_machine() and sched now share the same\nresources.  stop_machine() is faster without wasting any resources and\nsched migration users are much cleaner.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Josh Triplett \u003cjosh@freedesktop.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Dimitri Sivanich \u003csivanich@sgi.com\u003e\n"
    },
    {
      "commit": "99bd5e2f245d8cd17d040c82d40becdb3efd9b69",
      "tree": "9dbfd8d1a9148bad45e5c3c067a05f414134083b",
      "parents": [
        "669c55e9f99b90e46eaa0f98a67ec53d46dc969a"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Wed Mar 31 16:47:45 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:02:02 2010 +0200"
      },
      "message": "sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n\nIssues in the current select_idle_sibling() logic in select_task_rq_fair()\nin the context of a task wake-up:\n\na) Once we select the idle sibling, we use that domain (spanning the cpu that\n   the task is currently woken-up and the idle sibling that we found) in our\n   wake_affine() decisions. This domain is completely different from the\n   domain(we are supposed to use) that spans the cpu that the task currently\n   woken-up and the cpu where the task previously ran.\n\nb) We do select_idle_sibling() check only for the cpu that the task is\n   currently woken-up on. If select_task_rq_fair() selects the previously run\n   cpu for waking the task, doing a select_idle_sibling() check\n   for that cpu also helps and we don\u0027t do this currently.\n\nc) In the scenarios where the cpu that the task is woken-up is busy but\n   with its HT siblings are idle, we are selecting the task be woken-up\n   on the idle HT sibling instead of a core that it previously ran\n   and currently completely idle. i.e., we are not taking decisions based on\n   wake_affine() but directly selecting an idle sibling that can cause\n   an imbalance at the SMT/MC level which will be later corrected by the\n   periodic load balancer.\n\nFix this by first going through the load imbalance calculations using\nwake_affine() and once we make a decision of woken-up cpu vs previously-ran cpu,\nthen choose a possible idle sibling for waking up the task on.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1270079265.7835.8.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "669c55e9f99b90e46eaa0f98a67ec53d46dc969a",
      "tree": "9f60bcf779e5ec786c05b8053b59e091edcb418c",
      "parents": [
        "74f5187ac873042f502227701ed1727e7c5fbfa9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Apr 16 14:59:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:02:02 2010 +0200"
      },
      "message": "sched: Pre-compute cpumask_weight(sched_domain_span(sd))\n\nDave reported that his large SPARC machines spend lots of time in\nhweight64(), try and optimize some of those needless cpumask_weight()\ninvocations (esp. with the large offstack cpumasks these are very\nexpensive indeed).\n\nReported-by: David Miller \u003cdavem@davemloft.net\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": "371fd7e7a56a5c136d31aa980011bd2f131c3ef5",
      "tree": "cf52014018e8258acd8bcfd486d855f098a02c03",
      "parents": [
        "cc87f76a601d2d256118f7bab15e35254356ae21"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 16:38:48 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:05 2010 +0200"
      },
      "message": "sched: Add enqueue/dequeue flags\n\nIn order to reduce the dependency on TASK_WAKING rework the enqueue\ninterface to support a proper flags field.\n\nReplace the int wakeup, bool head arguments with an int flags argument\nand create the following flags:\n\n  ENQUEUE_WAKEUP - the enqueue is a wakeup of a sleeping task,\n  ENQUEUE_WAKING - the enqueue has relative vruntime due to\n                   having sched_class::task_waking() called,\n  ENQUEUE_HEAD - the waking task should be places on the head\n                 of the priority queue (where appropriate).\n\nFor symmetry also convert sched_class::dequeue() to a flags scheme.\n\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": "0017d735092844118bef006696a750a0e4ef6ebd",
      "tree": "8ed1540aaeb63da726f93da12950a8eaa0e0a3e0",
      "parents": [
        "9084bb8246ea935b98320554229e2f371f7f52fa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 18:34:10 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:03 2010 +0200"
      },
      "message": "sched: Fix TASK_WAKING vs fork deadlock\n\nOleg noticed a few races with the TASK_WAKING usage on fork.\n\n - since TASK_WAKING is basically a spinlock, it should be IRQ safe\n - since we set TASK_WAKING (*) without holding rq-\u003elock it could\n   be there still is a rq-\u003elock holder, thereby not actually\n   providing full serialization.\n\n(*) in fact we clear PF_STARTING, which in effect enables TASK_WAKING.\n\nCure the second issue by not setting TASK_WAKING in sched_fork(), but\nonly temporarily in wake_up_new_task() while calling select_task_rq().\n\nCure the first by holding rq-\u003elock around the select_task_rq() call,\nthis will disable IRQs, this however requires that we push down the\nrq-\u003elock release into select_task_rq_fair()\u0027s cgroup stuff.\n\nBecause select_task_rq_fair() still needs to drop the rq-\u003elock we\ncannot fully get rid of TASK_WAKING.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.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": "c9494727cf293ae2ec66af57547a3e79c724fec2",
      "tree": "44ae197b64fa7530ee695a90ad31326dda06f1e1",
      "parents": [
        "6427462bfa50f50dc6c088c07037264fcc73eca1",
        "42be79e37e264557f12860fa4cc84b4de3685954"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:02:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:03:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update to latest upstream\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "beac4c7e4a1cc6d57801f690e5e82fa2c9c245c8",
      "tree": "209e23af19515b9fa22bd6ee6598bb751ba61edf",
      "parents": [
        "13814d42e45dfbe845a0bbe5184565d9236896ae"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:20 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:53 2010 +0100"
      },
      "message": "sched: Remove AFFINE_WAKEUPS feature\n\nDisabling affine wakeups is too horrible to contemplate.  Remove the feature flag.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301890.6785.50.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "13814d42e45dfbe845a0bbe5184565d9236896ae",
      "tree": "6c4c010829e126af2c4a0620e47ee00d867d7f5d",
      "parents": [
        "c6ee36c423c3ed1fb86bb3eabba9fc256a300d16"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:04 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:53 2010 +0100"
      },
      "message": "sched: Remove ASYM_GRAN feature\n\nThis features has been enabled for quite a while, after testing showed that\neasing preemption for light tasks was harmful to high priority threads.\n\nRemove the feature flag.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301675.6785.44.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2e74eeac03ffb779d64b66a643c5e598145a28b",
      "tree": "3e609ce880c06d07e5c605c48789bd6da089ad39",
      "parents": [
        "5ca9880c6f4ba4c84b517bc2fed5366adf63d191"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:18 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:52 2010 +0100"
      },
      "message": "sched: Remove WAKEUP_SYNC feature\n\nThis feature never earned its keep, remove it.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301591.6785.42.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5ca9880c6f4ba4c84b517bc2fed5366adf63d191",
      "tree": "2aa6abff8c3615cbb692364e986e3126e0c4099d",
      "parents": [
        "6bc6cf2b61336ed0c55a615eb4c0c8ed5daf3f08"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:17 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:52 2010 +0100"
      },
      "message": "sched: Remove FAIR_SLEEPERS feature\n\nOur preemption model relies too heavily on sleeper fairness to disable it\nwithout dire consequences.  Remove the feature, and save a branch or two.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301520.6785.40.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6bc6cf2b61336ed0c55a615eb4c0c8ed5daf3f08",
      "tree": "756b81c0f9a2c5084e834c4184466390bcd7cc3e",
      "parents": [
        "8b911acdf08477c059d1c36c21113ab1696c612b"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:17 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:52 2010 +0100"
      },
      "message": "sched: Remove NORMALIZED_SLEEPER\n\nThis feature hasn\u0027t been enabled in a long time, remove effectively dead code.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301447.6785.38.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b911acdf08477c059d1c36c21113ab1696c612b",
      "tree": "ff0127c87cf657b706c3dc68dd8f92248a448c76",
      "parents": [
        "21406928afe43f1db6acab4931bb8c886f4d04ce"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:16 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:51 2010 +0100"
      },
      "message": "sched: Fix select_idle_sibling()\n\nDon\u0027t bother with selection when the current cpu is idle.  Recent load\nbalancing changes also make it no longer necessary to check wake_affine()\nsuccess before returning the selected sibling, so we now always use it.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301369.6785.36.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21406928afe43f1db6acab4931bb8c886f4d04ce",
      "tree": "623458f3c35ce4fbf18bcf4bba29c16c1c42c433",
      "parents": [
        "a64692a3afd85fe048551ab89142fd5ca99a0dbd"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:15 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:51 2010 +0100"
      },
      "message": "sched: Tweak sched_latency and min_granularity\n\nAllow LAST_BUDDY to kick in sooner, improving cache utilization as soon as\na second buddy pair arrives on scene.  The cost is latency starting to climb\nsooner, the tbenefit for tbench 8 on my Q6600 box is ~2%.  No detrimental\neffects noted in normal idesktop usage.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301285.6785.34.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "a64692a3afd85fe048551ab89142fd5ca99a0dbd"
}
