)]}'
{
  "log": [
    {
      "commit": "dca45ad8af54963c005393a484ad117b8ba6150f",
      "tree": "7c9a6966283a6bb12b54e5680a67d203be292930",
      "parents": [
        "68c38fc3cb4e5a60f502ee9c45f3dfe70e5165ad",
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: Move from the -rc3 to the almost-rc6 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbc8cb5baead9607309583b20873ab0cc8d89eaf",
      "tree": "425cfb2772ef50c1858a7d833408ad1bcc423f51",
      "parents": [
        "5343bdb8fd076f16edc9d113a9e35e2a1d1f4966"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 09 15:15:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 17 12:05:14 2010 +0200"
      },
      "message": "sched: Reduce update_group_power() calls\n\nCurrently we update cpu_power() too often, update_group_power() only\nupdates the local group\u0027s cpu_power but it gets called for all groups.\n\nFurthermore, CPU_NEWLY_IDLE invocations will result in all cpus\ncalling it, even though a slow update of cpu_power is sufficient.\n\nTherefore move the update under \u0027idle !\u003d CPU_NEWLY_IDLE \u0026\u0026\nlocal_group\u0027 to reduce superfluous invocations.\n\nReported-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLKML-Reference: \u003c1278612989.1900.176.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5343bdb8fd076f16edc9d113a9e35e2a1d1f4966",
      "tree": "567ef046a11d203331bbb9372b2e29f817fbf2fe",
      "parents": [
        "2ec57d448b2e8fcfba539a46701b43f14f037f17"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Fri Jul 09 15:19:54 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 17 12:02:08 2010 +0200"
      },
      "message": "sched: Update rq-\u003eclock for nohz balanced cpus\n\nSuresh spotted that we don\u0027t update the rq-\u003eclock in the nohz\nload-balancer path.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1278626014.2834.74.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ec57d448b2e8fcfba539a46701b43f14f037f17",
      "tree": "92f014a595860b3124816ba4bb1ec8751ea66543",
      "parents": [
        "0b2e918aa99fe6c3b8f163aa323a275ad8577828"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Tue Jun 29 12:02:01 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 29 10:44:29 2010 +0200"
      },
      "message": "sched: Fix spelling of sibling\n\nNo logic changes, only spelling.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nCc: linuxppc-dev@ozlabs.org\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c15249.1277776921@neuling.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3b577dec1f2ce32d2db6d2ca6badff7002512af",
      "tree": "c9d5d84b2d3e4ae1251f69932a526367a2bac7fa",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Tue Jun 01 14:06:13 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 06:50:44 2010 -0700"
      },
      "message": "rcu: apply RCU protection to wake_affine()\n\nThe task_group() function returns a pointer that must be protected\nby either RCU, the -\u003ealloc_lock, or the cgroup lock (see the\nrcu_dereference_check() in task_subsys_state(), which is invoked by\ntask_group()).  The wake_affine() function currently does none of these,\nwhich means that a concurrent update would be within its rights to free\nthe structure returned by task_group().  Because wake_affine() uses this\nstructure only to compute load-balancing heuristics, there is no reason\nto acquire either of the two locks.\n\nTherefore, this commit introduces an RCU read-side critical section that\nstarts before the first call to task_group() and ends after the last use\nof the \"tg\" pointer returned from task_group().  Thanks to Li Zefan for\npointing out the need to extend the RCU read-side critical section from\nthat proposed by the original patch.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b6b12294405e6ec029e627c49adf3193829a2685",
      "tree": "bafbeeaa4a9c7a80e1ff20a14694fcb9d145a9fb",
      "parents": [
        "694f5a1112959a6996cabdb6f8d3003e87dac8a7"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Thu Jun 10 12:06:21 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:55 2010 +0200"
      },
      "message": "sched: Fix comments to make them DocBook happy\n\nDocbook fails in sched_fair.c due to comments added in the asymmetric\npacking patch series.\n\nThis fixes these errors. No code changes.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c24737.1276135581@neuling.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "694f5a1112959a6996cabdb6f8d3003e87dac8a7",
      "tree": "051bcf1e25b185435baf0e5f1dfd81e63c62fbaf",
      "parents": [
        "4cb6948e5365ab874bb71ac35fb6b7c6dd305765"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Thu Jun 10 09:03:37 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:54 2010 +0200"
      },
      "message": "sched: Fix fix_small_capacity\n\nThe CPU power test is the wrong way around in fix_small_capacity.\n\nThis was due to a small changes made in the posted patch on lkml to what\nwas was taken upstream.\n\nThis patch fixes asymmetric packing for POWER7.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c12629.1276124617@neuling.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "532cb4c401e225b084c14d6bd6a2f8ee561de2f1",
      "tree": "0ce57c2e21cd12ee05561ab2b9c4b66729da8e5a",
      "parents": [
        "9d5efe05eb0c904545a28b19c18b949f23334de0"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Tue Jun 08 14:57:02 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:55 2010 +0200"
      },
      "message": "sched: Add asymmetric group packing option for sibling domain\n\nCheck to see if the group is packed in a sched doman.\n\nThis is primarily intended to used at the sibling level.  Some cores\nlike POWER7 prefer to use lower numbered SMT threads.  In the case of\nPOWER7, it can move to lower SMT modes only when higher threads are\nidle.  When in lower SMT modes, the threads will perform better since\nthey share less core resources.  Hence when we have idle threads, we\nwant them to be the higher ones.\n\nThis adds a hook into f_b_g() called check_asym_packing() to check the\npacking.  This packing function is run on idle threads.  It checks to\nsee if the busiest CPU in this domain (core in the P7 case) has a\nhigher CPU number than what where the packing function is being run\non.  If it is, calculate the imbalance and return the higher busier\nthread as the busiest group to f_b_g().  Here we are assuming a lower\nCPU number will be equivalent to a lower SMT thread number.\n\nIt also creates a new SD_ASYM_PACKING flag to enable this feature at\nany scheduler domain level.\n\nIt also creates an arch hook to enable this feature at the sibling\nlevel.  The default function doesn\u0027t enable this feature.\n\nBased heavily on patch from Peter Zijlstra.\nFixes from Srivatsa Vaddagiri.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20100608045702.2936CCC897@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9d5efe05eb0c904545a28b19c18b949f23334de0",
      "tree": "afa28fe2f3abd6fb538a7f0039c75a5e6463eeb1",
      "parents": [
        "83cd4fe27ad8446619b2e030b171b858501de87d"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Tue Jun 08 14:57:02 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:54 2010 +0200"
      },
      "message": "sched: Fix capacity calculations for SMT4\n\nHandle cpu capacity being reported as 0 on cores with more number of\nhardware threads. For example on a Power7 core with 4 hardware\nthreads, core power is 1177 and thus power of each hardware thread is\n1177/4 \u003d 294. This low power can lead to capacity for each hardware\nthread being calculated as 0, which leads to tasks bouncing within the\ncore madly!\n\nFix this by reporting capacity for hardware threads as 1, provided\ntheir power is not scaled down significantly because of frequency\nscaling or real-time tasks usage of cpu.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c20100608045702.21D03CC895@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83cd4fe27ad8446619b2e030b171b858501de87d",
      "tree": "81c7d26f4f00139ae355017239371d91cc4b2aef",
      "parents": [
        "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Fri May 21 17:09:41 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:52 2010 +0200"
      },
      "message": "sched: Change nohz idle load balancing logic to push model\n\nIn the new push model, all idle CPUs indeed go into nohz mode. There is\nstill the concept of idle load balancer (performing the load balancing\non behalf of all the idle cpu\u0027s in the system). Busy CPU kicks the nohz\nbalancer when any of the nohz CPUs need idle load balancing.\nThe kickee CPU does the idle load balancing on behalf of all idle CPUs\ninstead of the normal idle balance.\n\nThis addresses the below two problems with the current nohz ilb logic:\n* the idle load balancer continued to have periodic ticks during idle and\n  wokeup frequently, even though it did not have any rebalancing to do on\n  behalf of any of the idle CPUs.\n* On x86 and CPUs that have APIC timer stoppage on idle CPUs, this\n  periodic wakeup can result in a periodic additional interrupt on a CPU\n  doing the timer broadcast.\n\nAlso currently we are migrating the unpinned timers from an idle to the cpu\ndoing idle load balancing (when all the cpus in the system are idle,\nthere is no idle load balancing cpu and timers get added to the same idle cpu\nwhere the request was made. So the existing optimization works only on semi idle\nsystem).\n\nAnd In semi idle system, we no longer have periodic ticks on the idle load\nbalancer CPU. Using that cpu will add more delays to the timers than intended\n(as that cpu\u0027s timer base may not be uptodate wrt jiffies etc). This was\ncausing mysterious slowdowns during boot etc.\n\nFor now, in the semi idle case, use the nearest busy cpu for migrating timers\nfrom an idle cpu.  This is good for power-savings anyway.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c1274486981.2840.46.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c",
      "tree": "b9bfc0f78135502adf7c83313948a705fb19384b",
      "parents": [
        "246d86b51845063e4b06b27579990492dc5fa317"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon May 17 18:14:43 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:51 2010 +0200"
      },
      "message": "sched: Avoid side-effect of tickless idle on update_cpu_load\n\ntickless idle has a negative side effect on update_cpu_load(), which\nin turn can affect load balancing behavior.\n\nupdate_cpu_load() is supposed to be called every tick, to keep track\nof various load indicies. With tickless idle, there are no scheduler\nticks called on the idle CPUs. Idle CPUs may still do load balancing\n(with idle_load_balance CPU) using the stale cpu_load. It will also\ncause problems when all CPUs go idle for a while and become active\nagain. In this case loads would not degrade as expected.\n\nThis is how rq-\u003enr_load_updates change looks like under different\nconditions:\n\n\u003ccpu_num\u003e \u003cnr_load_updates change\u003e\nAll CPUS idle for 10 seconds (HZ\u003d1000)\n0 1621\n10 496\n11 139\n12 875\n13 1672\n14 12\n15 21\n1 1472\n2 2426\n3 1161\n4 2108\n5 1525\n6 701\n7 249\n8 766\n9 1967\n\nOne CPU busy rest idle for 10 seconds\n0 10003\n10 601\n11 95\n12 966\n13 1597\n14 114\n15 98\n1 3457\n2 93\n3 6679\n4 1425\n5 1479\n6 595\n7 193\n8 633\n9 1687\n\nAll CPUs busy for 10 seconds\n0 10026\n10 10026\n11 10026\n12 10026\n13 10025\n14 10025\n15 10025\n1 10026\n2 10026\n3 10026\n4 10026\n5 10026\n6 10026\n7 10026\n8 10026\n9 10026\n\nThat is update_cpu_load works properly only when all CPUs are busy.\nIf all are idle, all the CPUs get way lower updates.  And when few\nCPUs are busy and rest are idle, only busy and ilb CPU does proper\nupdates and rest of the idle CPUs will do lower updates.\n\nThe patch keeps track of when a last update was done and fixes up\nthe load avg based on current time.\n\nOn one of my test system SPECjbb with warehouse 1..numcpus, patch\nimproves throughput numbers by ~1% (average of 6 runs).  On another\ntest system (with different domain hierarchy) there is no noticable\nchange in perf.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cAANLkTilLtDWQsAUrIxJ6s04WTgmw9GuOODc5AOrYsaR5@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e51fd5e22e12b39f49b1bb60b37b300b17378a43",
      "tree": "391500ff509dc30991db38e3d54eaccfe385d1cb",
      "parents": [
        "54e88fad223c4e1d94289611a90c7fe3ebe5631b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 31 12:37:30 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 01 09:27:16 2010 +0200"
      },
      "message": "sched: Fix wake_affine() vs RT tasks\n\nMike reports that since e9e9250b (sched: Scale down cpu_power due to RT\ntasks), wake_affine() goes funny on RT tasks due to them still having a\n!0 weight and wake_affine() still subtracts that from the rq weight.\n\nSince nobody should be using se-\u003eweight for RT tasks, set the value to\nzero. Also, since we now use -\u003ecpu_power to normalize rq weights to\naccount for RT cpu usage, add that factor into the imbalance computation.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1275316109.27810.22969.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "969c79215a35b06e5e3efe69b9412f858df7856c",
      "tree": "4256378687c8bc2011ec35a3e28bc3b6473e912c",
      "parents": [
        "3fc1f1e27a5b807791d72e5d992aa33b668a6626"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "message": "sched: replace migration_thread with cpu_stop\n\nCurrently migration_thread is serving three purposes - migration\npusher, context to execute active_load_balance() and forced context\nswitcher for expedited RCU synchronize_sched.  All three roles are\nhardcoded into migration_thread() and determining which job is\nscheduled is slightly messy.\n\nThis patch kills migration_thread and replaces all three uses with\ncpu_stop.  The three different roles of migration_thread() are\nsplitted into three separate cpu_stop callbacks -\nmigration_cpu_stop(), active_load_balance_cpu_stop() and\nsynchronize_sched_expedited_cpu_stop() - and each use case now simply\nasks cpu_stop to execute the callback as necessary.\n\nsynchronize_sched_expedited() was implemented with private\npreallocated resources and custom multi-cpu queueing and waiting\nlogic, both of which are provided by cpu_stop.\nsynchronize_sched_expedited_count is made atomic and all other shared\nresources along with the mutex are dropped.\n\nsynchronize_sched_expedited() also implemented a check to detect cases\nwhere not all the callback got executed on their assigned cpus and\nfall back to synchronize_sched().  If called with cpu hotplug blocked,\ncpu_stop already guarantees that and the condition cannot happen;\notherwise, stop_machine() would break.  However, this patch preserves\nthe paranoid check using a cpumask to record on which cpus the stopper\nran so that it can serve as a bisection point if something actually\ngoes wrong theree.\n\nBecause the internal execution state is no longer visible,\nrcu_expedited_torture_stats() is removed.\n\nThis patch also renames cpu_stop threads to from \"stopper/%d\" to\n\"migration/%d\".  The names of these threads ultimately don\u0027t matter\nand there\u0027s no reason to make unnecessary userland visible changes.\n\nWith this patch applied, stop_machine() and sched now share the same\nresources.  stop_machine() is faster without wasting any resources and\nsched migration users are much cleaner.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Josh Triplett \u003cjosh@freedesktop.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Dimitri Sivanich \u003csivanich@sgi.com\u003e\n"
    },
    {
      "commit": "99bd5e2f245d8cd17d040c82d40becdb3efd9b69",
      "tree": "9dbfd8d1a9148bad45e5c3c067a05f414134083b",
      "parents": [
        "669c55e9f99b90e46eaa0f98a67ec53d46dc969a"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Wed Mar 31 16:47:45 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:02:02 2010 +0200"
      },
      "message": "sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n\nIssues in the current select_idle_sibling() logic in select_task_rq_fair()\nin the context of a task wake-up:\n\na) Once we select the idle sibling, we use that domain (spanning the cpu that\n   the task is currently woken-up and the idle sibling that we found) in our\n   wake_affine() decisions. This domain is completely different from the\n   domain(we are supposed to use) that spans the cpu that the task currently\n   woken-up and the cpu where the task previously ran.\n\nb) We do select_idle_sibling() check only for the cpu that the task is\n   currently woken-up on. If select_task_rq_fair() selects the previously run\n   cpu for waking the task, doing a select_idle_sibling() check\n   for that cpu also helps and we don\u0027t do this currently.\n\nc) In the scenarios where the cpu that the task is woken-up is busy but\n   with its HT siblings are idle, we are selecting the task be woken-up\n   on the idle HT sibling instead of a core that it previously ran\n   and currently completely idle. i.e., we are not taking decisions based on\n   wake_affine() but directly selecting an idle sibling that can cause\n   an imbalance at the SMT/MC level which will be later corrected by the\n   periodic load balancer.\n\nFix this by first going through the load imbalance calculations using\nwake_affine() and once we make a decision of woken-up cpu vs previously-ran cpu,\nthen choose a possible idle sibling for waking up the task on.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1270079265.7835.8.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "669c55e9f99b90e46eaa0f98a67ec53d46dc969a",
      "tree": "9f60bcf779e5ec786c05b8053b59e091edcb418c",
      "parents": [
        "74f5187ac873042f502227701ed1727e7c5fbfa9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Apr 16 14:59:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:02:02 2010 +0200"
      },
      "message": "sched: Pre-compute cpumask_weight(sched_domain_span(sd))\n\nDave reported that his large SPARC machines spend lots of time in\nhweight64(), try and optimize some of those needless cpumask_weight()\ninvocations (esp. with the large offstack cpumasks these are very\nexpensive indeed).\n\nReported-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "371fd7e7a56a5c136d31aa980011bd2f131c3ef5",
      "tree": "cf52014018e8258acd8bcfd486d855f098a02c03",
      "parents": [
        "cc87f76a601d2d256118f7bab15e35254356ae21"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 16:38:48 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:05 2010 +0200"
      },
      "message": "sched: Add enqueue/dequeue flags\n\nIn order to reduce the dependency on TASK_WAKING rework the enqueue\ninterface to support a proper flags field.\n\nReplace the int wakeup, bool head arguments with an int flags argument\nand create the following flags:\n\n  ENQUEUE_WAKEUP - the enqueue is a wakeup of a sleeping task,\n  ENQUEUE_WAKING - the enqueue has relative vruntime due to\n                   having sched_class::task_waking() called,\n  ENQUEUE_HEAD - the waking task should be places on the head\n                 of the priority queue (where appropriate).\n\nFor symmetry also convert sched_class::dequeue() to a flags scheme.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0017d735092844118bef006696a750a0e4ef6ebd",
      "tree": "8ed1540aaeb63da726f93da12950a8eaa0e0a3e0",
      "parents": [
        "9084bb8246ea935b98320554229e2f371f7f52fa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 18:34:10 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:03 2010 +0200"
      },
      "message": "sched: Fix TASK_WAKING vs fork deadlock\n\nOleg noticed a few races with the TASK_WAKING usage on fork.\n\n - since TASK_WAKING is basically a spinlock, it should be IRQ safe\n - since we set TASK_WAKING (*) without holding rq-\u003elock it could\n   be there still is a rq-\u003elock holder, thereby not actually\n   providing full serialization.\n\n(*) in fact we clear PF_STARTING, which in effect enables TASK_WAKING.\n\nCure the second issue by not setting TASK_WAKING in sched_fork(), but\nonly temporarily in wake_up_new_task() while calling select_task_rq().\n\nCure the first by holding rq-\u003elock around the select_task_rq() call,\nthis will disable IRQs, this however requires that we push down the\nrq-\u003elock release into select_task_rq_fair()\u0027s cgroup stuff.\n\nBecause select_task_rq_fair() still needs to drop the rq-\u003elock we\ncannot fully get rid of TASK_WAKING.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c9494727cf293ae2ec66af57547a3e79c724fec2",
      "tree": "44ae197b64fa7530ee695a90ad31326dda06f1e1",
      "parents": [
        "6427462bfa50f50dc6c088c07037264fcc73eca1",
        "42be79e37e264557f12860fa4cc84b4de3685954"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:02:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:03:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update to latest upstream\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "beac4c7e4a1cc6d57801f690e5e82fa2c9c245c8",
      "tree": "209e23af19515b9fa22bd6ee6598bb751ba61edf",
      "parents": [
        "13814d42e45dfbe845a0bbe5184565d9236896ae"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:20 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:53 2010 +0100"
      },
      "message": "sched: Remove AFFINE_WAKEUPS feature\n\nDisabling affine wakeups is too horrible to contemplate.  Remove the feature flag.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301890.6785.50.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "13814d42e45dfbe845a0bbe5184565d9236896ae",
      "tree": "6c4c010829e126af2c4a0620e47ee00d867d7f5d",
      "parents": [
        "c6ee36c423c3ed1fb86bb3eabba9fc256a300d16"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:04 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:53 2010 +0100"
      },
      "message": "sched: Remove ASYM_GRAN feature\n\nThis features has been enabled for quite a while, after testing showed that\neasing preemption for light tasks was harmful to high priority threads.\n\nRemove the feature flag.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301675.6785.44.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2e74eeac03ffb779d64b66a643c5e598145a28b",
      "tree": "3e609ce880c06d07e5c605c48789bd6da089ad39",
      "parents": [
        "5ca9880c6f4ba4c84b517bc2fed5366adf63d191"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:18 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:52 2010 +0100"
      },
      "message": "sched: Remove WAKEUP_SYNC feature\n\nThis feature never earned its keep, remove it.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301591.6785.42.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5ca9880c6f4ba4c84b517bc2fed5366adf63d191",
      "tree": "2aa6abff8c3615cbb692364e986e3126e0c4099d",
      "parents": [
        "6bc6cf2b61336ed0c55a615eb4c0c8ed5daf3f08"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:17 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:52 2010 +0100"
      },
      "message": "sched: Remove FAIR_SLEEPERS feature\n\nOur preemption model relies too heavily on sleeper fairness to disable it\nwithout dire consequences.  Remove the feature, and save a branch or two.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301520.6785.40.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6bc6cf2b61336ed0c55a615eb4c0c8ed5daf3f08",
      "tree": "756b81c0f9a2c5084e834c4184466390bcd7cc3e",
      "parents": [
        "8b911acdf08477c059d1c36c21113ab1696c612b"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:17 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:52 2010 +0100"
      },
      "message": "sched: Remove NORMALIZED_SLEEPER\n\nThis feature hasn\u0027t been enabled in a long time, remove effectively dead code.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301447.6785.38.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b911acdf08477c059d1c36c21113ab1696c612b",
      "tree": "ff0127c87cf657b706c3dc68dd8f92248a448c76",
      "parents": [
        "21406928afe43f1db6acab4931bb8c886f4d04ce"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:16 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:51 2010 +0100"
      },
      "message": "sched: Fix select_idle_sibling()\n\nDon\u0027t bother with selection when the current cpu is idle.  Recent load\nbalancing changes also make it no longer necessary to check wake_affine()\nsuccess before returning the selected sibling, so we now always use it.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301369.6785.36.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21406928afe43f1db6acab4931bb8c886f4d04ce",
      "tree": "623458f3c35ce4fbf18bcf4bba29c16c1c42c433",
      "parents": [
        "a64692a3afd85fe048551ab89142fd5ca99a0dbd"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:15 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:51 2010 +0100"
      },
      "message": "sched: Tweak sched_latency and min_granularity\n\nAllow LAST_BUDDY to kick in sooner, improving cache utilization as soon as\na second buddy pair arrives on scene.  The cost is latency starting to climb\nsooner, the tbenefit for tbench 8 on my Q6600 box is ~2%.  No detrimental\neffects noted in normal idesktop usage.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301285.6785.34.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a64692a3afd85fe048551ab89142fd5ca99a0dbd",
      "tree": "7d2800efb7fb9e3aa5c99ab883004932fdc362c6",
      "parents": [
        "e12f31d3e5d36328c7fbd0fce40a95e70b59152c"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:16:20 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:50 2010 +0100"
      },
      "message": "sched: Cleanup/optimize clock updates\n\nNow that we no longer depend on the clock being updated prior to enqueueing\non migratory wakeup, we can clean up a bit, placing calls to update_rq_clock()\nexactly where they are needed, ie on enqueue, dequeue and schedule events.\n\nIn the case of a freshly enqueued task immediately preempting, we can skip the\nupdate during preemption, as the clock was just updated by the enqueue event.\nWe also save an unneeded call during a migratory wakeup by not updating the\nprevious runqueue, where update_curr() won\u0027t be invoked.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301199.6785.32.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e12f31d3e5d36328c7fbd0fce40a95e70b59152c",
      "tree": "3eaee7fede5ba830395d2e527fdfe60f1aba73f4",
      "parents": [
        "b42e0c41a422a212ddea0666d5a3a0e3c35206db"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:15:51 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:50 2010 +0100"
      },
      "message": "sched: Remove avg_overlap\n\nBoth avg_overlap and avg_wakeup had an inherent problem in that their accuracy\nwas detrimentally affected by cross-cpu wakeups, this because we are missing\nthe necessary call to update_curr().  This can\u0027t be fixed without increasing\noverhead in our already too fat fastpath.\n\nAdditionally, with recent load balancing changes making us prefer to place tasks\nin an idle cache domain (which is good for compute bound loads), communicating\ntasks suffer when a sync wakeup, which would enable affine placement, is turned\ninto a non-sync wakeup by SYNC_LESS.  With one task on the runqueue, wake_affine()\nrejects the affine wakeup request, leaving the unfortunate where placed, taking\nfrequent cache misses.\n\nRemove it, and recover some fastpath cycles.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301121.6785.30.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b42e0c41a422a212ddea0666d5a3a0e3c35206db",
      "tree": "443cf5918548cab86c3f9f3f34a1b700d809070b",
      "parents": [
        "39c0cbe2150cbd848a25ba6cdb271d1ad46818ad"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:15:38 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:50 2010 +0100"
      },
      "message": "sched: Remove avg_wakeup\n\nTesting the load which led to this heuristic (nfs4 kbuild) shows that it has\noutlived it\u0027s usefullness.  With intervening load balancing changes, I cannot\nsee any difference with/without, so recover there fastpath cycles.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301062.6785.29.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "41acab8851a0408c1d5ad6c21a07456f88b54d40",
      "tree": "28b23b930571c1f6dfd5c4e8129a2a7ea2056307",
      "parents": [
        "3d07467b7aa91623b31d7b5888a123a2c8c8e9cc"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Mar 10 23:37:45 2010 -0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 15:22:28 2010 +0100"
      },
      "message": "sched: Implement group scheduler statistics in one struct\n\nPut all statistic fields of sched_entity in one struct, sched_statistics,\nand embed it into sched_entity.\n\nThis change allows to memset the sched_statistics to 0 when needed (for\ninstance when forking), avoiding bugs of non initialized fields.\n\nSigned-off-by: Lucas De Marchi \u003clucas.de.marchi@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268275065-18542-1-git-send-email-lucas.de.marchi@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90a6501f94aedd7fb40f5556334843194fb598be",
      "tree": "a51b58d8e72a62679f8553685dd4f6f8da4d6b33",
      "parents": [
        "e2f4699ac15fe36de1288505bc6e6e5a8603ab1b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Feb 28 08:32:18 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 01 09:29:58 2010 +0100"
      },
      "message": "sched, rcu: Fix rcu_dereference() for RCU-lockdep\n\nMake rcu_dereference() of runqueue data structures be\nrcu_dereference_sched().\n\nLocated-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c20100228163218.GD6846@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd5feea14a7de4edbd9f36db1a2db785de91b88d",
      "tree": "924eb9f44a03011cfc85479495a7cb68ebd62517",
      "parents": [
        "83ab0aa0d5623d823444db82c3b3c34d7ec364ae"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Tue Feb 23 16:13:52 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 15:45:13 2010 +0100"
      },
      "message": "sched: Fix SCHED_MC regression caused by change in sched cpu_power\n\nOn platforms like dual socket quad-core platform, the scheduler load\nbalancer is not detecting the load imbalances in certain scenarios. This\nis leading to scenarios like where one socket is completely busy (with\nall the 4 cores running with 4 tasks) and leaving another socket\ncompletely idle. This causes performance issues as those 4 tasks share\nthe memory controller, last-level cache bandwidth etc. Also we won\u0027t be\ntaking advantage of turbo-mode as much as we would like, etc.\n\nSome of the comparisons in the scheduler load balancing code are\ncomparing the \"weighted cpu load that is scaled wrt sched_group\u0027s\ncpu_power\" with the \"weighted average load per task that is not scaled\nwrt sched_group\u0027s cpu_power\". While this has probably been broken for a\nlonger time (for multi socket numa nodes etc), the problem got aggrevated\nvia this recent change:\n\n |\n |  commit f93e65c186ab3c05ce2068733ca10e34fd00125e\n |  Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n |  Date:   Tue Sep 1 10:34:32 2009 +0200\n |\n |\tsched: Restore __cpu_power to a straight sum of power\n |\n\nAlso with this change, the sched group cpu power alone no longer reflects\nthe group capacity that is needed to implement MC, MT performance\n(default) and power-savings (user-selectable) policies.\n\nWe need to use the computed group capacity (sgs.group_capacity, that is\ncomputed using the SD_PREFER_SIBLING logic in update_sd_lb_stats()) to\nfind out if the group with the max load is above its capacity and how\nmuch load to move etc.\n\nReported-by: Ma Ling \u003cling.ma@intel.com\u003e\nInitial-Analysis-by: Zhang, Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\n[ -v2: build fix ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e # [2.6.32.x, 2.6.33.x]\nLKML-Reference: \u003c1266970432.11588.22.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e40f5bbbc734231bc5809d3eb785e3c21f275d7",
      "tree": "8520fc84d9643502ebe86233cefcd774e2babf72",
      "parents": [
        "301ba0457f1ed853fc08e57785f8c87fe7e49c68",
        "0970d2992dfd7d5ec2c787417cf464f01eeaf42a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 16 16:48:56 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 16 16:48:56 2010 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nConflicts: kernel/sched.c\n\nNecessary due to the urgent fixes which conflict with the code move\nfrom sched.c to sched_fair.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6d3e0907b8b239d16720d144e2675ecf10d3bc3b",
      "tree": "e0b0743b5f6f82b057cafc4f3687396a6e01a0b4",
      "parents": [
        "23577256953c870de9b724c3a2611ce7be6a1e4e",
        "50200df462023b187d80a99a52f5f2cfe3c86c26"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 08 08:55:43 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 08 08:55:46 2010 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: Merge dependent fix, update to latest -rc.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea87bb7853168434f4a82426dd1ea8421f9e604d",
      "tree": "fcadec9b0fd1c57e4d1b625e2492c13c852972f1",
      "parents": [
        "7c9414385ebfdd87cc542d4e7e3bb0dbb2d3ce25"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 20 20:58:57 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jan 22 18:09:59 2010 +0100"
      },
      "message": "sched: Extend enqueue_task to allow head queueing\n\nThe ability of enqueueing a task to the head of a SCHED_FIFO priority\nlist is required to fix some violations of POSIX scheduling policy.\n\nExtend the related functions with a \"head\" argument.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nTested-by: Carsten Emde \u003ccbe@osadl.org\u003e\nTested-by: Mathias Weber \u003cmathias.weber.mw1@roche.com\u003e\nLKML-Reference: \u003c20100120171629.734886007@linutronix.de\u003e\n\n"
    },
    {
      "commit": "871e35bc9733f273eaf5ceb69bbd0423b58e5285",
      "tree": "0c740fdbba9ade54143834ce52581b2d76a23795",
      "parents": [
        "8f190fb3f7a405682666d3723f6ec370b5afe4da"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Jan 20 14:02:44 2010 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:17 2010 +0100"
      },
      "message": "sched: Fix the place where group powers are updated\n\nWe want to update the sched_group_powers when balance_cpu \u003d\u003d this_cpu.\n\nCurrently the group powers are updated only if the balance_cpu is the\nfirst CPU in the local group. But balance_cpu \u003d this_cpu could also be\nthe first idle cpu in the group. Hence fix the place where the group\npowers are updated.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Joel Schopp \u003cjschopp@austin.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1264017764.5717.127.camel@jschopp-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f190fb3f7a405682666d3723f6ec370b5afe4da",
      "tree": "4494079705c3c18e5e4f48c5a77877677b244d5d",
      "parents": [
        "f492e12ef050e02bf0185b6b57874992591b9be1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 24 14:18:21 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:15 2010 +0100"
      },
      "message": "sched: Assume *balance is valid\n\nSince all load_balance() callers will have !NULL balance parameters we\ncan now assume so and remove a few checks.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f492e12ef050e02bf0185b6b57874992591b9be1",
      "tree": "b46ac0aeb96fe0e40598c86819cdab5321e5eff7",
      "parents": [
        "1af3ed3ddf27499c3f57662c4c29871e2b95e5f9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 23 15:29:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:14 2010 +0100"
      },
      "message": "sched: Remove load_balance_newidle()\n\nThe two functions: load_balance{,_newidle}() are very similar, with the\nfollowing differences:\n\n - rq-\u003elock usage\n - sb-\u003ebalance_interval updates\n - *balance check\n\nSo remove the load_balance_newidle() call with load_balance(.idle \u003d\nCPU_NEWLY_IDLE), explicitly unlock the rq-\u003elock before calling (would be\ndone by double_lock_balance() anyway), and ignore the other differences\nfor now.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1af3ed3ddf27499c3f57662c4c29871e2b95e5f9",
      "tree": "12e478c9ae078aa7efd8675564cffeb34708d074",
      "parents": [
        "baa8c1102f0cd86e69c1497d61d2ee177e663663"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 23 15:10:31 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:13 2010 +0100"
      },
      "message": "sched: Unify load_balance{,_newidle}()\n\nload_balance() and load_balance_newidle() look remarkably similar, one\nkey point they differ in is the condition on when to active balance.\n\nSo split out that logic into a separate function.\n\nOne side effect is that previously load_balance_newidle() used to fail\nand return -1 under these conditions, whereas now it doesn\u0027t. I\u0027ve not\nyet fully figured out the whole -1 return case for either\nload_balance{,_newidle}().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "baa8c1102f0cd86e69c1497d61d2ee177e663663",
      "tree": "d87729687336b8f4c1e4e08a34f84587d073eaf4",
      "parents": [
        "230059de77a4e0f6afba98073e73bc9fd471506e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 18:10:09 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:13 2010 +0100"
      },
      "message": "sched: Add a lock break for PREEMPT\u003dy\n\nSince load-balancing can hold rq-\u003elocks for quite a long while, allow\nbreaking out early when there is lock contention.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "230059de77a4e0f6afba98073e73bc9fd471506e",
      "tree": "3b76b4e7797f4b66878f42bc45dec6610a14a1f8",
      "parents": [
        "897c395f4c94ae19302f92393a0b8304e414ee06"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 17:47:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:12 2010 +0100"
      },
      "message": "sched: Remove from fwd decls\n\nMove code around to get rid of fwd declarations.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "897c395f4c94ae19302f92393a0b8304e414ee06",
      "tree": "6126d2e5ab28a78af2fa2ba1e397b326baa35f1a",
      "parents": [
        "ee00e66ffff250fb0d3a789e5565462f71c7c9a7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 17:45:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:11 2010 +0100"
      },
      "message": "sched: Remove rq_iterator from move_one_task\n\nAgain, since we only iterate the fair class, remove the abstraction.\n\nSince this is the last user of the rq_iterator, remove all that too.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee00e66ffff250fb0d3a789e5565462f71c7c9a7",
      "tree": "2118b3ef38cec2ad3beb4e958c172307c22ac564",
      "parents": [
        "3d45fd804a95055ecab5b3eed81f5ab2dbb047a2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 17:25:20 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:10 2010 +0100"
      },
      "message": "sched: Remove rq_iterator usage from load_balance_fair\n\nSince we only ever iterate the fair class, do away with this abstraction.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3d45fd804a95055ecab5b3eed81f5ab2dbb047a2",
      "tree": "3ac7d2dbe75c4e406864b7d8c895f9318f308575",
      "parents": [
        "1e3c88bdeb1260edc341e45c9fb8efd182a5c511"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 17:12:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:09 2010 +0100"
      },
      "message": "sched: Remove the sched_class load_balance methods\n\nTake out the sched_class methods for load-balancing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e3c88bdeb1260edc341e45c9fb8efd182a5c511",
      "tree": "532da8871a2a1954ecaa1bb35bdfa7386087fd7d",
      "parents": [
        "6d686f4564f3fc7c6e678852919e48ad331d276b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 17:00:43 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:08 2010 +0100"
      },
      "message": "sched: Move load balance code into sched_fair.c\n\nStraight fwd code movement.\n\nSince non of the load-balance abstractions are used anymore, do away with\nthem and simplify the code some. In preparation move the code around.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "50b926e439620c469565e8be0f28be78f5fca1ce",
      "tree": "3eb4b4aa89ed7c6d61457cdf745c5d52f577671a",
      "parents": [
        "24bc7347da73a9ed3383056c3d0f28c0e361621e"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Jan 04 14:44:56 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:39:03 2010 +0100"
      },
      "message": "sched: Fix vmark regression on big machines\n\nSD_PREFER_SIBLING is set at the CPU domain level if power saving isn\u0027t\nenabled, leading to many cache misses on large machines as we traverse\nlooking for an idle shared cache to wake to.  Change the enabler of\nselect_idle_sibling() to SD_SHARE_PKG_RESOURCES, and enable same at the\nsibling domain level.\n\nReported-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1262612696.15495.15.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d686f4564f3fc7c6e678852919e48ad331d276b",
      "tree": "642c214879c1e1e5fbadc88c33ad47fe67a94433",
      "parents": [
        "d894837f23f491aa7ed167aae767fc07cfe6e6e6"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Wed Jan 13 20:21:52 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 17 08:09:45 2010 +0100"
      },
      "message": "sched: Don\u0027t expose local functions\n\nkernel/sched: don\u0027t expose local functions\n\nThe get_rr_interval_* functions are all class methods of\nstruct sched_class. They are not exported so make them\nstatic.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c201001132021.53253.hartleys@visionengravers.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "88ec22d3edb72b261f8628226cd543589a6d5e1b",
      "tree": "ca547c82ab6adce0b9e29afb6ceddf50cd417d44",
      "parents": [
        "efbbd05a595343a413964ad85a2ad359b7b7efbd"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 16 18:04:41 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 19:01:58 2009 +0100"
      },
      "message": "sched: Remove the cfs_rq dependency from set_task_cpu()\n\nIn order to remove the cfs_rq dependency from set_task_cpu() we\nneed to ensure the task is cfs_rq invariant for all callsites.\n\nThe simple approach is to substract cfs_rq-\u003emin_vruntime from\nse-\u003evruntime on dequeue, and add cfs_rq-\u003emin_vruntime on\nenqueue.\n\nHowever, this has the downside of breaking FAIR_SLEEPERS since\nwe loose the old vruntime as we only maintain the relative\nposition.\n\nTo solve this, we observe that we only migrate runnable tasks,\nwe do this using deactivate_task(.sleep\u003d0) and\nactivate_task(.wakeup\u003d0), therefore we can restrain the\nmin_vruntime invariance to that state.\n\nThe only other case is wakeup balancing, since we want to\nmaintain the old vruntime we cannot make it relative on dequeue,\nbut since we don\u0027t migrate inactive tasks, we can do so right\nbefore we activate it again.\n\nThis is where we need the new pre-wakeup hook, we need to call\nthis while still holding the old rq-\u003elock. We could fold it into\n-\u003eselect_task_rq(), but since that has multiple callsites and\nwould obfuscate the locking requirements, that seems like a\nfudge.\n\nThis leaves the fork() case, simply make sure that -\u003etask_fork()\nleaves the -\u003evruntime in a relative state.\n\nThis covers all cases where set_task_cpu() gets called, and\nensures it sees a relative vruntime.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091216170518.191697025@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e4f4288842ee12747e10c354d72be7d424c0b627",
      "tree": "e9b066cc886e4b28db60b2626b682986f34a3bda",
      "parents": [
        "e6c8fba7771563b2f3dfb96a78f36ec17e15bdf0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 16 18:04:34 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 19:01:55 2009 +0100"
      },
      "message": "sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE\n\nWe should skip !SD_LOAD_BALANCE domains.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091216170517.653578430@chello.nl\u003e\nCC: stable@kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05fa785cf80c9b7c0254c3056037147aed3ea16b",
      "tree": "3d5c69d449b9240dc6d1005dddf344e467de4f34",
      "parents": [
        "a26724591edba5acc528d41f3906a972590e8f54"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 14:28:38 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "sched: Convert rq-\u003elock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n"
    },
    {
      "commit": "acb4a848da821a095ae9e4d8b22ae2d9633ba5cd",
      "tree": "152efff68841e554eb71c82a97d3ed9571352581",
      "parents": [
        "1983a922a1bc843806b9a36cf3a370b242783140"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Nov 30 12:16:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:04:02 2009 +0100"
      },
      "message": "sched: Update normalized values on user updates via proc\n\nThe normalized values are also recalculated in case the scaling factor\nchanges.\n\nThis patch updates the internally used scheduler tuning values that are\nnormalized to one cpu in case a user sets new values via sysfs.\n\nTogether with patch 2 of this series this allows to let user configured\nvalues scale (or not) to cpu add/remove events taking place later.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1259579808-11357-4-git-send-email-ehrhardt@linux.vnet.ibm.com\u003e\n[ v2: fix warning ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1983a922a1bc843806b9a36cf3a370b242783140",
      "tree": "3071f23d39e05587823a40033c4c11a0867dd46e",
      "parents": [
        "0bcdcf28c979869f44e05121b96ff2cfb05bd8e6"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Nov 30 12:16:47 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:04:01 2009 +0100"
      },
      "message": "sched: Make tunable scaling style configurable\n\nAs scaling now takes place on all kind of cpu add/remove events a user\nthat configures values via proc should be able to configure if his set\nvalues are still rescaled or kept whatever happens.\n\nAs the comments state that log2 was just a second guess that worked the\ninterface is not just designed for on/off, but to choose a scaling type.\nCurrently this allows none, log and linear, but more important it allwos\nus to keep the interface even if someone has an even better idea how to\nscale the values.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1259579808-11357-3-git-send-email-ehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0bcdcf28c979869f44e05121b96ff2cfb05bd8e6",
      "tree": "c70b8fb37fec9badf95ac2ea679407334f580ae5",
      "parents": [
        "57785df5ac53c70da9fb53696130f3c551bfe1f9"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Mon Nov 30 12:16:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:58 2009 +0100"
      },
      "message": "sched: Fix missing sched tunable recalculation on cpu add/remove\n\nBased on Peter Zijlstras patch suggestion this enables recalculation of\nthe scheduler tunables in response of a change in the number of cpus. It\nalso adds a max of eight cpus that are considered in that scaling.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1259579808-11357-2-git-send-email-ehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb58bac5c75bfff8bbf7d02071a10a62f32fe28b",
      "tree": "b2ff68b388efa043c152d75254da27171ea5e586",
      "parents": [
        "6cecd084d0fd27bb1e498e2829fd45846d806856"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Dec 01 12:21:47 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:08 2009 +0100"
      },
      "message": "sched: Remove unnecessary RCU exclusion\n\nAs Nick pointed out, and realized by myself when doing:\n   sched: Fix balance vs hotplug race\nthe patch:\n   sched: for_each_domain() vs RCU\n\nis wrong, sched_domains are freed after synchronize_sched(), which\nmeans disabling preemption is enough.\n\nReported-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6cecd084d0fd27bb1e498e2829fd45846d806856",
      "tree": "90cc079c942ad35669d1a33957a121c1cb3a88a6",
      "parents": [
        "3a7e73a2e26fffdbc46ba95fc0425418984f5140"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 30 13:00:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:07 2009 +0100"
      },
      "message": "sched: Discard some old bits\n\nWAKEUP_RUNNING was an experiment, not sure why that ever ended up being\nmerged...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3a7e73a2e26fffdbc46ba95fc0425418984f5140",
      "tree": "02fdd1c081acfde7522a971bc2969bca76ca90c7",
      "parents": [
        "a65ac745e47e91f9d98dbf07f22ed0492e34d998"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Nov 28 18:51:02 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:07 2009 +0100"
      },
      "message": "sched: Clean up check_preempt_wakeup()\n\nStreamline the wakeup preemption code a bit, unifying the preempt path\nso that they all do the same.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a65ac745e47e91f9d98dbf07f22ed0492e34d998",
      "tree": "246b0953cbf4e2d890d71d01cbfb070f8e4b1811",
      "parents": [
        "cd29fe6f2637cc2ccbda5ac65f5332d6bf5fa3c6"
      ],
      "author": {
        "name": "Jupyung Lee",
        "email": "jupyung@gmail.com",
        "time": "Tue Nov 17 18:51:40 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:06 2009 +0100"
      },
      "message": "sched: Move update_curr() in check_preempt_wakeup() to avoid redundant call\n\nIf a RT task is woken up while a non-RT task is running,\ncheck_preempt_wakeup() is called to check whether the new task can\npreempt the old task. The function returns quickly without going deeper\nbecause it is apparent that a RT task can always preempt a non-RT task.\n\nIn this situation, check_preempt_wakeup() always calls update_curr() to\nupdate vruntime value of the currently running task. However, the\nfunction call is unnecessary and redundant at that moment because (1) a\nnon-RT task can always be preempted by a RT task regardless of its\nvruntime value, and (2) update_curr() will be called shortly when the\ncontext switch between two occurs.\n\nBy moving update_curr() in check_preempt_wakeup(), we can avoid\nredundant call to update_curr(), slightly reducing the time taken to\nwake up RT tasks.\n\nSigned-off-by: Jupyung Lee \u003cjupyung@gmail.com\u003e\n[ Place update_curr() right before the wake_preempt_entity() call, which\n  is the only thing that relies on the updated vruntime ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1258451500-6714-1-git-send-email-jupyung@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd29fe6f2637cc2ccbda5ac65f5332d6bf5fa3c6",
      "tree": "b4206012d424a8c0bce1f260d042c678db0602a2",
      "parents": [
        "ab19cb23313733c55e0517607844b86720b35f5f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 27 17:32:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:03:05 2009 +0100"
      },
      "message": "sched: Sanitize fork() handling\n\nCurrently we try to do task placement in wake_up_new_task() after we do\nthe load-balance pass in sched_fork(). This yields complicated semantics\nin that we have to deal with tasks on different RQs and the\nset_task_cpu() calls in copy_process() and sched_fork()\n\nRename -\u003etask_new() to -\u003etask_fork() and call it from sched_fork()\nbefore the balancing, this gives the policy a clear point to place the\ntask.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dba091b9e3522b9d32fc9975e48d3b69633b45f0",
      "tree": "91549e3921971b6d0074fd34c29223b593381c8a",
      "parents": [
        "3160568371da441b7f2fb57f2f1225404207e8f2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 09 09:32:03 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:01:07 2009 +0100"
      },
      "message": "sched: Protect sched_rr_get_param() access to task-\u003esched_class\n\nsched_rr_get_param calls\ntask-\u003esched_class-\u003eget_rr_interval(task) without protection\nagainst a concurrent sched_setscheduler() call which modifies\ntask-\u003esched_class.\n\nSerialize the access with task_rq_lock(task) and hand the rq\npointer into get_rr_interval() as it\u0027s needed at least in the\nsched_fair implementation.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.0912090930120.3089@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "16bc67edeb49b531940b2ba6c183780a1b5c472d",
      "tree": "71b4bc48e47e54f2c0b3126d8f81d2f31b707ea8",
      "parents": [
        "f6630114d9198aa959ac95c131334c020038f253",
        "047106adcc85e3023da210143a6ab8a55df9e0fc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:42 2009 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: Pick up fixes that did not make it into .32.0\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "36ace27e3e60d44ea69ce394b2e45386ae98d9d9",
      "tree": "059cf2b286d14b90e6a2515e7014eff82b5c73c6",
      "parents": [
        "429947248f814e90f416ab4f68a871ab628000c3"
      ],
      "author": {
        "name": "Tim Blechmann",
        "email": "tim@klingt.org",
        "time": "Tue Nov 24 11:55:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 24 12:18:12 2009 +0100"
      },
      "message": "sched: Optimize branch hint in pick_next_task_fair()\n\nBranch hint profiling on my nehalem machine showed 90%\nincorrect branch hints:\n\n  15728471 158903754  90 pick_next_task_fair\n  sched_fair.c    1555\n\nSigned-off-by: Tim Blechmann \u003ctim@klingt.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B0BBBB1.2050100@klingt.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fe3bcfe1f6c1fc4ea7706ac2d05e579fd9092682",
      "tree": "2de57bbb385face039f7e6c0da38f86e545076a0",
      "parents": [
        "a50bde5130f65733142b32975616427d0ea50856"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Nov 12 15:55:29 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 13 10:09:59 2009 +0100"
      },
      "message": "sched: More generic WAKE_AFFINE vs select_idle_sibling()\n\nInstead of only considering SD_WAKE_AFFINE | SD_PREFER_SIBLING\ndomains also allow all SD_PREFER_SIBLING domains below a\nSD_WAKE_AFFINE domain to change the affinity target.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091112145610.909723612@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a50bde5130f65733142b32975616427d0ea50856",
      "tree": "c2bf0c04fbebfa0f3d6ae8b709f754d5fce4b831",
      "parents": [
        "761b1d26df542fd5eb348837351e4d2f3bc7bffe"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Nov 12 15:55:28 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 13 10:09:58 2009 +0100"
      },
      "message": "sched: Cleanup select_task_rq_fair()\n\nClean up the new affine to idle sibling bits while trying to\ngrok them. Should not have any function differences.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091112145610.832503781@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd210738f6601d0fb462df9a2fe5a41896ff6a8f",
      "tree": "0f4488bd171590ed33930edf7684449b9437f11c",
      "parents": [
        "1b9508f6831e10d53256825de8904caa22d1ca2c"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Nov 05 10:57:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 05 11:01:39 2009 +0100"
      },
      "message": "sched: Fix affinity logic in select_task_rq_fair()\n\nIngo Molnar reported:\n\n[   26.804000] BUG: using smp_processor_id() in preemptible [00000000] code: events/1/10\n[   26.808000] caller is vmstat_update+0x26/0x70\n[   26.812000] Pid: 10, comm: events/1 Not tainted 2.6.32-rc5 #6887\n[   26.816000] Call Trace:\n[   26.820000]  [\u003cc1924a24\u003e] ? printk+0x28/0x3c\n[   26.824000]  [\u003cc13258a0\u003e] debug_smp_processor_id+0xf0/0x110\n[   26.824000] mount used greatest stack depth: 1464 bytes left\n[   26.828000]  [\u003cc111d086\u003e] vmstat_update+0x26/0x70\n[   26.832000]  [\u003cc1086418\u003e] worker_thread+0x188/0x310\n[   26.836000]  [\u003cc10863b7\u003e] ? worker_thread+0x127/0x310\n[   26.840000]  [\u003cc108d310\u003e] ? autoremove_wake_function+0x0/0x60\n[   26.844000]  [\u003cc1086290\u003e] ? worker_thread+0x0/0x310\n[   26.848000]  [\u003cc108cf0c\u003e] kthread+0x7c/0x90\n[   26.852000]  [\u003cc108ce90\u003e] ? kthread+0x0/0x90\n[   26.856000]  [\u003cc100c0a7\u003e] kernel_thread_helper+0x7/0x10\n[   26.860000] BUG: using smp_processor_id() in preemptible [00000000] code: events/1/10\n[   26.864000] caller is vmstat_update+0x3c/0x70\n\nBecause this commit:\n\n  a1f84a3: sched: Check for an idle shared cache in select_task_rq_fair()\n\nbroke -\u003ecpus_allowed.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: arjan@infradead.org\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c1257415066.12867.1.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a1f84a3ab8e002159498814eaa7e48c33752b04b",
      "tree": "070b6c105c510460b314c20e17de4b5b89eb6a48",
      "parents": [
        "acc3f5d7cabbfd6cec71f0c1f9900621fa2d6ae7"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Oct 27 15:35:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 18:46:22 2009 +0100"
      },
      "message": "sched: Check for an idle shared cache in select_task_rq_fair()\n\nWhen waking affine, check for an idle shared cache, and if\nfound, wake to that CPU/sibling instead of the waker\u0027s CPU.\n\nThis improves pgsql+oltp ramp up by roughly 8%. Possibly more\nfor other loads, depending on overlap. The trade-off is a\nroughly 1% peak downturn if tasks are truly synchronous.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c1256654138.17752.7.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f685ceacab07d3f6c236f04803e2f2f0dbcc5afb",
      "tree": "f5fbbb177ccb784ffa6d6224b7b8f0cb8a096bb9",
      "parents": [
        "92f6a5e37a2e2d3342dafb2b39c2f8bc340bbf84"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Oct 23 23:09:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 23 23:48:28 2009 +0200"
      },
      "message": "sched: Strengthen buddies and mitigate buddy induced latencies\n\nThis patch restores the effectiveness of LAST_BUDDY in preventing\npgsql+oltp from collapsing due to wakeup preemption. It also\nswitches LAST_BUDDY to exclusively do what it does best, namely\nmitigate the effects of aggressive wakeup preemption, which\nimproves vmark throughput markedly, and restores mysql+oltp\nscalability.\n\nSince buddies are about scalability, enable them beginning at the\npoint where we begin expanding sched_latency, namely\nsched_nr_latency. Previously, buddies were cleared aggressively,\nwhich seriously reduced their effectiveness. Not clearing\naggressively however, produces a small drop in mysql+oltp\nthroughput immediately after peak, indicating that LAST_BUDDY is\nactually doing some harm. This is right at the point where X on the\ndesktop in competition with another load wants low latency service.\nErgo, do not enable until we need to scale.\n\nTo mitigate latency induced by buddies, or by a task just missing\nwakeup preemption, check latency at tick time.\n\nLast hunk prevents buddies from stymieing BALANCE_NEWIDLE via\nCACHE_HOT_BUDDY.\n\nSupporting performance tests:\n\n tip   \u003d v2.6.32-rc5-1497-ga525b32\n tipx  \u003d NO_GENTLE_FAIR_SLEEPERS NEXT_BUDDY granularity knobs \u003d 31 knobs + 31 buddies\n tip+x \u003d NO_GENTLE_FAIR_SLEEPERS granularity knobs \u003d 31 knobs\n\n(Three run averages except where noted.)\n\n vmark:\n ------\n tip           108466 messages per second\n tip+          125307 messages per second\n tip+x         125335 messages per second\n tipx          117781 messages per second\n 2.6.31.3      122729 messages per second\n\n mysql+oltp:\n -----------\n clients          1        2        4        8       16       32       64        128    256\n ..........................................................................................\n tip        9949.89 18690.20 34801.24 34460.04 32682.88 30765.97 28305.27 25059.64 19548.08\n tip+      10013.90 18526.84 34900.38 34420.14 33069.83 32083.40 30578.30 28010.71 25605.47\n tipx       9698.71 18002.70 34477.56 33420.01 32634.30 31657.27 29932.67 26827.52 21487.18\n 2.6.31.3   8243.11 18784.20 34404.83 33148.38 31900.32 31161.90 29663.81 25995.94 18058.86\n\n pgsql+oltp:\n -----------\n clients          1        2        4        8       16       32       64      128      256\n ..........................................................................................\n tip       13686.37 26609.25 51934.28 51347.81 49479.51 45312.65 36691.91 26851.57 24145.35\n tip+ (1x) 13907.85 27135.87 52951.98 52514.04 51742.52 50705.43 49947.97 48374.19 46227.94\n tip+x     13906.78 27065.81 52951.19 52542.59 52176.11 51815.94 50838.90 49439.46 46891.00\n tipx      13742.46 26769.81 52351.99 51891.73 51320.79 50938.98 50248.65 48908.70 46553.84\n 2.6.31.3  13815.35 26906.46 52683.34 52061.31 51937.10 51376.80 50474.28 49394.47 47003.25\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "92f6a5e37a2e2d3342dafb2b39c2f8bc340bbf84",
      "tree": "1e71e909fbf74b09863815549dbbe67d1661ab2b",
      "parents": [
        "799e2205ec65e174f752b558c62a92c4752df313"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 09 12:43:07 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 14 15:02:34 2009 +0200"
      },
      "message": "sched: Do less agressive buddy clearing\n\nYanmin reported a hackbench regression due to:\n\n \u003e commit de69a80be32445b0a71e8e3b757e584d7beb90f7\n \u003e Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n \u003e Date:   Thu Sep 17 09:01:20 2009 +0200\n \u003e\n \u003e     sched: Stop buddies from hogging the system\n\nI really liked de69a80b, and it affecting hackbench shows I wasn\u0027t\ncrazy ;-)\n\nSo hackbench is a multi-cast, with one sender spraying multiple\nreceivers, who in their turn don\u0027t spray back.\n\nThis would be exactly the scenario that patch \u0027cures\u0027. Previously\nwe would not clear the last buddy after running the next task,\nallowing the sender to get back to work sooner than it otherwise\nought to have been, increasing latencies for other tasks.\n\nNow, since those receivers don\u0027t poke back, they don\u0027t enforce the\nbuddy relation, which means there\u0027s nothing to re-elect the sender.\n\nCure this by less agressively clearing the buddy stats. Only clear\nbuddies when they were not chosen. It should still avoid a buddy\nsticking around long after its served its time.\n\nReported-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c1255084986.8802.46.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e4bc3dd2ca07d77882eba73cea240aba95a1854",
      "tree": "da105cd2c4f51c78c401c00d8b399572914694ed",
      "parents": [
        "bd4c3a3441144cd46d1f544046523724c5bc6e94",
        "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:17 2009 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Simplify sys_sched_rr_get_interval() system call\n  sched: Fix potential NULL derference of doms_cur\n  sched: Fix raciness in runqueue_is_locked()\n  sched: Re-add lost cpu_allowed check to sched_fair.c::select_task_rq_fair()\n  sched: Remove unneeded indentation in sched_fair.c::place_entity()\n"
    },
    {
      "commit": "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1",
      "tree": "54c0c8dc201122483bdd7e8975103b07f6afd34b",
      "parents": [
        "cb5fd13f1178dee4302646b2890d884c380160e1"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Mon Sep 21 01:31:53 2009 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 09:53:55 2009 +0200"
      },
      "message": "sched: Simplify sys_sched_rr_get_interval() system call\n\nBy removing the need for it to know details of scheduling classes.\n\nThis allows PlugSched to define orthogonal scheduling classes.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c06d1b89ee15a0eef82d7.1253496713@mudlark.pw.nest\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f04e8cd5b24727a2500f8ab8f3de730ba47b02c",
      "tree": "d4f11319d7508055dffb13c4aafc623fd3a0180f",
      "parents": [
        "a2e7a7eb2fea109891ffff90f947e8306080a2a3"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Sat Sep 19 16:52:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 17:11:31 2009 +0200"
      },
      "message": "sched: Re-add lost cpu_allowed check to sched_fair.c::select_task_rq_fair()\n\nWhile doing some testing, I pinned mplayer, only to find it\nfollowing X around like a puppy. Looking at commit c88d591, I found\na cpu_allowed check that went AWOL.  I plugged it back in where it\nlooks like it needs to go, and now when I say \"sit, stay!\", mplayer\nobeys again.\n\n\u0027c88d591 sched: Merge select_task_rq_fair() and\nsched_balance_self()\u0027 accidentally dropped the check, causing\nwake_affine() to pull pinned tasks - put it back.\n\n[ v2: use a cheaper version from Peter ]\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "929bf0d0156562ce631728b6fa53d68004d456d2",
      "tree": "739063990a8077b29ef97e69d73bce94573daae4",
      "parents": [
        "def0a9b2573e00ab0b486cb5382625203ab4c4a6",
        "202c4675c55ddf6b443c7e057d2dff6b42ef71aa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 11:27:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 11:28:41 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perfcounters/core\n\nMerge reason: Bring in tracing changes we depend on.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2e7a7eb2fea109891ffff90f947e8306080a2a3",
      "tree": "a6b63d5041c1f506300fbf4852b410cf47d8098f",
      "parents": [
        "df58bee21ed218cb7dfb561a590b1bd2a99531cf"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Sep 18 09:19:25 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 09:22:39 2009 +0200"
      },
      "message": "sched: Remove unneeded indentation in sched_fair.c::place_entity()\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1253258365.22787.33.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29cd8bae396583a2ee9a3340db8c5102acf9f6fd",
      "tree": "d16fba0c7c7da9047db532fcf5cbb847bd6fea51",
      "parents": [
        "de69a80be32445b0a71e8e3b757e584d7beb90f7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 17 09:01:14 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:40:31 2009 +0200"
      },
      "message": "sched: Fix SD_POWERSAVING_BALANCE|SD_PREFER_LOCAL vs SD_WAKE_AFFINE\n\nThe SD_POWERSAVING_BALANCE|SD_PREFER_LOCAL code can break out of\nthe domain iteration early, making us miss the SD_WAKE_AFFINE bits.\n\nFix this by continuing iteration until there is no need for a\nlarger domain.\n\nThis also cleans up the cgroup stuff a bit, but not having two\nupdate_shares() invocations.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "de69a80be32445b0a71e8e3b757e584d7beb90f7",
      "tree": "3a8d6bf8e5aded3c371e5dc090b8874305952d1f",
      "parents": [
        "ad4b78bbcbab66998b05d422ac6106b645796e54"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 17 09:01:20 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:40:30 2009 +0200"
      },
      "message": "sched: Stop buddies from hogging the system\n\nClear buddies more agressively.\n\nThe (theoretical, haven\u0027t actually observed any of this) problem is\nthat when we do not select either buddy in pick_next_entity()\nbecause they are too far ahead of the left-most task, we do not\nclear the buddies.\n\nThis means that as soon as we service the left-most task, these\nsame buddies will be tried again on the next schedule. Now if the\nleft-most task was a pure hog, it wouldn\u0027t have done any wakeups\nand it wouldn\u0027t have set buddies of its own. That leads to the old\nbuddies dominating, which would lead to bad latencies.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad4b78bbcbab66998b05d422ac6106b645796e54",
      "tree": "45f3561f4bd6b886948a3b0eea64edab9bab9eda",
      "parents": [
        "eb24073bc1fe3e569a855cf38d529fb650c35524"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Sep 16 12:31:31 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:17:25 2009 +0200"
      },
      "message": "sched: Add new wakeup preemption mode: WAKEUP_RUNNING\n\nCreate a new wakeup preemption mode, preempt towards tasks that run\nshorter on avg. It sets next buddy to be sure we actually run the task\nwe preempted for.\n\nTest results:\n\n root@twins:~# while :; do :; done \u0026\n [1] 6537\n root@twins:~# while :; do :; done \u0026\n [2] 6538\n root@twins:~# while :; do :; done \u0026\n [3] 6539\n root@twins:~# while :; do :; done \u0026\n [4] 6540\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max          4750 usec\n        Avg           497 usec\n        Stdev         737 usec\n\n root@twins:/home/peter# echo WAKEUP_RUNNING \u003e /debug/sched_features\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max            14 usec\n        Avg             5 usec\n        Stdev           3 usec\n\nDisabled by default - needs more testing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003cnew-submission\u003e\n"
    },
    {
      "commit": "5a9b86f647a56862cdc0a1362bfb015ae921af7f",
      "tree": "656652186f9f5198e73139f6362afd7b6584eca1",
      "parents": [
        "5158f4e4428c6b8d52796b3b460e95796123a114"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 13:47:58 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 16:44:33 2009 +0200"
      },
      "message": "sched: Rename flags to wake_flags\n\nFor consistencies sake, rename the argument (again).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5158f4e4428c6b8d52796b3b460e95796123a114",
      "tree": "25f62ffd3e427fc8f5b6b6be434bc3918dc59960",
      "parents": [
        "3b6408942206f940dd538e980e9904e48f4b64f8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 13:46:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 16:44:32 2009 +0200"
      },
      "message": "sched: Clean up the load_idx selection in select_task_rq_fair\n\nClean up the code a little.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b6408942206f940dd538e980e9904e48f4b64f8",
      "tree": "7e0a0dc37d07e0308ef2294a5de1cd1ea42a388c",
      "parents": [
        "7c423e98856df9b941223a7e7845b2502ad84b00"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 13:44:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 16:44:32 2009 +0200"
      },
      "message": "sched: Optimize cgroup vs wakeup a bit\n\nWe don\u0027t need to call update_shares() for each domain we iterate,\njust got the largets one.\n\nHowever, we should call it before wake_affine() as well, so that\nthat can use up-to-date values too.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51e0304ce6e55a6e59658558916b4f74da085ff0",
      "tree": "da17f8f9f1b3b0431cd0cd1e90ea95f970654f9f",
      "parents": [
        "59abf02644c45f1591e1374ee7bb45dc757fcb88"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 08:54:45 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 09:05:20 2009 +0200"
      },
      "message": "sched: Implement a gentler fair-sleepers feature\n\nAdd back FAIR_SLEEPERS and GENTLE_FAIR_SLEEPERS.\n\nFAIR_SLEEPERS is the old logic: credit sleepers with their sleep time.\n\nGENTLE_FAIR_SLEEPERS dampens this a bit: 50% of their sleep time gets\ncredited.\n\nThe hope here is to still give the benefits of fair-sleepers logic\n(quick wakeups, etc.) while not allow them to have 100% of their\nsleep time as if they were running.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "59abf02644c45f1591e1374ee7bb45dc757fcb88",
      "tree": "ce9cb0a4a57873b9d7d75cce4d28308019367192",
      "parents": [
        "e69b0f1b41c0e57bb1e29100b5810a5914efcb45"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 08:28:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 08:42:40 2009 +0200"
      },
      "message": "sched: Add SD_PREFER_LOCAL\n\nAnd turn it on for NUMA and MC domains. This improves\nlocality in balancing decisions by keeping up to\ncapacity amount of tasks local before looking for idle\nCPUs. (and twice the capacity if SD_POWERSAVINGS_BALANCE\nis set.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e69b0f1b41c0e57bb1e29100b5810a5914efcb45",
      "tree": "ded9f35988e907c1b9cf45cd2f536b920f5f65b7",
      "parents": [
        "63859d4fe4c97b737e7adbfe60acb1c2b2e668cb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 15 19:38:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 19:47:23 2009 +0200"
      },
      "message": "sched: Add a few SYNC hint knobs to play with\n\nCurrently we use overlap to weaken the SYNC hint, but allow it to\nset the hint as well.\n\n echo NO_SYNC_WAKEUP \u003e /debug/sched_features\n echo SYNC_MORE \u003e /debug/sched_features\n\npreserves pipe-test behaviour without using the WF_SYNC hint.\n\nWorth playing with on more workloads...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7558e01056f5191ff2ecff53b075dcb9e484188",
      "tree": "1364bbf9273ce353f4f3146aebe567f79b7c8cad",
      "parents": [
        "7d47872146398dbede13223299fe1cb368ebc781"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 20:02:34 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:31 2009 +0200"
      },
      "message": "sched: Add WF_FORK\n\nAvoid the cache buddies from biasing the time distribution away\nfrom fork()ers. Normally the next buddy will be the preferred\nscheduling target, but this makes fork()s prefer to run the new\nchild, whereas we prefer to run the parent, since that will\ngenerate more work.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d47872146398dbede13223299fe1cb368ebc781",
      "tree": "c472424ecbabdb8136e2b93f49f75af9414f03f3",
      "parents": [
        "0763a660a84220cc3900fd32abdd7ad109e2278d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:55:44 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:30 2009 +0200"
      },
      "message": "sched: Rename sync arguments\n\nIn order to extend the functions to have more than 1 flag (sync),\nrename the argument to flags, and explicitly define a WF_ space for\nindividual flags.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0763a660a84220cc3900fd32abdd7ad109e2278d",
      "tree": "1b745884fb79627e05c026ee5bfb115b1f722db8",
      "parents": [
        "8e6598af3f35629c37249a610cf13e73f70db279"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:37:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:29 2009 +0200"
      },
      "message": "sched: Rename select_task_rq() argument\n\nIn order to be able to rename the sync argument, we need to rename\nthe current flag argument.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "78e7ed53c9f42f04f9401ada6f7047db60781676",
      "tree": "24f45333ce4479b27c96b425c7d09c080a26609f",
      "parents": [
        "d7c33c4930f569caf6b2ece597432853c4151a45"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 03 13:16:51 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:07 2009 +0200"
      },
      "message": "sched: Tweak wake_idx\n\nWhen merging select_task_rq_fair() and sched_balance_self() we lost\nthe use of wake_idx, restore that and set them to 0 to make wake\nbalancing more aggressive.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7c33c4930f569caf6b2ece597432853c4151a45",
      "tree": "96a0eca96b0109a0dbc2c7a92065cafcf5660718",
      "parents": [
        "83f54960c11a14942ab00b54c51e91906b9d8235"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 11 12:45:38 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:07 2009 +0200"
      },
      "message": "sched: Fix task affinity for select_task_rq_fair\n\nWhile merging select_task_rq_fair() and sched_balance_self() I made\na mistake that leads to testing the wrong task affinty.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83f54960c11a14942ab00b54c51e91906b9d8235",
      "tree": "6c7df778777568bb0c7375b4e7ec84ed532809df",
      "parents": [
        "ae154be1f34a674e6cbb43ccf6e442f56acd7a70"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 18:18:47 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:06 2009 +0200"
      },
      "message": "sched: for_each_domain() vs RCU\n\nfor_each_domain() uses RCU to serialize the sched_domains, except\nit doesn\u0027t actually use rcu_read_lock() and instead relies on\ndisabling preemption -\u003e FAIL.\n\nXXX: audit other sched_domain code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ae154be1f34a674e6cbb43ccf6e442f56acd7a70",
      "tree": "e1feba2c818216c97e11801ee7a6e3c2592b10af",
      "parents": [
        "c88d5910890ad35af283344417891344604f0438"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 14:40:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:06 2009 +0200"
      },
      "message": "sched: Weaken SD_POWERSAVINGS_BALANCE\n\nOne of the problems of power-saving balancing is that under certain\nscenarios it is too slow and allows tons of real work to pile up.\n\nAvoid this by ignoring the powersave stuff when there\u0027s real work\nto be done.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c88d5910890ad35af283344417891344604f0438",
      "tree": "4e2025d569c3e03a7ec5163f0a9bc159114ee14e",
      "parents": [
        "e9c8431185d6c406887190519f6dbdd112641686"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:50:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:05 2009 +0200"
      },
      "message": "sched: Merge select_task_rq_fair() and sched_balance_self()\n\nThe problem with wake_idle() is that is doesn\u0027t respect things like\ncpu_power, which means it doesn\u0027t deal well with SMT nor the recent\nRT interaction.\n\nTo cure this, it needs to do what sched_balance_self() does, which\nleads to the possibility of merging select_task_rq_fair() and\nsched_balance_self().\n\nModify sched_balance_self() to:\n\n  - update_shares() when walking up the domain tree,\n    (it only called it for the top domain, but it should\n     have done this anyway), which allows us to remove\n    this ugly bit from try_to_wake_up().\n\n  - do wake_affine() on the smallest domain that contains\n    both this (the waking) and the prev (the wakee) cpu for\n    WAKE invocations.\n\nThen use the top-down balance steps it had to replace wake_idle().\n\nThis leads to the dissapearance of SD_WAKE_BALANCE and\nSD_WAKE_IDLE_FAR, with SD_WAKE_IDLE replaced with SD_BALANCE_WAKE.\n\nSD_WAKE_AFFINE needs SD_BALANCE_WAKE to be effective.\n\nTouch all topology bits to replace the old with new SD flags --\nplatforms might need re-tuning, enabling SD_BALANCE_WAKE\nconditionally on a NUMA distance seems like a good additional\nfeature, magny-core and small nehalem systems would want this\nenabled, systems with slow interconnects would not.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f",
      "tree": "46f987010ca017be945831b76d8ea846f1ba8fc9",
      "parents": [
        "aaee1203ca52b9db799433c33c9bffc33cdf8909"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:42:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:04 2009 +0200"
      },
      "message": "sched: Hook sched_balance_self() into sched_class::select_task_rq()\n\nRather ugly patch to fully place the sched_balance_self() code\ninside the fair class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aaee1203ca52b9db799433c33c9bffc33cdf8909",
      "tree": "27da699a8034090f8be9e24d1b7cedb8f6cdf804",
      "parents": [
        "f5f08f39ee4c5fd0a757d25d9e04d696676b3df7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:36:25 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:04 2009 +0200"
      },
      "message": "sched: Move sched_balance_self() into sched_fair.c\n\nMove the sched_balance_self() code into sched_fair.c\n\nThis facilitates the merger of sched_balance_self() and\nsched_fair::select_task_rq().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3cb63d527f76e25dbccce4f577f21aecfa2abac7",
      "tree": "2a4e940aa108b8c1f9a524dbf3294db88c5f9098",
      "parents": [
        "e6b1b2c9c0461c4e0971ed905ce3cda6512ee82a"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Sep 11 12:01:17 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:02 2009 +0200"
      },
      "message": "sched: Complete buddy switches\n\nAdd a NEXT_BUDDY feature flag to aid in debugging.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6b1b2c9c0461c4e0971ed905ce3cda6512ee82a",
      "tree": "6462056dec7dcf59139f38d399f2cb27b07bd609",
      "parents": [
        "b78bb868c54bebbf8d8786a3f8320700d6d2b864"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 11 11:59:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:02 2009 +0200"
      },
      "message": "sched: Split WAKEUP_OVERLAP\n\nIt consists of two conditions, split them out in separate toggles\nso we can test them independently.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f977bb4937857994312fff4f9c2cad336a36a932",
      "tree": "ce4736f585cfb9ecb3f959f6fe77997852dd00e3",
      "parents": [
        "c13f0d3c8165e9592102687fa999da0a0d9c3724"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 13 18:15:54 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 13 18:17:28 2009 +0200"
      },
      "message": "perf_counter, sched: Add sched_stat_runtime tracepoint\n\nThis allows more precise tracking of how the scheduler accounts\n(and acts upon) a task having spent N nanoseconds of CPU time.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1f8450854d69f0291882804406ea1bab3ca44b4",
      "tree": "606e2176f7654269de904b15aad9491912db4093",
      "parents": [
        "3f2aa307c4d26b4ed6509d0a79e8254c9e07e921"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 10 20:52:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 10 20:52:54 2009 +0200"
      },
      "message": "sched: Fix sched::sched_stat_wait tracepoint field\n\nThis weird perf trace output:\n\n  cc1-9943  [001]  2802.059479616: sched_stat_wait: task: as:9944 wait: 2801938766276 [ns]\n\nIs caused by setting one component field of the delta to zero\na bit too early. Move it to later.\n\n( Note, this does not affect the NEW_FAIR_SLEEPERS interactivity bug,\n  it\u0027s just a reporting bug in essence. )\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikos Chantziaras \u003crealnc@arcor.de\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c4AA93D34.8040500@arcor.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "172e082a9111ea504ee34cbba26284a5ebdc53a7",
      "tree": "da8e95b16003960d3c132f51e01f83aae6b25d4b",
      "parents": [
        "2bba22c50b06abe9fd0d23933b1e64d35b419262"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Sep 09 15:41:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 09 17:30:06 2009 +0200"
      },
      "message": "sched: Re-tune the scheduler latency defaults to decrease worst-case latencies\n\nReduce the latency target from 20 msecs to 5 msecs.\n\nWhy? Larger latencies increase spread, which is good for scaling,\nbut bad for worst case latency.\n\nWe still have the ilog(nr_cpus) rule to scale up on bigger\nserver boxes.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1252486344.28645.18.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bba22c50b06abe9fd0d23933b1e64d35b419262",
      "tree": "5ac0373fa1d18f043cb27183f9f185ceda598915",
      "parents": [
        "b5d9d734a53e0204aab0089079cbde2a1285a38f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Sep 09 15:41:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 09 17:30:05 2009 +0200"
      },
      "message": "sched: Turn off child_runs_first\n\nSet child_runs_first default to off.\n\nIt hurts \u0027optimal\u0027 make -j\u003cNR_CPUS\u003e workloads as make jobs\nget preempted by child tasks, reducing parallelism.\n\nNote, this patch might make existing races in user\napplications more prominent than before - so breakages\nmight be bisected to this commit.\n\nChild-runs-first is broken on SMP to begin with, and we\nalready had it off briefly in v2.6.23 so most of the\noffenders ought to be fixed. Would be nice not to revert\nthis commit but fix those apps finally ...\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1252486344.28645.18.camel@marge.simson.net\u003e\n[ made the sysctl independent of CONFIG_SCHED_DEBUG, in case\n  people want to work around broken apps. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5d9d734a53e0204aab0089079cbde2a1285a38f",
      "tree": "f8c657d213514de7affaab50ed4cfd8b3a17d0f3",
      "parents": [
        "a8fae3ec5f118dc92517dcbed3ecf69ddb641d0f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Sep 08 11:12:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 08 13:15:34 2009 +0200"
      },
      "message": "sched: Ensure that a child can\u0027t gain time over it\u0027s parent after fork()\n\nA fork/exec load is usually \"pass the baton\", so the child\nshould never be placed behind the parent.  With START_DEBIT we\nmake room for the new task, but with child_runs_first, that\nroom comes out of the _parent\u0027s_ hide. There\u0027s nothing to say\nthat the parent wasn\u0027t ahead of min_vruntime at fork() time,\nwhich means that the \"baton carrier\", who is essentially the\nparent in drag, can gain time and increase scheduling latencies\nfor waiters.\n\nWith NEW_FAIR_SLEEPERS + START_DEBIT + child_runs_first\nenabled, we essentially pass the sleeper fairness off to the\nchild, which is fine, but if we don\u0027t base placement on the\nparent\u0027s updated vruntime, we can end up compounding latency\nwoes if the child itself then does fork/exec.  The debit\nincurred at fork doesn\u0027t hurt the parent who is then going to\nsleep and maybe exit, but the child who acquires the error\nharms all comers.\n\nThis improves latencies of make -j\u003cn\u003e kernel build workloads.\n\nReported-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71a29aa7b600595d0ef373ea605ac656876d1f2f",
      "tree": "1288e5bd2bd4b5c599c2b8c7649c30987101a8ec",
      "parents": [
        "cdd2ab3de4301728b20efd6225681d3ff591a938"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 07 18:28:05 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 07 20:39:06 2009 +0200"
      },
      "message": "sched: Deal with low-load in wake_affine()\n\nwake_affine() would always fail under low-load situations where\nboth prev and this were idle, because adding a single task will\nalways be a significant imbalance, even if there\u0027s nothing\naround that could balance it.\n\nDeal with this by allowing imbalance when there\u0027s nothing you\ncan do about it.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cdd2ab3de4301728b20efd6225681d3ff591a938",
      "tree": "7b812c19b624efb0056a96a1403e5b5e791ff714",
      "parents": [
        "840a0653100dbde599ae8ddf83fa214dfa5fd1aa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 07 18:12:06 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 07 20:39:05 2009 +0200"
      },
      "message": "sched: Remove short cut from select_task_rq_fair()\n\nselect_task_rq_fair() incorrectly skips the wake_affine()\nlogic, remove this.\n\nWhen prev_cpu \u003d\u003d this_cpu, the code jumps straight to the\nwake_idle() logic, this doesn\u0027t give the wake_affine() logic\nthe chance to pin the task to this cpu.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "768d0c27226e6587cad2fcf543f9711da3f3774e"
}
