)]}'
{
  "log": [
    {
      "commit": "72494504498ff5ac2f086a83473d4dd1ca490bd3",
      "tree": "7f1ceab43de3580235f1a56f2ae865901c09e4d7",
      "parents": [
        "cd96891d48a945ca2011fbeceda73813d6286195",
        "a841f8cef4bb124f0f5563314d0beaf2e1249d72"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 14:59:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 14:59:29 2012 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Ingo Molnar.\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched: Fix the relax_domain_level boot parameter\n  sched: Validate assumptions in sched_init_numa()\n  sched: Always initialize cpu-power\n  sched: Fix domain iteration\n  sched/rt: Fix lockdep annotation within find_lock_lowest_rq()\n  sched/numa: Load balance between remote nodes\n  sched/x86: Calculate booted cores after construction of sibling_mask\n"
    },
    {
      "commit": "cd96891d48a945ca2011fbeceda73813d6286195",
      "tree": "c859442b2364adfa4eec29f516ffbe9c316a81bf",
      "parents": [
        "8f53369b753f5f4c7684c2eb0b592152abb1dd00"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Fri Jun 08 13:18:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 08 14:59:10 2012 -0700"
      },
      "message": "sched/fair: fix lots of kernel-doc warnings\n\nFix lots of new kernel-doc warnings in kernel/sched/fair.c:\n\n  Warning(kernel/sched/fair.c:3625): No description found for parameter \u0027env\u0027\n  Warning(kernel/sched/fair.c:3625): Excess function parameter \u0027sd\u0027 description in \u0027update_sg_lb_stats\u0027\n  Warning(kernel/sched/fair.c:3735): No description found for parameter \u0027env\u0027\n  Warning(kernel/sched/fair.c:3735): Excess function parameter \u0027sd\u0027 description in \u0027update_sd_pick_busiest\u0027\n  Warning(kernel/sched/fair.c:3735): Excess function parameter \u0027this_cpu\u0027 description in \u0027update_sd_pick_busiest\u0027\n  .. more warnings\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3decf0dfbc95736b7c0ab68fa4e5854c4734da9",
      "tree": "c21748af2b4c7e4b738cefd2076c1ccc6ed2c664",
      "parents": [
        "c1174876874dcf8986806e4dad3d7d07af20b439"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 31 12:05:32 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Jun 06 16:52:27 2012 +0200"
      },
      "message": "sched: Always initialize cpu-power\n\nOften when we run into mis-shapen topologies the balance iteration\nfails to update the cpu power properly and we\u0027ll end up in /0 traps.\n\nAlways initialize the cpu-power to a semi-sane value so that we can\nat least boot the machine, even if the load-balancer might not\nfunction correctly.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-3lbhyj25sr169ha7z3qht5na@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c1174876874dcf8986806e4dad3d7d07af20b439",
      "tree": "7e2ea14ba9421bddd63e1810716f1929c753e28b",
      "parents": [
        "7f1b43936f0ecad14770634c021cf4a929aec74d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 31 14:47:33 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Jun 06 16:52:26 2012 +0200"
      },
      "message": "sched: Fix domain iteration\n\nWeird topologies can lead to asymmetric domain setups. This needs\nfurther consideration since these setups are typically non-minimal\ntoo.\n\nFor now, make it work by adding an extra mask selecting which CPUs\nare allowed to iterate up.\n\nThe topology that triggered it is the one from David Rientjes:\n\n\t10 20 20 30\n\t20 10 20 20\n\t20 20 10 20\n\t30 20 20 10\n\nresulting in boxes that wouldn\u0027t even boot.\n\nReported-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-3p86l9cuaqnxz7uxsojmz5rm@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "29baa7478ba47d746e3625c91d3b2afbf46b4312",
      "tree": "a902e53baab64d89c07561694d171c4f8f4d1843",
      "parents": [
        "b654f7de41b0e3903ee2b51d3b8db77fe52ce728"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Apr 23 12:11:21 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 14:02:25 2012 +0200"
      },
      "message": "sched: Move nr_cpus_allowed out of \u0027struct sched_rt_entity\u0027\n\nSince nr_cpus_allowed is used outside of sched/rt.c and wants to be\nused outside of there more, move it to a more natural site.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-kr61f02y9brwzkh6x53pdptm@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b654f7de41b0e3903ee2b51d3b8db77fe52ce728",
      "tree": "cdcd46a04d8b59d75045f1d3ae753e4843dbe2c0",
      "parents": [
        "74a5ce20e6eeeb3751340b390e7ac1d1d07bbf55"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 22 14:04:28 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 14:02:24 2012 +0200"
      },
      "message": "sched: Make sure to not re-read variables after validation\n\nWe could re-read rq-\u003ert_avg after we validated it was smaller than\ntotal, invalidating the check and resulting in an unintended negative.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nLink: http://lkml.kernel.org/r/1337688268.9698.29.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "74a5ce20e6eeeb3751340b390e7ac1d1d07bbf55",
      "tree": "ebbef56666aa11303eafbfb6adbfce56e7a4c605",
      "parents": [
        "2ea45800d8e1c3c51c45a233d6bd6289a297a386"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed May 23 18:00:43 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 14:02:24 2012 +0200"
      },
      "message": "sched: Fix SD_OVERLAP\n\nSD_OVERLAP exists to allow overlapping groups, overlapping groups\nappear in NUMA topologies that aren\u0027t fully connected.\n\nThe typical result of not fully connected NUMA is that each cpu (or\nrather node) will have different spans for a particular distance.\nHowever due to how sched domains are traversed -- only the first cpu\nin the mask goes one level up -- the next level only cares about the\nspans of the cpus that went up.\n\nDue to this two things were observed to be broken:\n\n - build_overlap_sched_groups() -- since its possible the cpu we\u0027re\n   building the groups for exists in multiple (or all) groups, the\n   selection criteria of the first group didn\u0027t ensure there was a cpu\n   for which is was true that cpumask_first(span) \u003d\u003d cpu. Thus load-\n   balancing would terminate.\n\n - update_group_power() -- assumed that the cpu span of the first\n   group of the domain was covered by all groups of the child domain.\n   The above explains why this isn\u0027t true, so deal with it.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nLink: http://lkml.kernel.org/r/1337788843.9783.14.camel@laptop\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "8e7fbcbc22c12414bcc9dfdd683637f58fb32759",
      "tree": "a438021ddeadddd8f0745293aeb8c80dbe3c999c",
      "parents": [
        "fac536f7e4927f34d480dc066f3a578c743b8f0e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Jan 09 11:28:35 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu May 17 13:48:56 2012 +0200"
      },
      "message": "sched: Remove stale power aware scheduling remnants and dysfunctional knobs\n\nIt\u0027s been broken forever (i.e. it\u0027s not scheduling in a power\naware fashion), as reported by Suresh and others sending\npatches, and nobody cares enough to fix it properly ...\nso remove it to make space free for something better.\n\nThere\u0027s various problems with the code as it stands today, first\nand foremost the user interface which is bound to topology\nlevels and has multiple values per level. This results in a\nstate explosion which the administrator or distro needs to\nmaster and almost nobody does.\n\nFurthermore large configuration state spaces aren\u0027t good, it\nmeans the thing doesn\u0027t just work right because it\u0027s either\nunder so many impossibe to meet constraints, or even if\nthere\u0027s an achievable state workloads have to be aware of\nit precisely and can never meet it for dynamic workloads.\n\nSo pushing this kind of decision to user-space was a bad idea\neven with a single knob - it\u0027s exponentially worse with knobs\non every node of the topology.\n\nThere is a proposal to replace the user interface with a single\n3 state knob:\n\n sched_balance_policy :\u003d { performance, power, auto }\n\nwhere \u0027auto\u0027 would be the preferred default which looks at things\nlike Battery/AC mode and possible cpufreq state or whatever the hw\nexposes to show us power use expectations - but there\u0027s been no\nprogress on it in the past many months.\n\nAside from that, the actual implementation of the various knobs\nis known to be broken. There have been sporadic attempts at\nfixing things but these always stop short of reaching a mergable\nstate.\n\nTherefore this wholesale removal with the hopes of spurring\npeople who care to come forward once again and work on a\ncoherent replacement.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Vincent Guittot \u003cvincent.guittot@linaro.org\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1326104915.2442.53.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "e44bc5c5d00ee9b56dd87db47ed827d52948b9fa",
      "tree": "e0e5c30591d8bae335a101458f311e5972175a69",
      "parents": [
        "556061b00c9f2fd6a5524b6bde823ef12f299ecf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 11 00:22:12 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon May 14 15:05:28 2012 +0200"
      },
      "message": "sched/fair: Improve the -\u003egroup_imb logic\n\nGroup imbalance is meant to deal with situations where affinity masks\nand sched domains don\u0027t align well, such as 3 cpus from one group and\n6 from another. In this case the domain based balancer will want to\nput an equal amount of tasks on each side even though they don\u0027t have\nequal cpus.\n\nCurrently group_imb is set whenever two cpus of a group have a weight\ndifference of at least one avg task and the heaviest cpu has at least\ntwo tasks. A group with imbalance set will always be picked as busiest\nand a balance pass will be forced.\n\nThe problem is that even if there are no affinity masks this stuff can\ntrigger and cause weird balancing decisions, eg. the observed\nbehaviour was that of 6 cpus, 5 had 2 and 1 had 3 tasks, due to the\ndifference of 1 avg load (they all had the same weight) and nr_running\nbeing \u003e1 the group_imbalance logic triggered and did the weird thing\nof pulling more load instead of trying to move the 1 excess task to\nthe other domain of 6 cpus that had 5 cpu with 2 tasks and 1 cpu with\n1 task.\n\nCurb the group_imbalance stuff by making the nr_running condition\nweaker by also tracking the min_nr_running and using the difference in\nnr_running over the set instead of the absolute max nr_running.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-9s7dedozxo8kjsb9kqlrukkf@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "556061b00c9f2fd6a5524b6bde823ef12f299ecf",
      "tree": "087891d70dbcd97cd23ac3eb92fad6a905c0f527",
      "parents": [
        "870a0bb5d636156502769233d02a0d5791d4366a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 11 17:31:26 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon May 14 15:05:27 2012 +0200"
      },
      "message": "sched/nohz: Fix rq-\u003ecpu_load[] calculations\n\nWhile investigating why the load-balancer did funny I found that the\nrq-\u003ecpu_load[] tables were completely screwy.. a bit more digging\nrevealed that the updates that got through were missing ticks followed\nby a catchup of 2 ticks.\n\nThe catchup assumes the cpu was idle during that time (since only nohz\ncan cause missed ticks and the machine is idle etc..) this means that\nesp. the higher indices were significantly lower than they ought to\nbe.\n\nThe reason for this is that its not correct to compare against jiffies\non every jiffy on any other cpu than the cpu that updates jiffies.\n\nThis patch cludges around it by only doing the catch-up stuff from\nnohz_idle_balance() and doing the regular stuff unconditionally from\nthe tick.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: pjt@google.com\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nLink: http://lkml.kernel.org/n/tip-tp4kj18xdd5aj4vvj0qg55s2@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "04f733b4afac5dc93ae9b0a8703c60b87def491e",
      "tree": "7ef166c4d1c1dffdc993efbf3791d0f745f5a80c",
      "parents": [
        "316ad248307fba13be40f01e92a22b89457c32bc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 11 00:12:02 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon May 14 15:05:26 2012 +0200"
      },
      "message": "sched/fair: Revert sched-domain iteration breakage\n\nPatches c22402a2f (\"sched/fair: Let minimally loaded cpu balance the\ngroup\") and 0ce90475 (\"sched/fair: Add some serialization to the\nsched_domain load-balance walk\") are horribly broken so revert them.\n\nThe problem is that while it sounds good to have the minimally loaded\ncpu do the pulling of more load, the way we walk the domains there is\nabsolutely no guarantee this cpu will actually get to the domain. In\nfact its very likely it wont. Therefore the higher up the tree we get,\nthe less likely it is we\u0027ll balance at all.\n\nThe first of mask always walks up, while sucky in that it accumulates\nload on the first cpu and needs extra passes to spread it out at least\nguarantees a cpu gets up that far and load-balancing happens at all.\n\nSince its now always the first and idle cpus should always be able to\nbalance so they get a task as fast as possible we can also do away\nwith the added serialization.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-rpuhs5s56aiv1aw7khv9zkw6@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "bd939f45da24e25e08a8f5c993c50b1afada0fef",
      "tree": "a103544f605e5e0e3f1c20a1fc9fffcaeba1a33c",
      "parents": [
        "0ce90475dcdbe90affc218e9688c8401e468e84d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 02 14:20:37 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 09 15:00:54 2012 +0200"
      },
      "message": "sched/fair: Propagate \u0027struct lb_env\u0027 usage into find_busiest_group\n\nMore function argument passing reduction.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-v66ivjfqdiqdso01lqgqx6qf@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0ce90475dcdbe90affc218e9688c8401e468e84d",
      "tree": "30771f6a6791af0214c5e7d57958f6395f3b97f5",
      "parents": [
        "c22402a2f76e88b04b7a8b6c0597ad9ba6fd71de"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Apr 25 00:30:36 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 09 15:00:53 2012 +0200"
      },
      "message": "sched/fair: Add some serialization to the sched_domain load-balance walk\n\nSince the sched_domain walk is completely unserialized (!SD_SERIALIZE)\nit is possible that multiple cpus in the group get elected to do the\nnext level. Avoid this by adding some serialization.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-vqh9ai6s0ewmeakjz80w4qz6@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c22402a2f76e88b04b7a8b6c0597ad9ba6fd71de",
      "tree": "dba3b3dc85c1290310968ce78d36ccb9fd670366",
      "parents": [
        "c82513e513556a04f81aa511cd890acd23349c48"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Apr 20 16:57:22 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 09 15:00:51 2012 +0200"
      },
      "message": "sched/fair: Let minimally loaded cpu balance the group\n\nCurrently we let the leftmost (or first idle) cpu ascend the\nsched_domain tree and perform load-balancing. The result is that the\nbusiest cpu in the group might be performing this function and pull\nmore load to itself. The next load balance pass will then try to\nequalize this again.\n\nChange this to pick the least loaded cpu to perform higher domain\nbalancing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-v8zlrmgmkne3bkcy9dej1fvm@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c82513e513556a04f81aa511cd890acd23349c48",
      "tree": "dbccd379fffd75cd87513e4dd0e91ac597628382",
      "parents": [
        "ad7687dde8780a0d618a3e3b5a62bb383696fc22"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 26 13:12:27 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 09 15:00:49 2012 +0200"
      },
      "message": "sched: Change rq-\u003enr_running to unsigned int\n\nSince there\u0027s a PID space limit of 30bits (see\nfutex.h:FUTEX_TID_MASK) and allocating that many tasks (assuming a\nlower bound of 2 pages per task) would still take 8T of memory it\nseems reasonable to say that unsigned int is sufficient for\nrq-\u003enr_running.\n\nWhen we do get anywhere near that amount of tasks I suspect other\nthings would go funny, load-balancer load computations would really\nneed to be hoisted to 128bit etc.\n\nSo save a few bytes and convert rq-\u003enr_running and friends to\nunsigned int.\n\nSuggested-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-y3tvyszjdmbibade5bw8zl81@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "eb95308ee2a69403909e111837b9068c64cfc349",
      "tree": "92e9a3368e75b94486dc54f2688453fed17d4eed",
      "parents": [
        "2300fd67b4f29eec19addb15a8571837228f63fc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 17 13:38:40 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Apr 26 12:54:52 2012 +0200"
      },
      "message": "sched: Fix more load-balancing fallout\n\nCommits 367456c756a6 (\"sched: Ditch per cgroup task lists for\nload-balancing\") and 5d6523ebd (\"sched: Fix load-balance wreckage\")\nleft some more wreckage.\n\nBy setting loop_max unconditionally to -\u003enr_running load-balancing\ncould take a lot of time on very long runqueues (hackbench!). So keep\nthe sysctl as max limit of the amount of tasks we\u0027ll iterate.\n\nFurthermore, the min load filter for migration completely fails with\ncgroups since inequality in per-cpu state can easily lead to such\nsmall loads :/\n\nFurthermore the change to add new tasks to the tail of the queue\ninstead of the head seems to have some effect.. not quite sure I\nunderstand why.\n\nCombined these fixes solve the huge hackbench regression reported by\nTim when hackbench is ran in a cgroup.\n\nReported-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Tim Chen \u003ctim.c.chen@linux.intel.com\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/r/1335365763.28150.267.camel@twins\n[ got rid of the CONFIG_PREEMPT tuning and made small readability edits ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7fda0412c5f7afdd1a5ff518f98dee5157266d8a",
      "tree": "d312af46758fa9b59431a479d258b54184a00591",
      "parents": [
        "6b8212a313dae341ef3a2e413dfec5c4dea59617",
        "160594e99dbbb0a5600ad922c630952c7c1c14bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:46:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:46:05 2012 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fixes from Ingo Molnar.\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  cpusets: Remove an unused variable\n  sched/rt: Improve pick_next_highest_task_rt()\n  sched: Fix select_fallback_rq() vs cpu_active/cpu_online\n  sched/x86/smp: Do not enable IRQs over calibrate_delay()\n  sched: Fix compiler warning about declared inline after use\n  MAINTAINERS: Update email address for SCHEDULER and PERF EVENTS\n"
    },
    {
      "commit": "6c16a6dcb05e51ace340ff7bc6dbe647f1593528",
      "tree": "5df1dacdd4f9710a569d19b2a114bfca427404d0",
      "parents": [
        "dd9b238c1c53ddcdb10cbb2548f38543d49ad70a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 21 13:07:16 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Mar 23 10:39:28 2012 +0100"
      },
      "message": "sched: Fix compiler warning about declared inline after use\n\nkernel/sched/fair.c:420: warning: \u0027account_cfs_rq_runtime\u0027 declared inline after being called\nkernel/sched/fair.c:420: warning: previous declaration of \u0027account_cfs_rq_runtime\u0027 was here\nkernel/sched/fair.c:1165: warning: \u0027return_cfs_rq_runtime\u0027 declared inlineafter being called\nkernel/sched/fair.c:1165: warning: previous declaration of \u0027return_cfs_rq_runtime\u0027 was here\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20120321200717.49BB4A024E@akpm.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "2ba68940c893c8f0bfc8573c041254251bb6aeab",
      "tree": "fa83ebb01d32abd98123fa28f9f6f0b3eaeee25d",
      "parents": [
        "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
        "600e145882802d6ccbfe2c4aea243d97caeb91a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 2012 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes for v3.4 from Ingo Molnar\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)\n  printk: Make it compile with !CONFIG_PRINTK\n  sched/x86: Fix overflow in cyc2ns_offset\n  sched: Fix nohz load accounting -- again!\n  sched: Update yield() docs\n  printk/sched: Introduce special printk_sched() for those awkward moments\n  sched/nohz: Correctly initialize \u0027next_balance\u0027 in \u0027nohz\u0027 idle balancer\n  sched: Cleanup cpu_active madness\n  sched: Fix load-balance wreckage\n  sched: Clean up parameter passing of proc_sched_autogroup_set_nice()\n  sched: Ditch per cgroup task lists for load-balancing\n  sched: Rename load-balancing fields\n  sched: Move load-balancing arguments into helper struct\n  sched/rt: Do not submit new work when PI-blocked\n  sched/rt: Prevent idle task boosting\n  sched/wait: Add __wake_up_all_locked() API\n  sched/rt: Document scheduler related skip-resched-check sites\n  sched/rt: Use schedule_preempt_disabled()\n  sched/rt: Add schedule_preempt_disabled()\n  sched/rt: Do not throttle when PI boosting\n  sched/rt: Keep period timer ticking when rt throttling is active\n  ...\n"
    },
    {
      "commit": "554cecaf733623b327eef9652b65965eb1081b81",
      "tree": "4e471c4689563d3a882667323ece2e581d8f17c8",
      "parents": [
        "5fbd036b552f633abb394a319f7c62a5c86a9cd7"
      ],
      "author": {
        "name": "Diwakar Tundlam",
        "email": "dtundlam@nvidia.com",
        "time": "Wed Mar 07 14:44:26 2012 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:43:16 2012 +0100"
      },
      "message": "sched/nohz: Correctly initialize \u0027next_balance\u0027 in \u0027nohz\u0027 idle balancer\n\nThe \u0027next_balance\u0027 field of \u0027nohz\u0027 idle balancer must be initialized\nto jiffies. Since jiffies is initialized to negative 300 seconds the\n\u0027nohz\u0027 idle balancer does not run for the first 300s (5mins) after\nbootup. If no new processes are spawed or no idle cycles happen, the\nload on the cpus will remain unbalanced for that duration.\n\nSigned-off-by: Diwakar Tundlam \u003cdtundlam@nvidia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1DD7BFEDD3147247B1355BEFEFE4665237994F30EF@HQMAIL04.nvidia.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5d6523ebd2f67de9d23285aad7f3910e7b0aee83",
      "tree": "745ee9e9378dd255fe7097e42c34a86ba9b8ee48",
      "parents": [
        "2e5b5b3a1b7768c89fbfeca18e75f8ee377e924c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Mar 10 00:07:36 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:43:15 2012 +0100"
      },
      "message": "sched: Fix load-balance wreckage\n\nCommit 367456c (\"sched: Ditch per cgroup task lists for\nload-balancing\") completely wrecked load-balancing due to\na few silly mistakes.\n\nCorrect those and remove more pointless code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-zk04ihygwxn7qqrlpaf73b0r@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "737f24bda723fdf89ecaacb99fa2bf5683c32799",
      "tree": "35495fff3e9956679cb5468e74e6814c8e44ee66",
      "parents": [
        "8eedce996556d7d06522cd3a0e6069141c8dffe0",
        "b7c924274c456499264d1cfa3d44063bb11eb5db"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 09:20:08 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 09:20:08 2012 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nConflicts:\n\ttools/perf/builtin-record.c\n\ttools/perf/builtin-top.c\n\ttools/perf/perf.h\n\ttools/perf/util/top.h\n\nMerge reason: resolve these cherry-picking conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "367456c756a6b84f493ca9cc5b17b1f5d38ef466",
      "tree": "0e95a2fa5cb25ea14e2841d84d4d2410ff383e33",
      "parents": [
        "ddcdf6e7d9919d139031fa2a6addd9544a9a833e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 20 21:49:09 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 13:08:37 2012 +0100"
      },
      "message": "sched: Ditch per cgroup task lists for load-balancing\n\nPer cgroup load-balance has numerous problems, chief amongst them that\nthere is no real sane order in them. So stop pretending it makes sense\nand enqueue all tasks on a single list.\n\nThis also allows us to more easily fix the fwd progress issue\nuncovered by the lock-break stuff. Rotate the list on failure to\nmigreate and limit the total iterations to nr_running (which with\nreleasing the lock isn\u0027t strictly accurate but close enough).\n\nAlso add a filter that skips very light tasks on the first attempt\naround the list, this attempts to avoid shooting whole cgroups around\nwithout affecting over balance.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: pjt@google.com\nLink: http://lkml.kernel.org/n/tip-tx8yqydc7eimgq7i4rkc3a4g@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ddcdf6e7d9919d139031fa2a6addd9544a9a833e",
      "tree": "5c6883bdc1128a7c89b6d7e3ac13aa1a54f5c3c0",
      "parents": [
        "8e45cb545d98bc58e75b7de89ec8d3e5c8459ee6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 22 19:27:40 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:51:23 2012 +0100"
      },
      "message": "sched: Rename load-balancing fields\n\n s/env-\u003ethis_/env-\u003edst_/g\n s/env-\u003ebusiest_/env-\u003esrc_/g\n s/pull_task/move_task/g\n\nMakes everything clearer.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: pjt@google.com\nLink: http://lkml.kernel.org/n/tip-0yvgms8t8x962drpvl0fu0kk@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e45cb545d98bc58e75b7de89ec8d3e5c8459ee6",
      "tree": "b855602a267eb38bc5d511050fb40477e5a607f1",
      "parents": [
        "3c7d51843b03a6839e9ec7cda724e54d2319a63a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 22 12:47:19 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:51:22 2012 +0100"
      },
      "message": "sched: Move load-balancing arguments into helper struct\n\nPassing large sets of similar arguments all around the load-balancer\ngets tiresom when you want to modify something. Stick them all in a\nhelper structure and pass the structure around.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: pjt@google.com\nLink: http://lkml.kernel.org/n/tip-5slqz0vhsdzewrfk9eza1aon@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7e4d960993331e92567f0180e45322a93e6780ba",
      "tree": "4d7444035303fc0b545e88afbd894176344fb2a3",
      "parents": [
        "de5bdff7a72acc281219be2b8edeeca1fd81c542",
        "164974a8f2a482f1abcb027c6d1a89dd79b14297"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:26:41 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:26:43 2012 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: we\u0027ll queue up dependent patches.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5905afb0ee6550b42c49213da1c22d67316c194",
      "tree": "253fdb322e6e5b257ffda3b9b66bce90a473a6f7",
      "parents": [
        "1cfa60dc7d7c7cc774a44eee47ff135a644a1f31"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 24 08:31:31 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 24 10:05:59 2012 +0100"
      },
      "message": "static keys: Introduce \u0027struct static_key\u0027, static_key_true()/false() and static_key_slow_[inc|dec]()\n\nSo here\u0027s a boot tested patch on top of Jason\u0027s series that does\nall the cleanups I talked about and turns jump labels into a\nmore intuitive to use facility. It should also address the\nvarious misconceptions and confusions that surround jump labels.\n\nTypical usage scenarios:\n\n        #include \u003clinux/static_key.h\u003e\n\n        struct static_key key \u003d STATIC_KEY_INIT_TRUE;\n\n        if (static_key_false(\u0026key))\n                do unlikely code\n        else\n                do likely code\n\nOr:\n\n        if (static_key_true(\u0026key))\n                do likely code\n        else\n                do unlikely code\n\nThe static key is modified via:\n\n        static_key_slow_inc(\u0026key);\n        ...\n        static_key_slow_dec(\u0026key);\n\nThe \u0027slow\u0027 prefix makes it abundantly clear that this is an\nexpensive operation.\n\nI\u0027ve updated all in-kernel code to use this everywhere. Note\nthat I (intentionally) have not pushed through the rename\nblindly through to the lowest levels: the actual jump-label\npatching arch facility should be named like that, so we want to\ndecouple jump labels from the static-key facility a bit.\n\nOn non-jump-label enabled architectures static keys default to\nlikely()/unlikely() branches.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: a.p.zijlstra@chello.nl\nCc: mathieu.desnoyers@efficios.com\nCc: davem@davemloft.net\nCc: ddaney.cavm@gmail.com\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20120222085809.GA26397@elte.hu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "62f6536a630affe3176deb48554d27ee58b65077",
      "tree": "cf1365f5c0d0b9aebb5877afa8a7b5da4aa11917",
      "parents": [
        "9388dc3047a88bedfd867e9ba3e1980c815ac524"
      ],
      "author": {
        "name": "Nikunj A. Dadhania",
        "email": "nikunj@linux.vnet.ibm.com",
        "time": "Fri Feb 17 08:34:30 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 12:28:28 2012 +0100"
      },
      "message": "sched: Remove rcu_read_lock/unlock() from select_idle_sibling()\n\nselect_idle_sibling() is called from select_task_rq_fair(), which\nalready 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\nLink: http://lkml.kernel.org/r/20120217030409.11748.12491.stgit@abhimanyu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8c79a045fd590a26e81e75f5d8d4ec5c7d23e565",
      "tree": "8123849709e37dc2394373ad40cf333b2f19ebb5",
      "parents": [
        "719741d9986572d64b47c35c09f5e7bb8d389400"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jan 30 14:51:37 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 12:06:55 2012 +0100"
      },
      "message": "sched/events: Revert trace_sched_stat_sleeptime()\n\nCommit 1ac9bc69 (\"sched/tracing: Add a new tracepoint for sleeptime\")\nadded a new sched:sched_stat_sleeptime tracepoint.\n\nIt\u0027s broken: the first sample we get on a task might be bad because\nof a stale sleep_start value that wasn\u0027t reset at the last task switch\nbecause the tracepoint was not active.\n\nIt also breaks the existing schedstat samples due to the side\neffects of:\n\n-               se-\u003estatistics.sleep_start \u003d 0;\n...\n-               se-\u003estatistics.block_start \u003d 0;\n\nNor do I see means to fix it without adding overhead to the scheduler\nfast path, which I\u0027m not willing to for the sake of redundant\ninstrumentation.\n\nMost importantly, sleep time information can already be constructed\nby tracing context switches and wakeups, and taking the timestamp\ndifference between the schedule-out, the wakeup and the schedule-in.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLink: http://lkml.kernel.org/n/tip-pc4c9qhl8q6vg3bs4j6k0rbd@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ed387b781ea6e14b78f449aa2ee4f270b60b01ac",
      "tree": "16ae2791173a7796feadf853ba1bee9b93fc0fff",
      "parents": [
        "30fd049afcfed50e022704036e8629d6bdfe84e6"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Tue Jan 31 11:40:32 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 31 13:40:59 2012 +0100"
      },
      "message": "sched: Move SMP-only variable into the SMP section\n\nThis also fixes the following compilation warning on !SMP:\n\n  CC kernel/sched/fair.o\n  kernel/sched/fair.c:218:36: warning: \u0027max_load_balance_interval\u0027 defined but not used [-Wunused-variable]\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nReviewed-by: Vincent Guittot \u003cvincent.guittot@linaro.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4F2754A0.9090306@ct.jp.nec.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ec4412e1e91f44a3dcb97b6c9172a13fc78bac9",
      "tree": "a98f635907975c2f14c01c24418e102337250b8d",
      "parents": [
        "39be350127ec60a078edffe5b4915dafba4ba514"
      ],
      "author": {
        "name": "Vincent Guittot",
        "email": "vincent.guittot@linaro.org",
        "time": "Mon Dec 12 20:21:08 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 27 13:28:49 2012 +0100"
      },
      "message": "sched: Ensure cpu_power periodic update\n\nWith a lot of small tasks, the softirq sched is nearly never called\nwhen no_hz is enabled. In this case load_balance() is mainly called\nwith the newly_idle mode which doesn\u0027t update the cpu_power.\n\nAdd a next_update field which ensure a maximum update period when\nthere is short activity.\n\nHaving stale cpu_power information can skew the load-balancing\ndecisions, this is cured by the guaranteed update.\n\nSigned-off-by: Vincent Guittot \u003cvincent.guittot@linaro.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1323717668-2143-1-git-send-email-vincent.guittot@linaro.org\n"
    },
    {
      "commit": "71325960d16cd68ea0e22a8da15b2495b0f363f7",
      "tree": "38be96d9232b302780476899f8536e690c693ffb",
      "parents": [
        "db7e527da41560f597ccdc4417cefa6b7657c0c0"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jan 19 18:28:57 2012 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 26 19:38:13 2012 +0100"
      },
      "message": "sched/nohz: Fix nohz cpu idle load balancing state with cpu hotplug\n\nWith the recent nohz scheduler changes, rq\u0027s nohz flag\n\u0027NOHZ_TICK_STOPPED\u0027 and its associated state doesn\u0027t get cleared\nimmediately after the cpu exits idle. This gets cleared as part\nof the next tick seen on that cpu.\n\nFor the cpu offline support, we need to clear this state\nmanually. Fix it by registering a cpu notifier, which clears the\nnohz idle load balance state for this rq explicitly during the\nCPU_DYING notification.\n\nThere won\u0027t be any nohz updates for that cpu, after the\nCPU_DYING notification. But lets be extra paranoid and skip\nupdating the nohz state in the select_nohz_load_balancer() if\nthe cpu is not in active state anymore.\n\nReported-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nReviewed-and-tested-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nTested-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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/1327026538.16150.40.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "8b9686ff4ddfdf45662024edd567920e6db87beb"
}
