)]}'
{
  "log": [
    {
      "commit": "bced76aeaca03b45e3b4bdb868cada328e497847",
      "tree": "e2965b6cfecdc257a01b89ec6780b8de3b2e6d39",
      "parents": [
        "6db9dc150eabce7053c8df2a2146aa0d6748ec42"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jan 11 13:11:12 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 11 17:15:12 2012 +0100"
      },
      "message": "sched: Fix lockup by limiting load-balance retries on lock-break\n\nEric and David reported dead machines and traced it to commit\na195f004 (\"sched: Fix load-balance lock-breaking\"), it turns out\nthere\u0027s still a scenario where we can end up re-trying forever.\n\nSince there is no strict forward progress guarantee in the\nload-balance iteration we can get stuck re-retrying the same\ntask-set over and over.\n\nCreating a forward progress guarantee with the existing\nstructure is somewhat non-trivial, for now simply terminate the\nretry loop after a few tries.\n\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nTested-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReported-by: David Ahern \u003cdsahern@gmail.com\u003e\n[ logic cleanup as suggested by Eric ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/1326297936.2442.157.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ac9bc6943edf7d181b4b1cc734981350d4f6bae",
      "tree": "c7853336d693e4593488c26b8ce27ceca3803a6f",
      "parents": [
        "664dfa65e84429d0b68694483e1de7365c7c56fb"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Wed Dec 21 16:15:40 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 23 17:56:17 2011 +0100"
      },
      "message": "sched/tracing: Add a new tracepoint for sleeptime\n\nIf CONFIG_SCHEDSTATS is defined, the kernel maintains\ninformation about how long the task was sleeping or\nin the case of iowait, blocking in the kernel before\ngetting woken up.\n\nThis will be useful for sleep time profiling.\n\nNote: this information is only provided for sched_fair.\nOther scheduling classes may choose to provide this in\nthe future.\n\nNote: the delay includes the time spent on the runqueue\nas well.\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1324512940-32060-2-git-send-email-asharma@fb.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "62af3783e4fd8ba9e28416e8e91cb3bdd9fb133e",
      "tree": "728bed51d0ae2725ade8046ba83794dd5f9944e4",
      "parents": [
        "7ceff013c43c0f38f0d26c79507889c6791c0ea0"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Dec 15 14:37:41 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 21 10:34:52 2011 +0100"
      },
      "message": "sched: Fix cgroup movement of waking process\n\nThere is a small race between try_to_wake_up() and sched_move_task(),\nwhich is trying to move the process being woken up.\n\n    try_to_wake_up() on CPU0       sched_move_task() on CPU1\n--------------------------------+---------------------------------\n  raw_spin_lock_irqsave(p-\u003epi_lock)\n  task_waking_fair()\n    -\u003ep.se.vruntime -\u003d cfs_rq-\u003emin_vruntime\n  ttwu_queue()\n    -\u003esend reschedule IPI to CPU1\n  raw_spin_unlock_irqsave(p-\u003epi_lock)\n                                   task_rq_lock()\n                                     -\u003e tring to aquire both p-\u003epi_lock and\n                                        rq-\u003elock with IRQ disabled\n                                   task_move_group_fair()\n                                     -\u003e p.se.vruntime\n                                          -\u003d (old)cfs_rq-\u003emin_vruntime\n                                          +\u003d (new)cfs_rq-\u003emin_vruntime\n                                   task_rq_unlock()\n\n                                   (via IPI)\n                                   sched_ttwu_pending()\n                                     raw_spin_lock(rq-\u003elock)\n                                     ttwu_do_activate()\n                                       ...\n                                       enqueue_entity()\n                                         child.se-\u003evruntime +\u003d cfs_rq-\u003emin_vruntime\n                                     raw_spin_unlock(rq-\u003elock)\n\nAs a result, vruntime of the process becomes far bigger than min_vruntime,\nif (new)cfs_rq-\u003emin_vruntime \u003e\u003e (old)cfs_rq-\u003emin_vruntime.\n\nThis patch fixes this problem by just ignoring such process in\ntask_move_group_fair(), because the vruntime has already been normalized in\ntask_waking_fair().\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20111215143741.df82dd50.nishimura@mxp.nes.nec.co.jp\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7ceff013c43c0f38f0d26c79507889c6791c0ea0",
      "tree": "f4e164fcb0b75b3d559e644d41fd4c6c29990bef",
      "parents": [
        "4fc420c91f53e0a9f95665c6b14a1983716081e7"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Dec 15 14:36:07 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 21 10:34:51 2011 +0100"
      },
      "message": "sched: Fix cgroup movement of newly created process\n\nThere is a small race between do_fork() and sched_move_task(), which is\ntrying to move the child.\n\n            do_fork()                 sched_move_task()\n--------------------------------+---------------------------------\n  copy_process()\n    sched_fork()\n      task_fork_fair()\n        -\u003e vruntime of the child is initialized\n           based on that of the parent.\n  -\u003e we can see the child in \"tasks\" file now.\n                                    task_rq_lock()\n                                    task_move_group_fair()\n                                      -\u003e child.se.vruntime\n                                           -\u003d (old)cfs_rq-\u003emin_vruntime\n                                           +\u003d (new)cfs_rq-\u003emin_vruntime\n                                    task_rq_unlock()\n  wake_up_new_task()\n    ...\n    enqueue_entity()\n      child.se.vruntime +\u003d cfs_rq-\u003emin_vruntime\n\nAs a result, vruntime of the child becomes far bigger than min_vruntime,\nif (new)cfs_rq-\u003emin_vruntime \u003e\u003e (old)cfs_rq-\u003emin_vruntime.\n\nThis patch fixes this problem by just ignoring such process in\ntask_move_group_fair(), because the vruntime has already been normalized in\ntask_fork_fair().\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20111215143607.2ee12c5d.nishimura@mxp.nes.nec.co.jp\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4fc420c91f53e0a9f95665c6b14a1983716081e7",
      "tree": "e6bfad34810d368ed893780b9ddc05c5dbcb6923",
      "parents": [
        "11534ec5b6cea13ae38d31799d2a5290c5d724af"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Dec 15 14:36:55 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 21 10:34:49 2011 +0100"
      },
      "message": "sched: Fix cgroup movement of forking process\n\nThere is a small race between task_fork_fair() and sched_move_task(),\nwhich is trying to move the parent.\n\n        task_fork_fair()                 sched_move_task()\n--------------------------------+---------------------------------\n  cfs_rq \u003d task_cfs_rq(current)\n    -\u003e cfs_rq is the \"old\" one.\n  curr \u003d cfs_rq-\u003ecurr\n    -\u003e curr is set to the parent.\n                                    task_rq_lock()\n                                    dequeue_task()\n                                      -\u003eparent.se.vruntime -\u003d (old)cfs_rq-\u003emin_vruntime\n                                    enqueue_task()\n                                      -\u003eparent.se.vruntime +\u003d (new)cfs_rq-\u003emin_vruntime\n                                    task_rq_unlock()\n  raw_spin_lock_irqsave(rq-\u003elock)\n  se-\u003evruntime \u003d curr-\u003evruntime\n    -\u003e vruntime of the child is set to that of the parent\n       which has already been updated by sched_move_task().\n  se-\u003evruntime -\u003d (old)cfs_rq-\u003emin_vruntime.\n  raw_spin_unlock_irqrestore(rq-\u003elock)\n\nAs a result, vruntime of the child becomes far bigger than expected,\nif (new)cfs_rq-\u003emin_vruntime \u003e\u003e (old)cfs_rq-\u003emin_vruntime.\n\nThis patch fixes this problem by setting \"cfs_rq\" and \"curr\" after\nholding the rq-\u003elock.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20111215143655.662676b0.nishimura@mxp.nes.nec.co.jp\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a195f004e9496b4d99f471bb96e0a0c1af080909",
      "tree": "605f04617dc42458025cb4341e9e6407bed8b140",
      "parents": [
        "5b54b56be5b540a9cb12682c4d0df5454c098a38"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 22 15:30:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 21 10:34:47 2011 +0100"
      },
      "message": "sched: Fix load-balance lock-breaking\n\nThe current lock break relies on contention on the rq locks, something\nwhich might never come because we\u0027ve got IRQs disabled. Or will be\nvery likely because on anything with more than 2 cpus a synchronized\nload-balance pass will very likely cause contention on the rq locks.\n\nAlso the sched_nr_migrate thing fails when it gets trapped the loops\nof either the cgroup muck in load_balance_fair() or the move_tasks()\nload condition.\n\nInstead, use the new lb_flags field to propagate break/abort\nconditions for all these loops and create a new loop outside the irq\ndisabled on the break being required.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-tsceb6w61q0gakmsccix6xxi@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5b54b56be5b540a9cb12682c4d0df5454c098a38",
      "tree": "837b7084c5e2659968ea64ba2c6520ff6256567a",
      "parents": [
        "518cd62341786aa4e3839810832af2fbc0de1ea4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 22 15:23:13 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 21 10:34:45 2011 +0100"
      },
      "message": "sched: Replace all_pinned with a generic flags field\n\nReplace the all_pinned argument with a flags field so that we can add\nsome extra controls throughout that entire call chain.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-33kevm71m924ok1gpxd720v3@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "518cd62341786aa4e3839810832af2fbc0de1ea4",
      "tree": "bd28f7fce47887e9c5d33bd772c8380255ef3065",
      "parents": [
        "612ef28a045efadb3a98d4492ead7806a146485d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 07 15:07:31 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 21 10:34:44 2011 +0100"
      },
      "message": "sched: Only queue remote wakeups when crossing cache boundaries\n\nMike reported a 13% drop in netperf TCP_RR performance due to the\nnew remote wakeup code. Suresh too noticed some performance issues\nwith it.\n\nReducing the IPIs to only cross cache domains solves the observed\nperformance issues.\n\nReported-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Kleikamp \u003cdave.kleikamp@oracle.com\u003e\nLink: http://lkml.kernel.org/r/1323338531.17673.7.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "067491b7313c41f49607fce782d29344d1472587",
      "tree": "06f6352372038f7f4171c8d8fc869e686665d32f",
      "parents": [
        "cd490c5b285544dc1319cf79c2ca0528a6447f61"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Dec 07 14:32:08 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 08 05:45:48 2011 +0100"
      },
      "message": "sched, nohz: Fix missing RCU read lock\n\nYong Zhang reported:\n\n \u003e [ INFO: suspicious RCU usage. ]\n \u003e kernel/sched/fair.c:5091 suspicious rcu_dereference_check() usage!\n\nThis is due to the sched_domain stuff being RCU protected and\ncommit 0b005cf5 (\"sched, nohz: Implement sched group, domain\naware nohz idle load balancing\") overlooking this fact.\n\nThe sd variable only lives inside the for_each_domain() block,\nso we only need to wrap that.\n\nReported-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nTested-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/1323264728.32012.107.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd490c5b285544dc1319cf79c2ca0528a6447f61",
      "tree": "ee419d467f8e44f8ce596ea4cec1e514baeec7c9",
      "parents": [
        "8a6d42d1b32ad239c28f445138ea9c19aa52dd20"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Tue Dec 06 11:26:34 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 20:51:29 2011 +0100"
      },
      "message": "sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer\n\nIntention is to set the NOHZ_BALANCE_KICK flag for the \u0027ilb_cpu\u0027. Not\nfor the \u0027cpu\u0027 which is the local cpu. Fix the typo.\n\nReported-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1323199594.1984.18.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8a6d42d1b32ad239c28f445138ea9c19aa52dd20",
      "tree": "ddb25da63a4a712d48c545e1b2fce145f723b4e2",
      "parents": [
        "f8b6d1cc7dc15cf3de538b864eefaedad7a84d85"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Tue Dec 06 11:19:37 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 20:51:27 2011 +0100"
      },
      "message": "sched, nohz: Fix the idle cpu check in nohz_idle_balance\n\ncpu bit in the nohz.idle_cpu_mask are reset in the first busy tick after\nexiting idle. So during nohz_idle_balance(), intention is to double\ncheck if the cpu that is part of the idle_cpu_mask is indeed idle before\ngoing ahead in performing idle balance for that cpu.\n\nFix the cpu typo in the idle_cpu() check during nohz_idle_balance().\n\nReported-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1323199177.1984.12.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b39e66eaf9c573f38133e894256caeaf9fd2a528",
      "tree": "316e239a62d589515bbe4c4b9b8c4fc8cac91715",
      "parents": [
        "fdaabd800bdd60652a448994eeb77442180db6c0"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Tue Nov 22 15:20:07 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 20:51:20 2011 +0100"
      },
      "message": "sched: Save some hrtick_start_fair cycles\n\nhrtick_start_fair() shows up in profiles even when disabled.\n\nv3.0.6\n\ntaskset -c 3 pipe-test\n\n   PerfTop:     997 irqs/sec  kernel:89.5%  exact:  0.0% [1000Hz cycles],  (all, CPU: 3)\n------------------------------------------------------------------------------------------------\n\n             Virgin                                    Patched\n             samples  pcnt function                    samples  pcnt function\n             _______ _____ ___________________________ _______ _____ ___________________________\n\n             2880.00 10.2% __schedule                  3136.00 11.3% __schedule\n             1634.00  5.8% pipe_read                   1615.00  5.8% pipe_read\n             1458.00  5.2% system_call                 1534.00  5.5% system_call\n             1382.00  4.9% _raw_spin_lock_irqsave      1412.00  5.1% _raw_spin_lock_irqsave\n             1202.00  4.3% pipe_write                  1255.00  4.5% copy_user_generic_string\n             1164.00  4.1% copy_user_generic_string    1241.00  4.5% __switch_to\n             1097.00  3.9% __switch_to                  929.00  3.3% mutex_lock\n              872.00  3.1% mutex_lock                   846.00  3.0% mutex_unlock\n              687.00  2.4% mutex_unlock                 804.00  2.9% pipe_write\n              682.00  2.4% native_sched_clock           713.00  2.6% native_sched_clock\n              643.00  2.3% system_call_after_swapgs     653.00  2.3% _raw_spin_unlock_irqrestore\n              617.00  2.2% sched_clock_local            633.00  2.3% fsnotify\n              612.00  2.2% fsnotify                     605.00  2.2% sched_clock_local\n              596.00  2.1% _raw_spin_unlock_irqrestore  593.00  2.1% system_call_after_swapgs\n              542.00  1.9% sysret_check                 559.00  2.0% sysret_check\n              467.00  1.7% fget_light                   472.00  1.7% fget_light\n              462.00  1.6% finish_task_switch           461.00  1.7% finish_task_switch\n              437.00  1.5% vfs_write                    442.00  1.6% vfs_write\n              431.00  1.5% do_sync_write                428.00  1.5% do_sync_write\n              413.00  1.5% select_task_rq_fair          404.00  1.5% _raw_spin_lock_irq\n              386.00  1.4% update_curr                  402.00  1.4% update_curr\n              385.00  1.4% rw_verify_area               389.00  1.4% do_sync_read\n              377.00  1.3% _raw_spin_lock_irq           378.00  1.4% vfs_read\n              369.00  1.3% do_sync_read                 340.00  1.2% pipe_iov_copy_from_user\n              360.00  1.3% vfs_read                     316.00  1.1% __wake_up_sync_key\n*             342.00  1.2% hrtick_start_fair            313.00  1.1% __wake_up_common\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\n[ fixed !CONFIG_SCHED_HRTICK borkage ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1321971607.6855.17.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "786d6dc7aeb2bfbfe417507b7beb83919f319db3",
      "tree": "b2190cc2e926b2ce27918525443810e1c6a5416f",
      "parents": [
        "0b005cf54eac170a8f22540ab096a6e07bf49e7c"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Dec 01 17:07:35 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:36 2011 +0100"
      },
      "message": "sched, nohz: Clean up the find_new_ilb() using sched groups nr_busy_cpus\n\nnr_busy_cpus in the sched_group_power indicates whether the group\nis semi idle or not. This helps remove the is_semi_idle_group() and simplify\nthe find_new_ilb() in the context of finding an optimal cpu that can do\nidle load balancing.\n\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\nLink: http://lkml.kernel.org/r/20111202010832.656983582@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b005cf54eac170a8f22540ab096a6e07bf49e7c",
      "tree": "d06b2c7d1b6286f4116f94b9d4b38779e885a9b2",
      "parents": [
        "69e1e811dcc436a6b129dbef273ad9ec22d095ce"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Dec 01 17:07:34 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:34 2011 +0100"
      },
      "message": "sched, nohz: Implement sched group, domain aware nohz idle load balancing\n\nWhen there are many logical cpu\u0027s that enter and exit idle often, members of\nthe global nohz data structure are getting modified very frequently causing\nlot of cache-line contention.\n\nMake the nohz idle load balancing more scalabale by using the sched domain\ntopology and \u0027nr_busy_cpu\u0027s in the struct sched_group_power.\n\nIdle load balance is kicked on one of the idle cpu\u0027s when there is atleast\none idle cpu and:\n\n - a busy rq having more than one task or\n\n - a busy rq\u0027s scheduler group that share package resources (like HT/MC\n   siblings) and has more than one member in that group busy or\n\n - for the SD_ASYM_PACKING domain, if the lower numbered cpu\u0027s in that\n   domain are idle compared to the busy ones.\n\nThis will help in kicking the idle load balancing request only when\nthere is a potential imbalance. And once it is mostly balanced, these kicks will\nbe minimized.\n\nThese changes helped improve the workload that is context switch intensive\nbetween number of task pairs by 2x on a 8 socket NHM-EX based system.\n\nReported-by: Tim Chen \u003ctim.c.chen@intel.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\nLink: http://lkml.kernel.org/r/20111202010832.602203411@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69e1e811dcc436a6b129dbef273ad9ec22d095ce",
      "tree": "f07179af4989178733727683796927948db9059a",
      "parents": [
        "1c792db7f7957e2e34b9a164f08200e36a25dfd0"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Dec 01 17:07:33 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:32 2011 +0100"
      },
      "message": "sched, nohz: Track nr_busy_cpus in the sched_group_power\n\nIntroduce nr_busy_cpus in the struct sched_group_power [Not in sched_group\nbecause sched groups are duplicated for the SD_OVERLAP scheduler domain]\nand for each cpu that enters and exits idle, this parameter will\nbe updated in each scheduler group of the scheduler domain that this cpu\nbelongs to.\n\nTo avoid the frequent update of this state as the cpu enters\nand exits idle, the update of the stat during idle exit is\ndelayed to the first timer tick that happens after the cpu becomes busy.\nThis is done using NOHZ_IDLE flag in the struct rq\u0027s nohz_flags.\n\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\nLink: http://lkml.kernel.org/r/20111202010832.555984323@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c792db7f7957e2e34b9a164f08200e36a25dfd0",
      "tree": "d1ab8d9e860e12b31f8553309b79cc65ff380fa5",
      "parents": [
        "5b680fd61388abb9059fbc8e7a2f60f602bfce15"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Dec 01 17:07:32 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:30 2011 +0100"
      },
      "message": "sched, nohz: Introduce nohz_flags in \u0027struct rq\u0027\n\nIntroduce nohz_flags in the struct rq, which will track these two flags\nfor now.\n\nNOHZ_TICK_STOPPED keeps track of the tick stopped status that gets set when\nthe tick is stopped. It will be used to update the nohz idle load balancer data\nstructures during the first busy tick after the tick is restarted. At this\nfirst busy tick after tickless idle, NOHZ_TICK_STOPPED flag will be reset.\nThis will minimize the nohz idle load balancer status updates that currently\nhappen for every tickless exit, making it more scalable when there\nare many logical cpu\u0027s that enter and exit idle often.\n\nNOHZ_BALANCE_KICK will track the need for nohz idle load balance\non this rq. This will replace the nohz_balance_kick in the rq, which was\nnot being updated atomically.\n\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\nLink: http://lkml.kernel.org/r/20111202010832.499438999@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "916671c08b7808aebec87cc56c85788e665b3c6b",
      "tree": "b3cd42d8fc5ba64f3ee0bff332278758c656141c",
      "parents": [
        "76854c7e8f3f4172fef091e78d88b3b751463ac6"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Tue Nov 22 15:21:26 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:24 2011 +0100"
      },
      "message": "sched: Set skip_clock_update in yield_task_fair()\n\nThis is another case where we are on our way to schedule(),\nso can save a useless clock update and resulting microscopic\nvruntime update.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1321971686.6855.18.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "76854c7e8f3f4172fef091e78d88b3b751463ac6",
      "tree": "0560b17aaff5394ab93f86e08ec85e02b9de6aea",
      "parents": [
        "77e81365e0b7d7479fc444a21cea0cd4def70b45"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Tue Nov 22 15:18:24 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:51:26 2011 +0100"
      },
      "message": "sched: Use rt.nr_cpus_allowed to recover select_task_rq() cycles\n\nrt.nr_cpus_allowed is always available, use it to bail from select_task_rq()\nwhen only one cpu can be used, and saves some cycles for pinned tasks.\n\nSee the line marked with \u0027*\u0027 below:\n\n  # taskset -c 3 pipe-test\n\n   PerfTop:     997 irqs/sec  kernel:89.5%  exact:  0.0% [1000Hz cycles],  (all, CPU: 3)\n------------------------------------------------------------------------------------------------\n\n             Virgin                                    Patched\n             samples  pcnt function                    samples  pcnt function\n             _______ _____ ___________________________ _______ _____ ___________________________\n\n             2880.00 10.2% __schedule                  3136.00 11.3% __schedule\n             1634.00  5.8% pipe_read                   1615.00  5.8% pipe_read\n             1458.00  5.2% system_call                 1534.00  5.5% system_call\n             1382.00  4.9% _raw_spin_lock_irqsave      1412.00  5.1% _raw_spin_lock_irqsave\n             1202.00  4.3% pipe_write                  1255.00  4.5% copy_user_generic_string\n             1164.00  4.1% copy_user_generic_string    1241.00  4.5% __switch_to\n             1097.00  3.9% __switch_to                  929.00  3.3% mutex_lock\n              872.00  3.1% mutex_lock                   846.00  3.0% mutex_unlock\n              687.00  2.4% mutex_unlock                 804.00  2.9% pipe_write\n              682.00  2.4% native_sched_clock           713.00  2.6% native_sched_clock\n              643.00  2.3% system_call_after_swapgs     653.00  2.3% _raw_spin_unlock_irqrestore\n              617.00  2.2% sched_clock_local            633.00  2.3% fsnotify\n              612.00  2.2% fsnotify                     605.00  2.2% sched_clock_local\n              596.00  2.1% _raw_spin_unlock_irqrestore  593.00  2.1% system_call_after_swapgs\n              542.00  1.9% sysret_check                 559.00  2.0% sysret_check\n              467.00  1.7% fget_light                   472.00  1.7% fget_light\n              462.00  1.6% finish_task_switch           461.00  1.7% finish_task_switch\n              437.00  1.5% vfs_write                    442.00  1.6% vfs_write\n              431.00  1.5% do_sync_write                428.00  1.5% do_sync_write\n*             413.00  1.5% select_task_rq_fair          404.00  1.5% _raw_spin_lock_irq\n              386.00  1.4% update_curr                  402.00  1.4% update_curr\n              385.00  1.4% rw_verify_area               389.00  1.4% do_sync_read\n              377.00  1.3% _raw_spin_lock_irq           378.00  1.4% vfs_read\n              369.00  1.3% do_sync_read                 340.00  1.2% pipe_iov_copy_from_user\n              360.00  1.3% vfs_read                     316.00  1.1% __wake_up_sync_key\n              342.00  1.2% hrtick_start_fair            313.00  1.1% __wake_up_common\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1321971504.6855.15.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77e81365e0b7d7479fc444a21cea0cd4def70b45",
      "tree": "edb0aa41e7ca436f3e1097ea5ea9da6ebee4ec81",
      "parents": [
        "b781a602ac745ee3d5d745276f1e1905a2c101f9"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Nov 17 11:08:23 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:51:25 2011 +0100"
      },
      "message": "sched: Clean up domain traversal in select_idle_sibling()\n\nInstead of going through the scheduler domain hierarchy multiple times\n(for giving priority to an idle core over an idle SMT sibling in a busy\ncore), start with the highest scheduler domain with the SD_SHARE_PKG_RESOURCES\nflag and traverse the domain hierarchy down till we find an idle group.\n\nThis cleanup also addresses an issue reported by Mike where the recent\nchanges returned the busy thread even in the presence of an idle SMT\nsibling in single socket platforms.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1321556904.15339.25.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b781a602ac745ee3d5d745276f1e1905a2c101f9",
      "tree": "bae4134842fba8c0e8ab22a205b73f21eba6c1d4",
      "parents": [
        "391e43da797a96aeb65410281891f6d0b0e9611c"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Mon Nov 28 12:03:35 2011 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:51:23 2011 +0100"
      },
      "message": "events, sched: Add tracepoint for accounting blocked time\n\nThis tracepoint shows how long a task is sleeping in uninterruptible state.\n\nE.g. it may show how long and where a mutex is waited for.\n\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1322471015-107825-8-git-send-email-avagin@openvz.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "391e43da797a96aeb65410281891f6d0b0e9611c",
      "tree": "0ce6784525a5a8f75b377170cf1a7d60abccea29",
      "parents": [
        "029632fbb7b7c9d85063cc9eb470de6c54873df3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 15 17:14:39 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 17 12:20:22 2011 +0100"
      },
      "message": "sched: Move all scheduler bits into kernel/sched/\n\nThere\u0027s too many sched*.[ch] files in kernel/, give them their own\ndirectory.\n\n(No code changed, other than Makefile glue added.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "029632fbb7b7c9d85063cc9eb470de6c54873df3",
      "tree": "511303f0fa32f997c4b2f68364b032555b6a642e",
      "parents": [
        "60686317da05049385eae86e44c710cde535f95f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 25 10:00:11 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 17 12:20:19 2011 +0100"
      },
      "message": "sched: Make separate sched*.c translation units\n\nSince once needs to do something at conferences and fixing compile\nwarnings doesn\u0027t actually require much if any attention I decided\nto break up the sched.c #include \"*.c\" fest.\n\nThis further modularizes the scheduler code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-x0fcd3mnp8f9c99grcpewmhi@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "56f570e512eeb5b412cb3a62234adc446a8eb32b",
      "tree": "cabaea188d6e35c077abc34fda40cc83aea9ea37",
      "parents": [
        "fccfdc6f0d8c83c854eeb6d93aa158f0e551bd49"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 07 20:26:33 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 16 08:48:18 2011 +0100"
      },
      "message": "sched: Use jump labels to reduce overhead when bandwidth control is inactive\n\nNow that the linkage of jump-labels has been fixed they show a measurable\nimprovement in overhead for the enabled-but-unused case.\n\nWorkload is:\n\n \u0027taskset -c 0 perf stat --repeat 50 -e instructions,cycles,branches\n  bash -c \"for ((i\u003d0;i\u003c5;i++)); do $(dirname $0)/pipe-test 20000; done\"\u0027\n\nThere\u0027s a speedup for all situations:\n\n                 instructions            cycles                  branches\n -------------------------------------------------------------------------\n Intel Westmere\n base            806611770               745895590               146765378\n +jumplabel      803090165 (-0.44%)      713381840 (-4.36%)      144561130\n\n AMD Barcelona\n base            824657415               740055589               148855354\n +jumplabel      821056910 (-0.44%)      737558389 (-0.34%)      146635229\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111108042736.560831357@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fccfdc6f0d8c83c854eeb6d93aa158f0e551bd49",
      "tree": "d3a397152c6bff8675350e58e2aceb4ec34c1108",
      "parents": [
        "4dcfe1025b513c2c1da5bf5586adb0e80148f612"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 07 20:26:34 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 16 08:43:45 2011 +0100"
      },
      "message": "sched: Fix buglet in return_cfs_rq_runtime()\n\nIn return_cfs_rq_runtime() we want to return bandwidth when there are no\nremaining tasks, not \"return\" when this is the case.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111108042736.623812423@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dcfe1025b513c2c1da5bf5586adb0e80148f612",
      "tree": "1c0bf8ad4c09a3a618c471b6468873d8d8ed2117",
      "parents": [
        "f1c6f1a7eed963ed233ba4c8b6fa8addb86c6ddc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Nov 10 13:01:10 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 16 08:43:43 2011 +0100"
      },
      "message": "sched: Avoid SMT siblings in select_idle_sibling() if possible\n\nAvoid select_idle_sibling() from picking a sibling thread if there\u0027s\nan idle core that shares cache.\n\nThis fixes SMT balancing in the increasingly common case where there\u0027s\na shared cache core available to balance to.\n\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/1321350377.1421.55.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "461819ac8ee950ce027c72a066156a3df9e60c7e",
      "tree": "56f6c312adfdf826e9d57b797a9e101b9ff3ab31",
      "parents": [
        "cf5f0acf3935c91379e709a71ecf68805d366659"
      ],
      "author": {
        "name": "Hui Kang",
        "email": "hkang.sunysb@gmail.com",
        "time": "Tue Oct 11 23:00:59 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 14 12:50:34 2011 +0100"
      },
      "message": "sched_fair: Fix a typo in the comment describing update_sd_lb_stats\n\nSigned-off-by: Hui Kang \u003chkang.sunysb@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1318388459-4427-1-git-send-email-hkang.sunysb@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf5f0acf3935c91379e709a71ecf68805d366659",
      "tree": "66bbd968ec8031c33e7134b6c7f9387c796d6873",
      "parents": [
        "7f80850d3f9fd8fda23a317044aef3a6bafab06b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 13 16:52:28 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 14 12:50:32 2011 +0100"
      },
      "message": "sched: Add a comment to effective_load() since it\u0027s a pain\n\nEvery time I have to stare at this function I need to completely\nreverse engineer its workings, about time I write a comment\nexplaining the thing.\n\nCollected bits and pieces from previous changelogs, mostly:\n\n  4be9daaa1b33701f011f4117f22dc1e45a3e6e34\n  83378269a5fad98f562ebc0f09c349575e6cbfe1\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1318518057.27731.2.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa17b507f142d37aeac322a95f6f7c6375f25601",
      "tree": "5ff8b9d7087175aca85dff3393932fe9b5497425",
      "parents": [
        "6eb57e0d65ebd99a71d435dc96d83e725752eef8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 16 12:23:22 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:56 2011 +0200"
      },
      "message": "sched: Wrap scheduler p-\u003ecpus_allowed access\n\nThis task is preparatory for the migrate_disable() implementation, but\nstands on its own and provides a cleanup.\n\nIt currently only converts those sites required for task-placement.\nKosaki-san once mentioned replacing cpus_allowed with a proper\ncpumask_t instead of the NR_CPUS sized array it currently is, that\nwould also require something like this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nLink: http://lkml.kernel.org/n/tip-e42skvaddos99psip0vce41o@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6eb57e0d65ebd99a71d435dc96d83e725752eef8",
      "tree": "0349de8e8478a9b39dd1c75d347c36b9ebbef24c",
      "parents": [
        "ca38062e57e97791c2f62e3dbd06caf3ebb5721c"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Oct 03 15:09:01 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:27 2011 +0200"
      },
      "message": "sched: Request for idle balance during nohz idle load balance\n\nrq\u0027s idle_at_tick is set to idle/busy during the timer tick\ndepending on the cpu was idle or not. This will be used later in the load\nbalance that will be done in the softirq context (which is a process\ncontext in -RT kernels).\n\nFor nohz kernels, for the cpu doing nohz idle load balance on behalf of\nall the idle cpu\u0027s, its rq-\u003eidle_at_tick might have a stale value (which is\nrecorded when it got the timer tick presumably when it is busy).\n\nAs the nohz idle load balancing is also being done at the same place\nas the regular load balancing, nohz idle load balancing was bailing out\nwhen it sees rq\u0027s idle_at_tick not set.\n\nThus leading to poor system utilization.\n\nRename rq\u0027s idle_at_tick to idle_balance and set it when someone requests\nfor nohz idle balance on an idle cpu.\n\nReported-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111003220934.892350549@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca38062e57e97791c2f62e3dbd06caf3ebb5721c",
      "tree": "c022f6a3d3087cc8eaebbc5640ca145f7d9c50d8",
      "parents": [
        "9243a169acb9df9c63632fb7d5464359a107877a"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Oct 03 15:09:00 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:23 2011 +0200"
      },
      "message": "sched: Use resched IPI to kick off the nohz idle balance\n\nCurrent use of smp call function to kick the nohz idle balance can deadlock\nin this scenario.\n\n1. cpu-A did a generic_exec_single() to cpu-B and after queuing its call single\ndata (csd) to the call single queue, cpu-A took a timer interrupt.  Actual IPI\nto cpu-B to process the call single queue is not yet sent.\n\n2. As part of the timer interrupt handler, cpu-A decided to kick cpu-B\nfor the idle load balancing (sets cpu-B\u0027s rq-\u003enohz_balance_kick to 1)\nand __smp_call_function_single() with nowait will queue the csd to the\ncpu-B\u0027s queue. But the generic_exec_single() won\u0027t send an IPI to cpu-B\nas the call single queue was not empty.\n\n3. cpu-A is busy with lot of interrupts\n\n4. Meanwhile cpu-B is entering and exiting idle and noticed that it has\nit\u0027s rq-\u003enohz_balance_kick set to \u00271\u0027. So it will go ahead and do the\nidle load balancer and clear its rq-\u003enohz_balance_kick.\n\n5. At this point, csd queued as part of the step-2 above is still locked\nand waiting to be serviced on cpu-B.\n\n6. cpu-A is still busy with interrupt load and now it got another timer\ninterrupt and as part of it decided to kick cpu-B for another idle load\nbalancing (as it finds cpu-B\u0027s rq-\u003enohz_balance_kick cleared in step-4\nabove) and does __smp_call_function_single() with the same csd that is\nstill locked.\n\n7. And we get a deadlock waiting for the csd_lock() in the\n__smp_call_function_single().\n\nMain issue here is that cpu-B can service the idle load balancer kick\nrequest from cpu-A even with out receiving the IPI and this lead to\ndoing multiple __smp_call_function_single() on the same csd leading to\ndeadlock.\n\nTo kick a cpu, scheduler already has the reschedule vector reserved. Use\nthat mechanism (kick_process()) instead of using the generic smp call function\nmechanism to kick off the nohz idle load balancing and avoid the deadlock.\n\n   [ This issue is present from 2.6.35+ kernels, but marking it -stable\n     only from v3.0+ as the proposed fix depends on the scheduler_ipi()\n     that is introduced recently. ]\n\nReported-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: stable@kernel.org # v3.0+\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111003220934.834943260@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4cfb33ed980085b14a8f376281edb2e270f0244",
      "tree": "d4f4e8387cefcf44068597328e0901f09f45d4bc",
      "parents": [
        "bfa322c48dc69bfdaee10faf3bd8dbc23b39a21c"
      ],
      "author": {
        "name": "Wang Xingchao",
        "email": "xingchao.wang@intel.com",
        "time": "Fri Sep 16 13:35:52 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 26 13:25:49 2011 +0200"
      },
      "message": "sched: Remove redundant test in check_preempt_tick()\n\nThe caller already checks for nr_running \u003e 1, therefore we don\u0027t have\nto do so again.\n\nSigned-off-by: Wang Xingchao \u003cxingchao.wang@intel.com\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1316194552-12019-1-git-send-email-xingchao.wang@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d8b4986d3dbc4fabc2054d63f1d31d6ed2fb1ca8",
      "tree": "d6afd92e5425f64b337c916d12dc58ca101c334d",
      "parents": [
        "e8da1b18b32064c43881bceef0f051c2110c9ab9"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:41 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:54 2011 +0200"
      },
      "message": "sched: Return unused runtime on group dequeue\n\nWhen a local cfs_rq blocks we return the majority of its remaining quota to the\nglobal bandwidth pool for use by other runqueues.\n\nWe do this only when the quota is current and there is more than\nmin_cfs_rq_quota [1ms by default] of runtime remaining on the rq.\n\nIn the case where there are throttled runqueues and we have sufficient\nbandwidth to meter out a slice, a second timer is kicked off to handle this\ndelivery, unthrottling where appropriate.\n\nUsing a \u0027worst case\u0027 antagonist which executes on each cpu\nfor 1ms before moving onto the next on a fairly large machine:\n\nno quota generations:\n\n 197.47 ms       /cgroup/a/cpuacct.usage\n 199.46 ms       /cgroup/a/cpuacct.usage\n 205.46 ms       /cgroup/a/cpuacct.usage\n 198.46 ms       /cgroup/a/cpuacct.usage\n 208.39 ms       /cgroup/a/cpuacct.usage\n\nSince we are allowed to use \"stale\" quota our usage is effectively bounded by\nthe rate of input into the global pool and performance is relatively stable.\n\nwith quota generations [1s increments]:\n\n 119.58 ms       /cgroup/a/cpuacct.usage\n 119.65 ms       /cgroup/a/cpuacct.usage\n 119.64 ms       /cgroup/a/cpuacct.usage\n 119.63 ms       /cgroup/a/cpuacct.usage\n 119.60 ms       /cgroup/a/cpuacct.usage\n\nThe large deficit here is due to quota generations (/intentionally/) preventing\nus from now using previously stranded slack quota.  The cost is that this quota\nbecomes unavailable.\n\nwith quota generations and quota return:\n\n 200.09 ms       /cgroup/a/cpuacct.usage\n 200.09 ms       /cgroup/a/cpuacct.usage\n 198.09 ms       /cgroup/a/cpuacct.usage\n 200.09 ms       /cgroup/a/cpuacct.usage\n 200.06 ms       /cgroup/a/cpuacct.usage\n\nBy returning unused quota we\u0027re able to both stably consume our desired quota\nand prevent unintentional overages due to the abuse of slack quota from\nprevious quota periods (especially on a large machine).\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.306848658@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e8da1b18b32064c43881bceef0f051c2110c9ab9",
      "tree": "8d6e9e5713c1da4cee3ceba1da67df6cab22ab9f",
      "parents": [
        "d3d9dc3302368269acf94b7381663b93000fe2fe"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Thu Jul 21 09:43:40 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:49 2011 +0200"
      },
      "message": "sched: Add exports tracking cfs bandwidth control statistics\n\nThis change introduces statistics exports for the cpu sub-system, these are\nadded through the use of a stat file similar to that exported by other\nsubsystems.\n\nThe following exports are included:\n\nnr_periods:\tnumber of periods in which execution occurred\nnr_throttled:\tthe number of periods above in which execution was throttle\nthrottled_time:\tcumulative wall-time that any cpus have been throttled for\nthis group\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.198901931@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3d9dc3302368269acf94b7381663b93000fe2fe",
      "tree": "4659e1f9efdea0f15ab5ef551c718416fb8e7954",
      "parents": [
        "8cb120d3e41a0464a559d639d519cef563717a4e"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:39 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:47 2011 +0200"
      },
      "message": "sched: Throttle entities exceeding their allowed bandwidth\n\nWith the machinery in place to throttle and unthrottle entities, as well as\nhandle their participation (or lack there of) we can now enable throttling.\n\nThere are 2 points that we must check whether it\u0027s time to set throttled state:\n put_prev_entity() and enqueue_entity().\n\n- put_prev_entity() is the typical throttle path, we reach it by exceeding our\n  allocated run-time within update_curr()-\u003eaccount_cfs_rq_runtime() and going\n  through a reschedule.\n\n- enqueue_entity() covers the case of a wake-up into an already throttled\n  group.  In this case we know the group cannot be on_rq and can throttle\n  immediately.  Checks are added at time of put_prev_entity() and\n  enqueue_entity()\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184758.091415417@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5238cdd3873e67a98b28c1161d65d2a615c320a3",
      "tree": "6c0e162a8ef9e0eb4d0099b537cfde5138aeddb4",
      "parents": [
        "64660c864f46202b932b911a69deb09805bdbaf8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:37 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:42 2011 +0200"
      },
      "message": "sched: Prevent buddy interactions with throttled entities\n\nBuddies allow us to select \"on-rq\" entities without actually selecting them\nfrom a cfs_rq\u0027s rb_tree.  As a result we must ensure that throttled entities\nare not falsely nominated as buddies.  The fact that entities are dequeued\nwithin throttle_entity is not sufficient for clearing buddy status as the\nnomination may occur after throttling.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.886850167@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "64660c864f46202b932b911a69deb09805bdbaf8",
      "tree": "cf49455195a184e4962c6cac2c39c4f690d74ddc",
      "parents": [
        "8277434ef1202ce30315f8edb3fc760aa6e74493"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:36 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:40 2011 +0200"
      },
      "message": "sched: Prevent interactions with throttled entities\n\nFrom the perspective of load-balance and shares distribution, throttled\nentities should be invisible.\n\nHowever, both of these operations work on \u0027active\u0027 lists and are not\ninherently aware of what group hierarchies may be present.  In some cases this\nmay be side-stepped (e.g. we could sideload via tg_load_down in load balance)\nwhile in others (e.g. update_shares()) it is more difficult to compute without\nincurring some O(n^2) costs.\n\nInstead, track hierarchicaal throttled state at time of transition.  This\nallows us to easily identify whether an entity belongs to a throttled hierarchy\nand avoid incorrect interactions with it.\n\nAlso, when an entity leaves a throttled hierarchy we need to advance its\ntime averaging for shares averaging so that the elapsed throttled time is not\nconsidered as part of the cfs_rq\u0027s operation.\n\nWe also use this information to prevent buddy interactions in the wakeup and\nyield_to() paths.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.777916795@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "671fd9dabe5239ad218c7eb48b2b9edee50250e6",
      "tree": "351f59453eb699661bd811210f24d8b7fd554ca4",
      "parents": [
        "85dac906bec3bb41bfaa7ccaa65c4706de5cfdf8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:34 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:36 2011 +0200"
      },
      "message": "sched: Add support for unthrottling group entities\n\nAt the start of each period we refresh the global bandwidth pool.  At this time\nwe must also unthrottle any cfs_rq entities who are now within bandwidth once\nmore (as quota permits).\n\nUnthrottled entities have their corresponding cfs_rq-\u003ethrottled flag cleared\nand their entities re-enqueued.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.574628950@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85dac906bec3bb41bfaa7ccaa65c4706de5cfdf8",
      "tree": "5d3f71d409fe002b0dfd2cdfb7ef09a9d5851f66",
      "parents": [
        "a9cf55b2861057a213e610da2fec52125439a11d"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:33 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:34 2011 +0200"
      },
      "message": "sched: Add support for throttling group entities\n\nNow that consumption is tracked (via update_curr()) we add support to throttle\ngroup entities (and their corresponding cfs_rqs) in the case where this is no\nrun-time remaining.\n\nThrottled entities are dequeued to prevent scheduling, additionally we mark\nthem as throttled (using cfs_rq-\u003ethrottled) to prevent them from becoming\nre-enqueued until they are unthrottled.  A list of a task_group\u0027s throttled\nentities are maintained on the cfs_bandwidth structure.\n\nNote: While the machinery for throttling is added in this patch the act of\nthrottling an entity exceeding its bandwidth is deferred until later within\nthe series.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.480608533@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a9cf55b2861057a213e610da2fec52125439a11d",
      "tree": "6c0caf35a6e8fbba7325227f11029f5f4d4cbf7e",
      "parents": [
        "58088ad0152ba4b7997388c93d0ca208ec1ece75"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:32 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:31 2011 +0200"
      },
      "message": "sched: Expire invalid runtime\n\nSince quota is managed using a global state but consumed on a per-cpu basis\nwe need to ensure that our per-cpu state is appropriately synchronized.\nMost importantly, runtime that is state (from a previous period) should not be\nlocally consumable.\n\nWe take advantage of existing sched_clock synchronization about the jiffy to\nefficiently detect whether we have (globally) crossed a quota boundary above.\n\nOne catch is that the direction of spread on sched_clock is undefined,\nspecifically, we don\u0027t know whether our local clock is behind or ahead\nof the one responsible for the current expiration time.\n\nFortunately we can differentiate these by considering whether the\nglobal deadline has advanced.  If it has not, then we assume our clock to be\n\"fast\" and advance our local expiration; otherwise, we know the deadline has\ntruly passed and we expire our local runtime.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.379275352@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58088ad0152ba4b7997388c93d0ca208ec1ece75",
      "tree": "22d818b745056effc53ee6fa97ee9103548766b5",
      "parents": [
        "ec12cb7f31e28854efae7dd6f9544e0a66379040"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:31 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:28 2011 +0200"
      },
      "message": "sched: Add a timer to handle CFS bandwidth refresh\n\nThis patch adds a per-task_group timer which handles the refresh of the global\nCFS bandwidth pool.\n\nSince the RT pool is using a similar timer there\u0027s some small refactoring to\nshare this support.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.277271273@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec12cb7f31e28854efae7dd6f9544e0a66379040",
      "tree": "30a7293a4f9d566043f524bb4c43d4ae8b0560db",
      "parents": [
        "a790de99599a29ad3f18667530cf4b9f4b7e3234"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:30 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:26 2011 +0200"
      },
      "message": "sched: Accumulate per-cfs_rq cpu usage and charge against bandwidth\n\nAccount bandwidth usage on the cfs_rq level versus the task_groups to which\nthey belong.  Whether we are tracking bandwidth on a given cfs_rq is maintained\nunder cfs_rq-\u003eruntime_enabled.\n\ncfs_rq\u0027s which belong to a bandwidth constrained task_group have their runtime\naccounted via the update_curr() path, which withdraws bandwidth from the global\npool as desired.  Updates involving the global pool are currently protected\nunder cfs_bandwidth-\u003elock, local runtime is protected by rq-\u003elock.\n\nThis patch only assigns and tracks quota, no action is taken in the case that\ncfs_rq-\u003eruntime_used exceeds cfs_rq-\u003eruntime_assigned.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184757.179386821@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ab84d31e15502fb626169ba2663381e34bf965b2",
      "tree": "658ce7caa6199aa74c5feea92ec8d3e9a2cb4296",
      "parents": [
        "953bfcd10e6f3697233e8e5128c611d275da39c1"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:28 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:03:20 2011 +0200"
      },
      "message": "sched: Introduce primitives to account for CFS bandwidth tracking\n\nIn this patch we introduce the notion of CFS bandwidth, partitioned into\nglobally unassigned bandwidth, and locally claimed bandwidth.\n\n - The global bandwidth is per task_group, it represents a pool of unclaimed\n   bandwidth that cfs_rqs can allocate from.\n - The local bandwidth is tracked per-cfs_rq, this represents allotments from\n   the global pool bandwidth assigned to a specific cpu.\n\nBandwidth is managed via cgroupfs, adding two new interfaces to the cpu subsystem:\n - cpu.cfs_period_us : the bandwidth period in usecs\n - cpu.cfs_quota_us : the cpu bandwidth (in usecs) that this tg will be allowed\n   to consume over period above.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184756.972636699@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "953bfcd10e6f3697233e8e5128c611d275da39c1",
      "tree": "a3ca8136bb9e992bb40945c5eee2a8dcc0fd0b57",
      "parents": [
        "5710f15b52664ae0bfa60a66d75464769d297b2b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:27 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:01:13 2011 +0200"
      },
      "message": "sched: Implement hierarchical task accounting for SCHED_OTHER\n\nIntroduce hierarchical task accounting for the group scheduling case in CFS, as\nwell as promoting the responsibility for maintaining rq-\u003enr_running to the\nscheduling classes.\n\nThe primary motivation for this is that with scheduling classes supporting\nbandwidth throttling it is possible for entities participating in throttled\nsub-trees to not have root visible changes in rq-\u003enr_running across activate\nand de-activate operations.  This in turn leads to incorrect idle and\nweight-per-task load balance decisions.\n\nThis also allows us to make a small fixlet to the fastpath in pick_next_task()\nunder group scheduling.\n\nNote: this issue also exists with the existing sched_rt throttling mechanism.\nThis patch does not address that.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184756.878333391@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0835471697255b415edcefd6b1e25b6c034439f2",
      "tree": "921d1c42bf9b6656135a1126ee8723287ef4bfa1",
      "parents": [
        "67d955383ab2ef8866c494c14156a4f3d29e441c"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:19 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:46 2011 +0200"
      },
      "message": "sched: Remove noop in lowest_flag_domain()\n\nChecking for the validity of sd is removed, since it is already\nchecked by the for_each_domain macro.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTimT+Tut-3TshCDm-NiLLXrOznibNA@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c2efaed9bc973e3aeab1385c618017b56c8f6d7",
      "tree": "2a401b92c58c8aa8a40dafc513fb6be42f92c80a",
      "parents": [
        "e2b245f89ee3f5b03fb42d843a79a58cf4773181"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Fri Jul 29 16:20:33 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:41 2011 +0200"
      },
      "message": "sched: Kill WAKEUP_PREEMPT\n\nRemove the WAKEUP_PREEMPT feature, disabling it doesn\u0027t make any sense\nand its outlived its use by a long long while.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110729082033.GB12106@zhy\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f3171438fc917b9f6b8b60dbb7a3fff9a0f68fd",
      "tree": "9164575614f17bbce9a03128af460e997189a808",
      "parents": [
        "2bd2d6f2dc952fc44fc52887de36e51896da96b9"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Fri Jul 22 09:14:31 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 22 12:47:22 2011 +0200"
      },
      "message": "sched: Cleanup duplicate local variable in [enqueue|dequeue]_task_fair\n\nNo need to define a new \"cfs_rq\" variable in the \"for\" block.\nJust use the one at the top of the function.\n\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311297271.3938.1352.camel@minggr.sh.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bd2d6f2dc952fc44fc52887de36e51896da96b9",
      "tree": "0b08e0ae13cad776cb216a4b85b1eb8d6eda6611",
      "parents": [
        "acb5a9ba3bd7cd8b3264f67a3789a9587d3b935b"
      ],
      "author": {
        "name": "Stephan Baerwolf",
        "email": "stephan.baerwolf@tu-ilmenau.de",
        "time": "Wed Jul 20 14:46:59 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:55 2011 +0200"
      },
      "message": "sched: Replace use of entity_key()\n\n\"entity_key()\" is only used in \"__enqueue_entity()\" and\nits only function is to subtract a tasks vruntime by\nits groups minvruntime.\nBefore this patch a rbtree enqueue-decision is done by\ncomparing two tasks in the style:\n\n\t\"if (entity_key(cfs_rq, se) \u003c entity_key(cfs_rq, entry))\"\n\nwhich would be\n\n\t\"if (se-\u003evruntime-cfs_rq-\u003emin_vruntime \u003c entry-\u003evruntime-cfs_rq-\u003emin_vruntime)\"\n\nor (if reducing cfs_rq-\u003emin_vruntime out)\n\n\t\"if (se-\u003evruntime \u003c entry-\u003evruntime)\"\n\nwhich is\n\n\t\"if (entity_before(se, entry))\"\n\nSo we do not need \"entity_key()\".\nIf \"entity_before()\" is inline we will also save one subtraction (only one,\nbecause \"entity_key(cfs_rq, se)\"  was cached in \"key\")\n\nSigned-off-by: Stephan Baerwolf \u003cstephan.baerwolf@tu-ilmenau.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-ns12mnd2h5w8rb9agd8hnsfk@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "045176d22f08bc0b650a028df0f62fc3c2747699",
      "tree": "8dc6dd7afa8b953a593f7302314aa032bd472b36",
      "parents": [
        "5f817d676b7b7ac4a29f5ed93063ae7a24550c12"
      ],
      "author": {
        "name": "Jan Schoenherr",
        "email": "schnhrr@cs.tu-berlin.de",
        "time": "Wed Jul 13 20:13:32 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:49 2011 +0200"
      },
      "message": "sched: Remove unused function cpu_cfs_rq()\n\nThe last reference to cpu_cfs_rq() was removed with commit 88ec22d3\n(\"sched: Remove the cfs_rq dependency from set_task_cpu()\"). Thus,\nremove this function, too.\n\nSigned-off-by: Jan Schoenherr \u003cschnhrr@cs.tu-berlin.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1310580816-10861-3-git-send-email-schnhrr@cs.tu-berlin.de\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9763b67fb9f3050c6da739105888327587c30c4d",
      "tree": "822e6a5243c3d872f86d9c9b980896bc4cd8a491",
      "parents": [
        "9598c82dcacadc3b9daa8170613fd054c6124d30"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 13 13:09:25 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:46 2011 +0200"
      },
      "message": "sched, cgroup: Optimize load_balance_fair()\n\nUse for_each_leaf_cfs_rq() instead of list_for_each_entry_rcu(), this\nachieves that load_balance_fair() only iterates those task_groups that\nactually have tasks on busiest, and that we iterate bottom-up, trying to\nmove light groups before the heavier ones.\n\nNo idea if it will actually work out to be beneficial in practice, does\nanybody have a cgroup workload that might show a difference one way or\nthe other?\n\n[ Also move update_h_load to sched_fair.c, loosing #ifdef-ery ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nLink: http://lkml.kernel.org/r/1310557009.2586.28.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9598c82dcacadc3b9daa8170613fd054c6124d30",
      "tree": "1d6c8b5c1aa9882bf9f5f64b68356baf625d23f8",
      "parents": [
        "9bbd7374361d9bfc75108c3ad1c1b6db28b1be59"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Jul 06 22:30:37 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:44 2011 +0200"
      },
      "message": "sched: Don\u0027t update shares twice on on_rq parent\n\nIn dequeue_task_fair() we bail on dequeue when we encounter a parenting entity\nwith additional weight.  However, we perform a double shares update on this\nentity as we continue the shares update traversal from this point, despite\ndequeue_entity() having already updated its queuing cfs_rq.\nAvoid this by starting from the parent when we resume.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110707053059.797714697@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9bbd7374361d9bfc75108c3ad1c1b6db28b1be59",
      "tree": "d787a387a2a2e3d8c0476b79ae57dd217098763f",
      "parents": [
        "994bf1c92270e3d7731ea08f1d1bd7a668314e60"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Tue Jul 05 19:07:21 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:01:43 2011 +0200"
      },
      "message": "sched: update correct entity\u0027s runtime in check_preempt_wakeup()\n\nWhile looking at check_preempt_wakeup() I realized that we are\npotentially updating the wrong entity in the fair-group scheduling\ncase. In this case the current task\u0027s cfs_rq may not be the same as\nthe one used for the comparison between the waking task and the\nexisting task\u0027s vruntime.\n\nThis potentially results in us using a stale vruntime in the\npre-emption decision, providing a small false preference for the\nprevious task. The effects of this are bounded since we always\nperform a hierarchal update on the tick.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/CAPM31R+2Ke2urUZKao5W92_LupdR4AYEv-EZWiJ3tG\u003dtEes2cw@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "994bf1c92270e3d7731ea08f1d1bd7a668314e60",
      "tree": "4409a21eab486e53fbe350a66e8a4f28b7a720c0",
      "parents": [
        "bd96efe17d945f0bad56d592f8686dc6309905e7",
        "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 17:59:54 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 18:00:01 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: pick up the latest scheduler fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c3f75cbd144014bea6af866a154cc2e73ab2287",
      "tree": "2a565f7ff0820269973415c5605e313cfff903b4",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 14 13:00:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:40 2011 +0200"
      },
      "message": "sched: Break out cpu_power from the sched_group structure\n\nIn order to prepare for non-unique sched_groups per domain, we need to\ncarry the cpu_power elsewhere, so put a level of indirection in.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a46dae38087e62dd5fb08a6dadf1407717ed13c",
      "tree": "1840acef6c5003aee8744b64fec3a13002ba0abd",
      "parents": [
        "36b2e922b5acd291051fab25bc7535274ce49532"
      ],
      "author": {
        "name": "Nikunj A. Dadhania",
        "email": "nikunj@linux.vnet.ibm.com",
        "time": "Tue Jun 07 15:43:22 2011 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:39:06 2011 +0200"
      },
      "message": "sched: Remove rcu_read_lock() from wake_affine()\n\nwake_affine() is only called from one path: select_task_rq_fair(),\nwhich already has the RCU read lock held.\n\nSigned-off-by: Nikunj A. Dadhania \u003cnikunj@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110607101251.777.34547.stgit@IBM-009124035060.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e876231785d82443a5ac8b6c660e9f51bc5dede",
      "tree": "cab00c4c8ec3090a41215223dde2f47483287cb7",
      "parents": [
        "d6aa8f85f16379d42c147b22b59e33b67f9ff466"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue May 17 16:21:10 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:56 2011 +0200"
      },
      "message": "sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n\nDima Zavin \u003cdima@android.com\u003e reported:\n\n\"After pulling the thread off the run-queue during a cgroup change,\nthe cfs_rq.min_vruntime gets recalculated. The dequeued thread\u0027s vruntime\nthen gets normalized to this new value. This can then lead to the thread\ngetting an unfair boost in the new group if the vruntime of the next\ntask in the old run-queue was way further ahead.\"\n\nReported-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nRecalls-having-tested-once-upon-a-time-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1305674470-23727-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1399fa7807a1a5998bbf147e80668e9950661dfa",
      "tree": "dc4e1a97f50b8e7297c82f63e1ad2b15430b33d9",
      "parents": [
        "f05998d4b80632f2cc00f108da503066ef5d38d5"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed May 18 10:09:39 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 20 14:16:50 2011 +0200"
      },
      "message": "sched: Introduce SCHED_POWER_SCALE to scale cpu_power calculations\n\nSCHED_LOAD_SCALE is used to increase nice resolution and to\nscale cpu_power calculations in the scheduler. This patch\nintroduces SCHED_POWER_SCALE and converts all uses of\nSCHED_LOAD_SCALE for scaling cpu_power to use SCHED_POWER_SCALE\ninstead.\n\nThis is a preparatory patch for increasing the resolution of\nSCHED_LOAD_SCALE, and there is no need to increase resolution\nfor cpu_power calculations.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nikunj A. Dadhania \u003cnikunj@linux.vnet.ibm.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Stephan Barwolf \u003cstephan.baerwolf@tu-ilmenau.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLink: http://lkml.kernel.org/r/1305738580-9924-3-git-send-email-ncrao@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "931aeeda0dca81152aec48f30be01e86a268bf89",
      "tree": "7314d932c1ad6f00285ae35fe82d0872b637483e",
      "parents": [
        "1437f5bca3c2d162f058cba37dfbeb20f619040d"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Tue May 03 22:31:07 2011 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 04 09:07:21 2011 +0200"
      },
      "message": "sched: Remove unused \u0027this_best_prio arg\u0027 from balance_tasks()\n\nIt\u0027s passed across multiple functions but is never really used, so\nremove it.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1304447467-29200-1-git-send-email-vdavydov@parallels.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2f36825b176f67e5c5228aa33d828bc39718811f",
      "tree": "065130f8eb74a419d8ddf1856ccc64ee7b195843",
      "parents": [
        "69c80f3e9d3c569f8a3cee94ba1a324b5a7fa6b9"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Thu Apr 14 10:30:53 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 19 10:08:38 2011 +0200"
      },
      "message": "sched: Next buddy hint on sleep and preempt path\n\nWhen a task in a taskgroup sleeps, pick_next_task starts all the way back at\nthe root and picks the task/taskgroup with the min vruntime across all\nrunnable tasks.\n\nBut when there are many frequently sleeping tasks across different taskgroups,\nit makes better sense to stay with same taskgroup for its slice period (or\nuntil all tasks in the taskgroup sleeps) instead of switching cross taskgroup\non each sleep after a short runtime.\n\nThis helps specifically where taskgroups corresponds to a process with\nmultiple threads. The change reduces the number of CR3 switches in this case.\n\nExample:\n\nTwo taskgroups with 2 threads each which are running for 2ms and\nsleeping for 1ms. Looking at sched:sched_switch shows:\n\nBEFORE: taskgroup_1 threads [5004, 5005], taskgroup_2 threads [5016, 5017]\n      cpu-soaker-5004  [003]  3683.391089\n      cpu-soaker-5016  [003]  3683.393106\n      cpu-soaker-5005  [003]  3683.395119\n      cpu-soaker-5017  [003]  3683.397130\n      cpu-soaker-5004  [003]  3683.399143\n      cpu-soaker-5016  [003]  3683.401155\n      cpu-soaker-5005  [003]  3683.403168\n      cpu-soaker-5017  [003]  3683.405170\n\nAFTER: taskgroup_1 threads [21890, 21891], taskgroup_2 threads [21934, 21935]\n      cpu-soaker-21890 [003]   865.895494\n      cpu-soaker-21935 [003]   865.897506\n      cpu-soaker-21934 [003]   865.899520\n      cpu-soaker-21935 [003]   865.901532\n      cpu-soaker-21934 [003]   865.903543\n      cpu-soaker-21935 [003]   865.905546\n      cpu-soaker-21891 [003]   865.907548\n      cpu-soaker-21890 [003]   865.909560\n      cpu-soaker-21891 [003]   865.911571\n      cpu-soaker-21890 [003]   865.913582\n      cpu-soaker-21891 [003]   865.915594\n      cpu-soaker-21934 [003]   865.917606\n\nSimilar problem is there when there are multiple taskgroups and say a task A\npreempts currently running task B of taskgroup_1. On schedule, pick_next_task\ncan pick an unrelated task on taskgroup_2. Here it would be better to give some\npreference to task B on pick_next_task.\n\nA simple (may be extreme case) benchmark I tried was tbench with 2 tbench\nclient processes with 2 threads each running on a single CPU. Avg throughput\nacross 5 50 sec runs was:\n\n BEFORE: 105.84 MB/sec\n AFTER:  112.42 MB/sec\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1302802253-25760-1-git-send-email-venki@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69c80f3e9d3c569f8a3cee94ba1a324b5a7fa6b9",
      "tree": "d802b0ade642dcad187384da9b5312d90e47ea45",
      "parents": [
        "6ddafdaab3f809b110ada253d2f2d4910ebd3ac5"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Wed Apr 13 18:21:09 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 19 10:08:37 2011 +0200"
      },
      "message": "sched: Make set_*_buddy() work on non-task entities\n\nMake set_*_buddy() work on non-task sched_entity, to facilitate the\nuse of next_buddy to cache a group entity in cases where one of the\ntasks within that entity sleeps or gets preempted.\n\nset_skip_buddy() was incorrectly comparing the policy of task that is\nyielding to be not equal to SCHED_IDLE. Yielding should happen even\nwhen task yielding is SCHED_IDLE. This change removes the policy check\non the yielding task.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1302744070-30079-2-git-send-email-venki@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ddafdaab3f809b110ada253d2f2d4910ebd3ac5",
      "tree": "366bb7513511a05b6e11ab89bfe3b2dbd1d62a03",
      "parents": [
        "3905c54f2bd2c6f937f87307987ca072eabc3e7b",
        "bd8e7dded88a3e1c085c333f19ff31387616f71a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 18 14:53:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 18 14:53:33 2011 +0200"
      },
      "message": "Merge branch \u0027sched/locking\u0027 into sched/core\n\nMerge reason: the rq locking changes are stable,\n              propagate them into the .40 queue.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3fe1698b7fe05aeb063564e71e40d09f28d8e80c",
      "tree": "d068bd6a075cd85c64a040cf9fc8e661f8be00a8",
      "parents": [
        "74f8e4b2335de45485b8d5b31a504747f13c8070"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:48 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:37 2011 +0200"
      },
      "message": "sched: Deal with non-atomic min_vruntime reads on 32bits\n\nIn order to avoid reading partial updated min_vruntime values on 32bit\nimplement a seqcount like solution.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.111378493@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74f8e4b2335de45485b8d5b31a504747f13c8070",
      "tree": "f8f8ba3e346239c44177d09620e65b18870d911f",
      "parents": [
        "7608dec2ce2004c234339bef8c8074e5e601d0e9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:47 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:36 2011 +0200"
      },
      "message": "sched: Remove rq argument to sched_class::task_waking()\n\nIn preparation of calling this without rq-\u003elock held, remove the\ndependency on the rq argument.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.071474242@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7608dec2ce2004c234339bef8c8074e5e601d0e9",
      "tree": "a855754a4fa3de6fe0d287c9d94d58d7bd6e8978",
      "parents": [
        "013fdb8086acaae5f8eb96f9ad48fcd98882ac46"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:46 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:36 2011 +0200"
      },
      "message": "sched: Drop the rq argument to sched_class::select_task_rq()\n\nIn preparation of calling select_task_rq() without rq-\u003elock held, drop\nthe dependency on the rq argument.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.031077745@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a6c75f2f8d988ecfecf971f98f1cb6fc4de522fe",
      "tree": "0524765c72bd13c0d4190c2dc17ac1a01c9269ad",
      "parents": [
        "822ff793c34a5d4c8b5f3f9ce932602233d96464"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:09:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 12:58:20 2011 +0200"
      },
      "message": "sched: Avoid using sd-\u003elevel\n\nDon\u0027t use sd-\u003elevel for identifying properties of the domain.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.350174079@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dce840a08702bd13a9a186e07e63d1ef82256b5e",
      "tree": "168bb98aed7f5761ebe31aa92c34959e9d0f238a",
      "parents": [
        "a9c9a9b6bff27ac9c746344a9c1a19bf3327002c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 07 14:09:50 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 12:58:19 2011 +0200"
      },
      "message": "sched: Dynamically allocate sched_domain/sched_group data-structures\n\nInstead of relying on static allocations for the sched_domain and\nsched_group trees, dynamically allocate and RCU free them.\n\nAllocating this dynamically also allows for some build_sched_groups()\nsimplification since we can now (like with other simplifications) rely\non the sched_domain tree instead of hard-coded knowledge.\n\nOne tricky to note is that detach_destroy_domains() needs to hold\nrcu_read_lock() over the entire tear-down, per-cpu is not sufficient\nsince that can lead to partial sched_group existance (could possibly\nbe solved by doing the tear-down backwards but this is much more\nrobust).\n\nA concequence of the above is that we can no longer print the\nsched_domain debug stuff from cpu_attach_domain() since that might now\nrun with preemption disabled (due to classic RCU etc.) and\nsched_domain_debug() does some GFP_KERNEL allocations.\n\nAnother thing to note is that we now fully rely on normal RCU and not\nRCU-sched, this is because with the new and exiting RCU flavours we\ngrew over the years BH doesn\u0027t necessarily hold off RCU-sched grace\nperiods (-rt is known to break this). This would in fact already cause\nus grief since we do sched_domain/sched_group iterations from softirq\ncontext.\n\nThis patch is somewhat larger than I would like it to be, but I didn\u0027t\nfind any means of shrinking/splitting this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110407122942.245307941@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4ad9bd208c98f32a6f9136618e0b8bebe3fb370",
      "tree": "1cefacea2cc5d95f148a0036b1b13996ba8ed04f",
      "parents": [
        "b30aef17f71cf9e24b10c11cbb5e5f0ebe8a85ab"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Apr 08 12:53:09 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 11:08:55 2011 +0200"
      },
      "message": "sched: Eliminate dead code from wakeup_gran()\n\ncalc_delta_fair() checks NICE_0_LOAD already, delete duplicate check.\n\nSigned-off-by: Shaohua Li\u003cshaohua.li@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLink: http://lkml.kernel.org/r/1302238389.3981.92.camel@sli10-conroe\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b30aef17f71cf9e24b10c11cbb5e5f0ebe8a85ab",
      "tree": "0e5e0e0d1d93edf934f58b116ee0c4e81db01e72",
      "parents": [
        "b0432d8f162c7d5d9537b4cb749d44076b76a783"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Fri Apr 08 12:20:16 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 11:08:54 2011 +0200"
      },
      "message": "sched: Fix erroneous all_pinned logic\n\nThe scheduler load balancer has specific code to deal with cases of\nunbalanced system due to lots of unmovable tasks (for example because of\nhard CPU affinity). In those situation, it excludes the busiest CPU that\nhas pinned tasks for load balance consideration such that it can perform\nsecond 2nd load balance pass on the rest of the system.\n\nThis all works as designed if there is only one cgroup in the system.\n\nHowever, when we have multiple cgroups, this logic has false positives and\ntriggers multiple load balance passes despite there are actually no pinned\ntasks at all.\n\nThe reason it has false positives is that the all pinned logic is deep in\nthe lowest function of can_migrate_task() and is too low level:\n\nload_balance_fair() iterates each task group and calls balance_tasks() to\nmigrate target load. Along the way, balance_tasks() will also set a\nall_pinned variable. Given that task-groups are iterated, this all_pinned\nvariable is essentially the status of last group in the scanning process.\nTask group can have number of reasons that no load being migrated, none\ndue to cpu affinity. However, this status bit is being propagated back up\nto the higher level load_balance(), which incorrectly think that no tasks\nwere moved.  It kick off the all pinned logic and start multiple passes\nattempt to move load onto puller CPU.\n\nTo fix this, move the all_pinned aggregation up at the iterator level.\nThis ensures that the status is aggregated over all task-groups, not just\nlast one in the list.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTi\u003dernzNawaR5tJZEsV_QVnfxqXmsQ@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0432d8f162c7d5d9537b4cb749d44076b76a783",
      "tree": "98b94ec55f6d18935aedbc9ab898705ad252b939",
      "parents": [
        "4263a2f1dad8c8e7ce2352a0cbc882c2b0c044a9"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Thu Apr 07 17:23:22 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 11 11:08:54 2011 +0200"
      },
      "message": "sched: Fix sched-domain avg_load calculation\n\nIn function find_busiest_group(), the sched-domain avg_load isn\u0027t\ncalculated at all if there is a group imbalance within the domain. This\nwill cause erroneous imbalance calculation.\n\nThe reason is that calculate_imbalance() sees sds-\u003eavg_load \u003d 0 and it\nwill dump entire sds-\u003emax_load into imbalance variable, which is used\nlater on to migrate entire load from busiest CPU to the puller CPU.\n\nThis has two really bad effect:\n\n1. stampede of task migration, and they won\u0027t be able to break out\n   of the bad state because of positive feedback loop: large load\n   delta -\u003e heavier load migration -\u003e larger imbalance and the cycle\n   goes on.\n\n2. severe imbalance in CPU queue depth.  This causes really long\n   scheduling latency blip which affects badly on application that\n   has tight latency requirement.\n\nThe fix is to have kernel calculate domain avg_load in both cases. This\nwill ensure that imbalance calculation is always sensible and the target\nis usually half way between busiest and puller CPU.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110408002322.3A0D812217F@elm.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b9686ff4ddfdf45662024edd567920e6db87beb",
      "tree": "1d7e1d735121ea3c44ab72a24506151e4e88a36e",
      "parents": [
        "df9b29d13e043e134e65b9f66b68fa7eae5db8f0",
        "f994d99cf140dbb637e49882891c89b3fd84becd",
        "49c022e657fbe661460d191fbe776a387132e2b3",
        "09552b2696896dbb715be0caf91b23276f9139ba",
        "4f5058c3b71ed5930bb2b478c4d5dbc799dd9ad1",
        "f64fac86f9cd375743ed34385efc8a7732fa8e7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:12:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:12:58 2011 -0700"
      },
      "message": "Merge branches \u0027x86-fixes-for-linus\u0027, \u0027sched-fixes-for-linus\u0027, \u0027timers-fixes-for-linus\u0027, \u0027irq-fixes-for-linus\u0027 and \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86-32, fpu: Fix FPU exception handling on non-SSE systems\n  x86, hibernate: Initialize mmu_cr4_features during boot\n  x86-32, NUMA: Fix ACPI NUMA init broken by recent x86-64 change\n  x86: visws: Fixup irq overhaul fallout\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Clean up rebalance_domains() load-balance interval calculation\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86/mrst/vrtc: Fix boot crash in mrst_rtc_init()\n  rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm()\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Fix cpumask leak in __setup_irq()\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf probe: Fix listing incorrect line number with inline function\n  perf probe: Fix to find recursively inlined function\n  perf probe: Fix multiple --vars options behavior\n  perf probe: Fix to remove redundant close\n  perf probe: Fix to ensure function declared file\n"
    },
    {
      "commit": "42933bac11e811f02200c944d8562a15f8ec4ff0",
      "tree": "fcdd9afe56eb0e746565ddd1f92f22d36678b843",
      "parents": [
        "2b9accbee563f535046ff2cd382d0acaa92e130c",
        "25985edcedea6396277003854657b5f3cb31a628"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:14:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6\n\n* \u0027for-linus2\u0027 of git://git.profusion.mobi/users/lucas/linux-2.6:\n  Fix common misspellings\n"
    },
    {
      "commit": "49c022e657fbe661460d191fbe776a387132e2b3",
      "tree": "487b713816a5ff3d81437aeecf111ffa414f6ede",
      "parents": [
        "b2a8b4b81966094703088a7bc76a313af841924d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 10:14:25 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 05 10:29:36 2011 +0200"
      },
      "message": "sched: Clean up rebalance_domains() load-balance interval calculation\n\nInstead of the possible multiple-evaluation of num_online_cpus()\nin rebalance_domains() that Linus reported, avoid it altogether\nin the normal case since it\u0027s implemented with a Hamming weight\nfunction over a cpu bitmask which can be darn expensive for those\nwith big iron.\n\nThis also makes it cleaner, smaller and documents the code.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1301991265.2225.12.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "3436ae1298cb22d722a6520fc97f112dd767a9e1",
      "tree": "ba05a2b0a80157f9eb19e34b0ac54b9dd279600b",
      "parents": [
        "e2495b577324938f0209b4f895c5f205c7e47854"
      ],
      "author": {
        "name": "Sisir Koppaka",
        "email": "sisir.koppaka@gmail.com",
        "time": "Sat Mar 26 18:22:55 2011 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 31 13:00:37 2011 +0200"
      },
      "message": "sched: Fix rebalance interval calculation\n\nThe interval for checking scheduling domains if they are due to be\nbalanced currently depends on boot state NR_CPUS, which may not\naccurately reflect the number of online CPUs at the time of check.\n\nThus replace NR_CPUS with num_online_cpus().\n\n (ed: Should only affect those who set NR_CPUS really high, such as 4096\n      or so :-)\n\nSigned-off-by: Sisir Koppaka \u003csisir.koppaka@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cAANLkTikqHWid2Q93F5U5Qw5snJH8C5PXoa7J6\u003d6hYO94@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d1cafd8b56ea726c10a5a104de57cc3ed8fa953",
      "tree": "638ba81859114b2bda8b4899cf73cc20a8a31553",
      "parents": [
        "c02aa73b1d18e43cfd79c2f193b225e84ca497c8"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Tue Mar 01 16:28:21 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 11:14:31 2011 +0100"
      },
      "message": "sched: Resched proper CPU on yield_to()\n\nyield_to_task_fair() has code to resched the CPU of yielding task when the\nintention is to resched the CPU of the task that is being yielded to.\n\nChange here fixes the problem and also makes the resched conditional on\nrq !\u003d p_rq.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1299025701-22168-1-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2f5c9ab79f78e8b91ac993e0543d65b661dd19b",
      "tree": "9fcdae7cad6745d02d5389ab591b454bb4c17b60",
      "parents": [
        "e0a92c17470775cd85bac52f5372ccc3dc58254a"
      ],
      "author": {
        "name": "Darren Hart",
        "email": "dvhart@linux.intel.com",
        "time": "Tue Feb 22 13:04:33 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 11:14:29 2011 +0100"
      },
      "message": "sched: Allow SCHED_BATCH to preempt SCHED_IDLE tasks\n\nPerform the test for SCHED_IDLE before testing for SCHED_BATCH (and\nensure idle tasks don\u0027t preempt idle tasks) so the non-interactive,\nbut still important, SCHED_BATCH tasks will run in favor of the very\nlow priority SCHED_IDLE tasks.\n\nSigned-off-by: Darren Hart \u003cdvhart@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Richard Purdie \u003crichard.purdie@linuxfoundation.org\u003e\nLKML-Reference: \u003c1298408674-3130-2-git-send-email-dvhart@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "866ab43efd325fae8889ea77a744d03f2b957e38",
      "tree": "450263aa8a30abb4a0ab2812643aa7a83711df05",
      "parents": [
        "cc57aa8f4b3bece8c26c7929728edcc5fa6b5aed"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 21 18:56:47 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:33:57 2011 +0100"
      },
      "message": "sched: Fix the group_imb logic\n\nOn a 2*6*2 machine something like:\n\n taskset -c 3-11 bash -c \u0027for ((i\u003d0;i\u003c9;i++)) do while :; do :; done \u0026 done\u0027\n\n_should_ result in 9 busy CPUs, each running 1 task.\n\nHowever it didn\u0027t quite work reliably, most of the time one cpu of the\nsecond socket (6-11) would be idle and one cpu of the first socket\n(0-5) would have two tasks on it.\n\nThe group_imb logic is supposed to deal with this and detect when a\nparticular group is imbalanced (like in our case, 0-2 are idle but 3-5\nwill have 4 tasks on it).\n\nThe detection phase needed a bit of a tweak as it was too weak and\nrequired more than 2 avg weight tasks difference between idle and busy\ncpus in the group which won\u0027t trigger for our test-case. So cure that\nto be one or more avg task weight difference between cpus.\n\nOnce the detection phase worked, it was then defeated by the f_b_g()\ntests trying to avoid ping-pongs. In particular, this_load \u003e\u003d max_load\ntriggered because the pulling cpu (the (first) idle cpu in on the\nsecond socket, say 6) would find this_load to be 5 and max_load to be\n4 (there\u0027d be 5 tasks running on our socket and only 4 on the other\nsocket).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cc57aa8f4b3bece8c26c7929728edcc5fa6b5aed",
      "tree": "476c6d4b2d1e2d2cc77c35a8066c284877c7b5b3",
      "parents": [
        "c186fafe9aba87c1a93df8c7120a6ae01fe435ad"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 21 18:55:32 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:33:56 2011 +0100"
      },
      "message": "sched: Clean up some f_b_g() comments\n\nThe existing comment tends to grow state (as it already has), split it\nup and place it near the actual tests.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c186fafe9aba87c1a93df8c7120a6ae01fe435ad",
      "tree": "e6cbd31f1dd720d0f614df87f3e5b2876cf32a84",
      "parents": [
        "d927dc937910ad8c7350266cac70e42a5f0b48cf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 21 18:52:53 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 23 11:33:55 2011 +0100"
      },
      "message": "sched: Clean up remnants of sd_idle\n\nWith the wholesale removal of the sd_idle SMT logic we can clean up\nsome more.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "46e49b3836c7cd2ae5b5fe76fa981d0d292a52fe",
      "tree": "25c9a3fa6ad6f45fb8553e0ebe52b973a02f4ef6",
      "parents": [
        "48fa4b8ecf683f5e411303553da9e186e8b8406e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Feb 14 14:38:50 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 13:33:20 2011 +0100"
      },
      "message": "sched: Wholesale removal of sd_idle logic\n\nsd_idle logic was introduced way back in 2005 (commit 5969fe06),\nas an HT optimization.\n\nAs per the discussion in the thread here:\n\n  lkml - sched: Resolve sd_idle and first_idle_cpu Catch-22 - v1\n  https://patchwork.kernel.org/patch/532501/\n\nThe capacity based logic in the load balancer right now handles this\nin a much cleaner way, handling more than 2 SMT siblings etc, and sd_idle\ndoes not seem to bring any additional benefits. sd_idle logic also has\nsome bugs that has performance impact. Here is the patch that removes\nthe sd_idle logic altogether.\n\nAlso, there was a dependency of sched_mc_power_savings \u003d\u003d 2, with sd_idle\nlogic.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1297723130-693-1-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d95f412200652694e63e64bfd49f0ae274a54479",
      "tree": "d2abb7b2c635bbc9f344b45051b6186b1317718c",
      "parents": [
        "ac53db596cc08ecb8040cfb6f71ae40c6f2041c4"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Feb 01 09:50:51 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:33 2011 +0100"
      },
      "message": "sched: Add yield_to(task, preempt) functionality\n\nCurrently only implemented for fair class tasks.\n\nAdd a yield_to_task method() to the fair scheduling class. allowing the\ncaller of yield_to() to accelerate another thread in it\u0027s thread group,\ntask group.\n\nImplemented via a scheduler hint, using cfs_rq-\u003enext to encourage the\ntarget being selected.  We can rely on pick_next_entity to keep things\nfair, so noone can accelerate a thread that has already used its fair\nshare of CPU time.\n\nThis also means callers should only call yield_to when they really\nmean it.  Calling it too often can result in the scheduler just\nignoring the hint.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201095051.4ddb7738@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac53db596cc08ecb8040cfb6f71ae40c6f2041c4",
      "tree": "c263b558772213530532026af6fa9e34a8f88375",
      "parents": [
        "2c13c919d9e9a3db9896143a501f83dcbbe1ced4"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Feb 01 09:51:03 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:33 2011 +0100"
      },
      "message": "sched: Use a buddy to implement yield_task_fair()\n\nUse the buddy mechanism to implement yield_task_fair.  This\nallows us to skip onto the next highest priority se at every\nlevel in the CFS tree, unless doing so would introduce gross\nunfairness in CPU time distribution.\n\nWe order the buddy selection in pick_next_entity to check\nyield first, then last, then next.  We need next to be able\nto override yield, because it is possible for the \"next\" and\n\"yield\" task to be different processen in the same sub-tree\nof the CFS tree.  When they are, we need to go into that\nsub-tree regardless of the \"yield\" hint, and pick the correct\nentity once we get to the right level.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201095103.3a79e92a@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c13c919d9e9a3db9896143a501f83dcbbe1ced4",
      "tree": "4c326d2384ee0d09991cf5246baead5cfd08f3f9",
      "parents": [
        "725e7580aaf98e9f7b22b8ccfc640ad0c09e2b08"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Feb 01 09:48:37 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:32 2011 +0100"
      },
      "message": "sched: Limit the scope of clear_buddies\n\nThe clear_buddies function does not seem to play well with the concept\nof hierarchical runqueues.  In the following tree, task groups are\nrepresented by \u0027G\u0027, tasks by \u0027T\u0027, next by \u0027n\u0027 and last by \u0027l\u0027.\n\n     (nl)\n    /    \\\n   G(nl)  G\n   / \\     \\\n T(l) T(n)  T\n\nThis situation can arise when a task is woken up T(n), and the previously\nrunning task T(l) is marked last.\n\nWhen clear_buddies is called from either T(l) or T(n), the next and last\nbuddies of the group G(nl) will be cleared.  This is not the desired\nresult, since we would like to be able to find the other type of buddy\nin many cases.\n\nThis especially a worry when implementing yield_task_fair through the\nbuddy system.\n\nThe fix is simple: only clear the buddy type that the task itself\nis indicated to be.  As an added bonus, we stop walking up the tree\nwhen the buddy has already been cleared or pointed elsewhere.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.coM\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201094837.6b0962a9@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "725e7580aaf98e9f7b22b8ccfc640ad0c09e2b08",
      "tree": "8717e0fce19f74509ac1dffa91be95c3ef76c1e5",
      "parents": [
        "6ea72f12069306b235151c5b05ac0cca7e1dedfa"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Feb 01 09:47:15 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 14:20:32 2011 +0100"
      },
      "message": "sched: Check the right -\u003enr_running in yield_task_fair()\n\nWith CONFIG_FAIR_GROUP_SCHED, each task_group has its own cfs_rq.\nYielding to a task from another cfs_rq may be worthwhile, since\na process calling yield typically cannot use the CPU right now.\n\nTherefor, we want to check the per-cpu nr_running, not the\ncgroup local one.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110201094715.798c4f86@annuminas.surriel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da7a735e51f9622eb3e1672594d4a41da01d7e4f",
      "tree": "27623dcd39c52a80b79e0ee86ab426fc9c7e2b46",
      "parents": [
        "a8941d7ec81678fb69aea7183338175f112f3e0d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jan 17 17:03:27 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:22 2011 +0100"
      },
      "message": "sched: Fix switch_from_fair()\n\nWhen a task is taken out of the fair class we must ensure the vruntime\nis properly normalized because when we put it back in it will assume\nto be normalized.\n\nThe case that goes wrong is when changing away from the fair class\nwhile sleeping. Sleeping tasks have non-normalized vruntime in order\nto make sleeper-fairness work. So treat the switch away from fair as a\nwakeup and preserve the relative vruntime.\n\nAlso update sysrq-n to call the -\u003eswitch_{to,from} methods.\n\nReported-by: Onkalo Samu \u003csamu.p.onkalo@nokia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f07333bf6ee66d9b49286cec4371cf375e745b7a",
      "tree": "03a1e9968eadf2465b6fc04fb8c1ab67327ea0f2",
      "parents": [
        "6d5ab2932a21ea54406ab95c43ecff90a3eddfda"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:03 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:19 2011 +0100"
      },
      "message": "sched: Avoid expensive initial update_cfs_load()\n\nSince cfs-\u003e{load_stamp,load_last} are zero-initalized the initial load update\nwill consider the delta to be \u0027since the beginning of time\u0027.\n\nThis results in a lot of pointless divisions to bring this large period to be\nwithin the sysctl_sched_shares_window.\n\nFix this by initializing load_stamp to be 1 at cfs_rq initialization, this\nallows for an initial load_stamp \u003e load_last which then lets standard idle\ntruncation proceed.\n\nWe avoid spinning (and slightly improve consistency) by fixing delta to be\n[period - 1] in this path resulting in a slightly more predictable shares ramp.\n(Previously the amount of idle time preserved by the overflow would range between\n[period/2,period-1].)\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044852.102126037@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d5ab2932a21ea54406ab95c43ecff90a3eddfda",
      "tree": "0d2ad00378aec0888426997f8f8dc5d7a3b8a602",
      "parents": [
        "05ca62c6ca17f39b88fa956d5ebc1fa6e93ad5e3"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:01 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:19 2011 +0100"
      },
      "message": "sched: Simplify update_cfs_shares parameters\n\nRe-visiting this: Since update_cfs_shares will now only ever re-weight an\nentity that is a relative parent of the current entity in enqueue_entity; we\ncan safely issue the account_entity_enqueue relative to that cfs_rq and avoid\nthe requirement for special handling of the enqueue case in update_cfs_shares.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.915214637@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05ca62c6ca17f39b88fa956d5ebc1fa6e93ad5e3",
      "tree": "a56f4f47dd23ef65ebb5c579adb1fbb29ba3faed",
      "parents": [
        "b815f1963e47b9b69bb17e0588bd5af5b1114ae0"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:02 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:03 2011 +0100"
      },
      "message": "sched: Use rq-\u003eclock_task instead of rq-\u003eclock for correctly maintaining load averages\n\nThe delta in clock_task is a more fair attribution of how much time a tg has\nbeen contributing load to the current cpu.\n\nWhile not really important it also means we\u0027re more in sync (by magnitude)\nwith respect to periodic updates (since __update_curr deltas are clock_task\nbased).\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044852.007092349@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b815f1963e47b9b69bb17e0588bd5af5b1114ae0",
      "tree": "b7c087fbf80f0e46fabfc919c619827e73963592",
      "parents": [
        "e37b6a7b27b400c3aa488db8c6629a05095bc79c"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:00 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:02 2011 +0100"
      },
      "message": "sched: Fix/remove redundant cfs_rq checks\n\nSince updates are against an entity\u0027s queuing cfs_rq it\u0027s not possible to\nenter update_cfs_{shares,load} with a NULL cfs_rq.  (Indeed, update_cfs_load\nwould crash prior to the check if we did anyway since we load is examined\nduring the initializers).\n\nAlso, in the update_cfs_load case there\u0027s no point\nin maintaining averages for rq-\u003ecfs_rq since we don\u0027t perform shares\ndistribution at that level -- NULL check is replaced accordingly.\n\nThanks to Dan Carpenter for pointing out the deference before NULL check.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.825284940@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e37b6a7b27b400c3aa488db8c6629a05095bc79c",
      "tree": "b27ed41b74eb7e69d2e6b02cc659c4fab3ef12ef",
      "parents": [
        "6663050edd9c2e8b1e1f55c09459144d84c045f0"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:44:59 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:01 2011 +0100"
      },
      "message": "sched: Fix sign under-flows in wake_affine\n\nWhile care is taken around the zero-point in effective_load to not exceed\nthe instantaneous rq-\u003eweight, it\u0027s still possible (e.g. using wake_idx !\u003d 0)\nfor (load + effective_load) to underflow.\n\nIn this case the comparing the unsigned values can result in incorrect balanced\ndecisions.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.734245014@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ff6dcac735704824c1dff64dc6863c390d364cc",
      "tree": "6ccbdd6f80da38f104199538f06f1bf2a5cb235e",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Mon Jan 24 15:33:52 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 24 11:47:50 2011 +0100"
      },
      "message": "sched: Fix poor interactivity on UP systems due to group scheduler nice tune bug\n\nMichael Witten and Christian Kujau reported that the autogroup\nscheduling feature hurts interactivity on their UP systems.\n\nIt turns out that this is an older bug in the group scheduling code,\nand the wider appeal provided by the autogroup feature exposed it\nmore prominently.\n\nWhen on UP with FAIR_GROUP_SCHED enabled, tune shares\nonly affect tg-\u003eshares, but is not reflected in\ntg-\u003ese-\u003eload. The reason is that update_cfs_shares()\ndoes nothing on UP.\n\nSo introduce update_cfs_shares() for UP \u0026\u0026 FAIR_GROUP_SCHED.\n\nThis issue was found when enable autogroup scheduling was enabled,\nbut it is an older bug that also exists on cgroup.cpu on UP.\n\nReported-and-Tested-by: Michael Witten \u003cmfwitten@gmail.com\u003e\nReported-and-Tested-by: Christian Kujau \u003cchristian@nerdbynature.de\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20110124073352.GA24186@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7d8294415f0ce4254827d4a2a5ee88b00be52a8",
      "tree": "9f8024d6566bc391fcb2aced8427db81ca4e9078",
      "parents": [
        "fce2097983d914ea8c2338efc6f6e9bb737f6ae4"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Jan 05 05:41:17 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 18 15:09:44 2011 +0100"
      },
      "message": "sched: Fix signed unsigned comparison in check_preempt_tick()\n\nSigned unsigned comparison may lead to superfluous resched if leftmost\nis right of the current task, wasting a few cycles, and inadvertently\n_lengthening_ the current task\u0027s slice.\n\nReported-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1294202477.9384.5.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "977dda7c9b540f48b228174346d8b31542c1e99f",
      "tree": "77d40bcc72c1590dfcaeadb60e92a270bd204c52",
      "parents": [
        "c9b5f501ef1580faa30c40c644b7691870462201"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 14 17:57:50 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 18 15:09:38 2011 +0100"
      },
      "message": "sched: Update effective_load() to use global share weights\n\nPreviously effective_load would approximate the global load weight present on\na group taking advantage of:\n\nentity_weight \u003d tg-\u003eshares ( lw / global_lw ), where entity_weight was provided\nby tg_shares_up.\n\nThis worked (approximately) for an \u0027empty\u0027 (at tg level) cpu since we would\nplace boost load representative of what a newly woken task would receive.\n\nHowever, now that load is instantaneously updated this assumption is no longer\ntrue and the load calculation is rather incorrect in this case.\n\nFix this (and improve the general case) by re-writing effective_load to take\nadvantage of the new shares distribution code.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110115015817.069769529@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "19e5eebb8eaa5ca3ff8aa18cb57ccb7a9f67277d",
      "tree": "652d43e29e101433fbb100b7af8ef0c35e420d7b",
      "parents": [
        "43365bd7ff37979d2afdccbe953299ed64a4649b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Dec 15 19:10:18 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 19 16:36:30 2010 +0100"
      },
      "message": "sched: Fix interactivity bug by charging unaccounted run-time on entity re-weight\n\nMike Galbraith reported poor interactivity[*] when the new shares distribution\ncode was combined with autogroups.\n\nThe root cause turns out to be a mis-ordering of accounting accrued execution\ntime and shares updates.  Since update_curr() is issued hierarchically,\nupdating the parent entity weights to reflect child enqueue/dequeue results in\nthe parent\u0027s unaccounted execution time then being accrued (vs vruntime) at the\nnew weight as opposed to the weight present at accumulation.\n\nWhile this doesn\u0027t have much effect on processes with timeslices that cross a\ntick, it is particularly problematic for an interactive process (e.g. Xorg)\nwhich incurs many (tiny) timeslices.  In this scenario almost all updates are\nat dequeue which can result in significant fairness perturbation (especially if\nit is the only thread, resulting in potential {tg-\u003eshares, MIN_SHARES}\ntransitions).\n\nCorrect this by ensuring unaccounted time is accumulated prior to manipulating\nan entity\u0027s weight.\n\n[*] http://xkcd.com/619/ is perversely Nostradamian here.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20101216031038.159704378@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43365bd7ff37979d2afdccbe953299ed64a4649b",
      "tree": "b90aa8813d0f92cae88bc26604e48dea0ee9f87d",
      "parents": [
        "ca680888d5d0d03862ec311a83c6a1c7a1e00a01"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Dec 15 19:10:17 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 19 16:36:22 2010 +0100"
      },
      "message": "sched: Move periodic share updates to entity_tick()\n\nLong running entities that do not block (dequeue) require periodic updates to\nmaintain accurate share values.  (Note: group entities with several threads are\nquite likely to be non-blocking in many circumstances).\n\nBy virtue of being long-running however, we will see entity ticks (otherwise\nthe required update occurs in dequeue/put and we are done).  Thus we can move\nthe detection (and associated work) for these updates into the periodic path.\n\nThis restores the \u0027atomicity\u0027 of update_curr() with respect to accounting.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101216031038.067028969@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e9255e6a2141e050d51bc4d96dbef494a87d653",
      "tree": "f190b142830153eaab05555a93c4f71a144ba3d4",
      "parents": [
        "5091faa449ee0b7d73bc296a93bca9540fc51d0a",
        "6313e3c21743cc88bb5bd8aa72948ee1e83937b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 08 20:15:26 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 08 20:15:29 2010 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: we want to queue up dependent cleanup\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22a867d81707b0a2720bb5f65255265b95d30526",
      "tree": "7ec19b155b50b13ae95244c2bfa16aea4920c4f6",
      "parents": [
        "5bb6b1ea67a73f0665a41726dd7138977b992c6c",
        "3561d43fd289f590fdae672e5eb831b8d5cf0bf6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 26 15:03:27 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 26 15:05:21 2010 +0100"
      },
      "message": "Merge commit \u0027v2.6.37-rc3\u0027 into sched/core\n\nMerge reason: Pick up latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70caf8a6c13c2279b35f2ad6b644815533d6c476",
      "tree": "eae7e189473aa028eaced1a5a2b38bef4f2c9587",
      "parents": [
        "28d0686cf7b14e30243096bd874d3f80591ed392"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Nov 20 00:53:51 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 23 10:29:07 2010 +0100"
      },
      "message": "sched: Fix UP build breakage\n\nThe recent cgroup-scheduling rework caused a UP build problem.\n\nCc: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6b5591829bd348a5fbe1c428d28dea00621cdba",
      "tree": "d8f8131c4d8033685b2e77bffee6cdcf0a975d38",
      "parents": [
        "3b3d190ec3683d568fd2ebaead5e1ec7f97b6e37"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:09 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:50 2010 +0100"
      },
      "message": "sched: Allow update_cfs_load() to update global load\n\nRefactor the global load updates from update_shares_cpu() so that\nupdate_cfs_load() can update global load when it is more than ~10%\nout of sync.\n\nThe new global_load parameter allows us to force an update, regardless of\nthe error factor so that we can synchronize w/ update_shares().\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.377473595@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b3d190ec3683d568fd2ebaead5e1ec7f97b6e37",
      "tree": "6839bc473200dcb69c5de998921684ac569ce18b",
      "parents": [
        "c66eaf619c0c7937e9ded160ae83b5a7a6b19b56"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:08 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:49 2010 +0100"
      },
      "message": "sched: Implement demand based update_cfs_load()\n\nWhen the system is busy, dilation of rq-\u003enext_balance makes lb-\u003eupdate_shares()\ninsufficiently frequent for threads which don\u0027t sleep (no dequeue/enqueue\nupdates).  Adjust for this by making demand based updates based on the\naccumulation of execution time sufficient to wrap our averaging window.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.291159744@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c66eaf619c0c7937e9ded160ae83b5a7a6b19b56",
      "tree": "04fca9a8b4c017efa00d7e7077a1aba9d454248a",
      "parents": [
        "a7a4f8a752ec734b2eab904fc863d5dc873de338"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Mon Nov 15 15:47:07 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:49 2010 +0100"
      },
      "message": "sched: Update shares on idle_balance\n\nSince shares updates are no longer expensive and effectively local, update them\nat idle_balance().  This allows us to more quickly redistribute shares to\nanother cpu when our load becomes idle.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234938.204191702@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "a7a4f8a752ec734b2eab904fc863d5dc873de338"
}
