)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "768d0c27226e6587cad2fcf543f9711da3f3774e",
      "tree": "0e299fb34584ff3c5c59f3ed95da70aab372dbc7",
      "parents": [
        "8f0dfc34e9b323a028c2ec41abb7e9de477b7a94"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 23 20:13:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 09:12:18 2009 +0200"
      },
      "message": "sched: Add wait, sleep and iowait accounting tracepoints\n\nAdd 3 schedstat tracepoints to help account for wait-time,\nsleep-time and iowait-time.\n\nThey can also be used as a perf-counter source to profile tasks\non these clocks.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\n[ build fix for the !CONFIG_SCHEDSTATS case ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f0dfc34e9b323a028c2ec41abb7e9de477b7a94",
      "tree": "fa7e44d9ad3eb22517f0724e71f9812f71a16ae2",
      "parents": [
        "f14eff1cc2f418a7c5e23aedc6a1bdca3343b871"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Jul 20 11:26:58 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 02 08:44:08 2009 +0200"
      },
      "message": "sched: Provide iowait counters\n\nFor counting how long an application has been waiting for\n(disk) IO, there currently is only the HZ sample driven\ninformation available, while for all other counters in this\nclass, a high resolution version is available via\nCONFIG_SCHEDSTATS.\n\nIn order to make an improved bootchart tool possible, we also\nneed a higher resolution version of the iowait time.\n\nThis patch below adds this scheduler statistic to the kernel.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4A64B813.1080506@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f48894fcc89ddec62e1762f73a0825793e59e91",
      "tree": "63b071af185d7049c854cbf4d000949968236bac",
      "parents": [
        "00aec93d10a051ea64f83eff75d4065a19508ea6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 12:25:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:26:14 2009 +0200"
      },
      "message": "sched: Add debug check to task_of()\n\nA frequent mistake appears to be to call task_of() on a\nscheduler entity that is not actually a task, which can result\nin a wild pointer.\n\nAdd a check to catch these mistakes.\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\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": "00aec93d10a051ea64f83eff75d4065a19508ea6",
      "tree": "010148caeaf4d4b36188ba15828343aa6c74efc9",
      "parents": [
        "3f029d3c6d62068d59301d90c18dbde8ee402107"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Thu Jul 30 10:57:23 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:26:12 2009 +0200"
      },
      "message": "sched: Fully integrate cpus_active_map and root-domain code\n\nReflect \"active\" cpus in the rq-\u003erd-\u003eonline field, instead of\nthe online_map.\n\nThe motivation is that things that use the root-domain code\n(such as cpupri) only care about cpus classified as \"active\"\nanyway. By synchronizing the root-domain state with the active\nmap, we allow several optimizations.\n\nFor instance, we can remove an extra cpumask_and from the\nscheduler hotpath by utilizing rq-\u003erd-\u003eonline (since it is now\na cached version of cpu_active_map \u0026 rq-\u003erd-\u003espan).\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090730145723.25226.24493.stgit@dev.haskins.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e414314cce7539788dd5d2c35decad11782dd858",
      "tree": "4ca73e18a6d594e88fba8e284726ffbf20627fbd",
      "parents": [
        "ed680c4ad478d0fee9740f7d029087f181346564"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 23 20:13:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:10:12 2009 +0200"
      },
      "message": "sched: Fix latencytop and sleep profiling vs group scheduling\n\nThe latencytop and sleep accounting code assumes that any\nscheduler entity represents a task, this is not so.\n\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "54fdc5816631b43ba55fc3206d7add2d85850bc6",
      "tree": "44aebd11ac53ef355b215d37f374fb40a4cb008b",
      "parents": [
        "78af08d90b8f745044b1274430bc4bc6b2b27aca"
      ],
      "author": {
        "name": "Fabio Checconi",
        "email": "fabio@gandalf.sssup.it",
        "time": "Thu Jul 16 12:32:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 18 11:17:08 2009 +0200"
      },
      "message": "sched: Account for vruntime wrapping\n\nI spotted two sites that didn\u0027t take vruntime wrap-around into\naccount. Fix these by creating a comparison helper that does do\nso.\n\nSigned-off-by: Fabio Checconi \u003cfabio@gandalf.sssup.it\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": "d07387b490b1c43bfcb9f3900faf96f2dafb2630",
      "tree": "97893ceda1e7262df981e87374f2553a6a8dba34",
      "parents": [
        "c20b08e3986c2dbfa6df1e880bf4f7159994d199"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jul 10 17:05:16 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 11 10:00:09 2009 +0200"
      },
      "message": "sched: Fix bug in SCHED_IDLE interaction with group scheduling\n\nOne of the isolation modifications for SCHED_IDLE is the\nunitization of sleeper credit.  However the check for this\nassumes that the sched_entity we\u0027re placing always belongs to a\ntask.\n\nThis is potentially not true with group scheduling and leaves\nus rummaging randomly when we try to pull the policy.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nCc: peterz@infradead.org\nLKML-Reference: \u003calpine.DEB.1.00.0907101649570.29914@kitami.corp.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3104bf03a923c72043a9c5009d9cd56724304916",
      "tree": "c65dbf477871ea843241055cda84b2448aee0c71",
      "parents": [
        "348ec61e6268c3cd7ee75cfa50e408184a941506"
      ],
      "author": {
        "name": "Christian Engelmayer",
        "email": "christian.engelmayer@frequentis.com",
        "time": "Tue Jun 16 10:35:12 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 18:37:54 2009 +0200"
      },
      "message": "sched: Fix out of scope variable access in sched_slice()\n\nAccess to local variable lw is aliased by usage of pointer load.\nAccess to pointer load in calc_delta_mine() happens when lw is\nalready out of scope.\n\n[ Reported by static code analysis. ]\n\nSigned-off-by: Christian Engelmayer \u003cchristian.engelmayer@frequentis.com\u003e\nLKML-Reference: \u003c20090616103512.0c846e51@frequentis.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "002f128b473fb82f454654be5081b0919ee01ab2",
      "tree": "5425166733e7439257325e1f3f104fa48e416024",
      "parents": [
        "e3c8ca8336707062f3f7cb1cd7e6b3c753baccdd"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Wed Apr 08 15:29:43 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 09 08:19:08 2009 +0200"
      },
      "message": "sched: remove redundant hierarchy walk in check_preempt_wakeup\n\nImpact: micro-optimization\n\nUnder group scheduling we traverse up until we are at common siblings\nto make the wakeup comparison on.\n\nAt this point however, they should have the same parent so continuing\nto check up the tree is redundant.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003calpine.DEB.1.00.0904081520320.30317@kitami.corp.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5274f8354d6a1ed9d6688e6a89b705b94aa1b6e9",
      "tree": "a40ae6f754648311b27811acbbd7af61cc65eab0",
      "parents": [
        "ad0b0fd554dfc126b5750d14908dccc3bbf602be",
        "a0490fa35dc0022ef95f64802e8edf18c411c790",
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 15 21:15:16 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 15 21:15:16 2009 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027; commit \u0027v2.6.29-rc5\u0027 into sched/core\n"
    },
    {
      "commit": "fc631c82e1734d718ff0832558f64c8f5d185f26",
      "tree": "7bef1c5f3f2c3f454280026e1a528de526302827",
      "parents": [
        "483b4ee60edbefdfbff0dd538fb81f368d9e7c0d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 11 14:27:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 11 14:43:35 2009 +0100"
      },
      "message": "sched: revert recent sync wakeup changes\n\nIntel reported a 10% regression (mysql+sysbench) on a 16-way machine\nwith these patches:\n\n  1596e29: sched: symmetric sync vs avg_overlap\n  d942fb6: sched: fix sync wakeups\n\nRevert them.\n\nReported-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nBisected-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "140573d33b703194b7e1893711e78b7f546cca7c",
      "tree": "8e215102e7c5222013df84ceed8b961728d2db91",
      "parents": [
        "34cb61359b503d7aff6447acb037a5efd6ce93b2",
        "ceacc2c1c85ac498ca4cf297bdfe5b4aaa9fd0e0",
        "483b4ee60edbefdfbff0dd538fb81f368d9e7c0d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 08 20:12:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 08 20:12:46 2009 +0100"
      },
      "message": "Merge branches \u0027sched/rt\u0027 and \u0027sched/urgent\u0027 into sched/core\n"
    },
    {
      "commit": "a571bbeafbcc501d9989fbce1cddcd810bd51d71",
      "tree": "cbfc71ece2ae3e351424d5f7ca9d8fff2429827b",
      "parents": [
        "a9f3e2b549f83a9cdab873abf4140be27c05a3f2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jan 28 14:51:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 01 10:49:51 2009 +0100"
      },
      "message": "sched: fix buddie group latency\n\nSimilar to the previous patch, by not clearing buddies we can select entities\npast their run quota, which can increase latency. This means we have to clear\ngroup buddies as well.\n\nDo not use the group clear for pick_next_task(), otherwise that\u0027ll get O(n^2).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a9f3e2b549f83a9cdab873abf4140be27c05a3f2",
      "tree": "756fb52736f8bd1e1f8fb0a621ac58ec8e1812d3",
      "parents": [
        "1596e29773eadd96b0a5fc6e736afa52394cafda"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Jan 28 14:51:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 01 10:49:50 2009 +0100"
      },
      "message": "sched: clear buddies more aggressively\n\nIt was noticed that a task could get re-elected past its run quota due to buddy\naffinities. This could increase latency a little. Cure it by more aggresively\nclearing buddy state.\n\nWe do so in two situations:\n - when we force preempt\n - when we select a buddy to run\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d942fb6c7d391baba3dddb566eb735fbf3df8528",
      "tree": "0340b810c79f873b7aea34298aa22e2ebf740df3",
      "parents": [
        "f90d4118bacef87894621a3e8aba853fa0c89abc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jan 26 17:56:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 01 10:49:06 2009 +0100"
      },
      "message": "sched: fix sync wakeups\n\nPawel Dziekonski reported that the openssl benchmark and his\nquantum chemistry application both show slowdowns due to the\nscheduler under-parallelizing execution.\n\nThe reason are pipe wakeups still doing \u0027sync\u0027 wakeups which\noverrides the normal buddy wakeup logic - even if waker and\nwakee are loosely coupled.\n\nFix an inversion of logic in the buddy wakeup code.\n\nReported-by: Pawel Dziekonski \u003cdzieko@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6272d68cc6a5f90c6b1a2228cf0f67b895305d17",
      "tree": "9f7e6635d4ffb9d713d3b2be83a4cd4bd4749080",
      "parents": [
        "e17036dac189dd034c092a91df56aa740db7146d"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Thu Jan 15 17:17:15 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 15 21:07:57 2009 +0100"
      },
      "message": "sched: sched_slice() fixlet\n\nMike\u0027s change: 0a582440f \"sched: fix sched_slice())\" broke group\nscheduling by forgetting to reload cfs_rq on each loop.\n\nThis patch fixes aim7 regression and specjbb2005 regression becomes\nless than 1.5% on 8-core stokley.\n\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Jayson King \u003cdev@jaysonking.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e17036dac189dd034c092a91df56aa740db7146d",
      "tree": "e4dc53a5ad8cccf71e611db3ee001a2e5a1e38f8",
      "parents": [
        "6bc912b71b6f33b041cfde93ca3f019cbaa852bc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jan 15 14:53:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 15 15:12:19 2009 +0100"
      },
      "message": "sched: fix update_min_vruntime\n\nImpact: fix SCHED_IDLE latency problems\n\nOK, so we have 1 running task A (which is obviously curr and the tree is\nequally obviously empty).\n\n\u0027A\u0027 nicely chugs along, doing its thing, carrying min_vruntime along as it\ngoes.\n\nThen some whacko speed freak SCHED_IDLE task gets inserted due to SMP\nbalancing, which is very likely far right, in that case\n\nupdate_curr\n  update_min_vruntime\n    cfs_rq-\u003erb_leftmost :\u003d true (the crazy task sitting in a tree)\n      vruntime \u003d se-\u003evruntime\n\nand voila, min_vruntime is waaay right of where it ought to be.\n\nOK, so why did I write it like that to begin with...\n\nAah, yes.\n\nSay we\u0027ve just dequeued current\n\nschedule\n  deactivate_task(prev)\n    dequeue_entity\n      update_min_vruntime\n\nThen we\u0027ll set\n\n  vruntime \u003d cfs_rq-\u003emin_vruntime;\n\nwe find !cfs_rq-\u003ecurr, but do find someone in the tree. Then we _must_\ndo vruntime \u003d se-\u003evruntime, because\n\n vruntime \u003d min_vruntime(vruntime :\u003d cfs_rq-\u003emin_vruntime, se-\u003evruntime)\n\nwill not advance vruntime, and cause lags the other way around (which we\nfixed with that initial patch: 1af5f730fc1bf7c62ec9fb2d307206e18bf40a69\n(sched: more accurate min_vruntime accounting).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6bc912b71b6f33b041cfde93ca3f019cbaa852bc",
      "tree": "f6128f946bb275aa68f814f5f6a9c08df43965b7",
      "parents": [
        "cce7ade803699463ecc62a065ca522004f7ccb3d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jan 15 14:53:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 15 15:07:29 2009 +0100"
      },
      "message": "sched: SCHED_OTHER vs SCHED_IDLE isolation\n\nStronger SCHED_IDLE isolation:\n\n - no SCHED_IDLE buddies\n - never let SCHED_IDLE preempt on wakeup\n - always preempt SCHED_IDLE on wakeup\n - limit SLEEPER fairness for SCHED_IDLE.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e52fb7c097238d34f4d8e2a596f8a3f85b0c0565",
      "tree": "f846443fdf7888583b4b0ff0ddd0be1be4b37df6",
      "parents": [
        "831451ac4e44d3a20b581ce726ef1d1144373f7d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jan 14 12:39:19 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 15 12:00:09 2009 +0100"
      },
      "message": "sched: prefer wakers\n\nPrefer tasks that wake other tasks to preempt quickly. This improves\nperformance because more work is available sooner.\n\nThe workload that prompted this patch was a kernel build over NFS4 (for some\ncurious and not understood reason we had to revert commit:\n18de9735300756e3ca9c361ef58409d8561dfe0d to make any progress at all)\n\nWithout this patch a make -j8 bzImage (of x86-64 defconfig) would take\n3m30-ish, with this patch we\u0027re down to 2m50-ish.\n\npsql-sysbench/mysql-sysbench show a slight improvement in peak performance as\nwell, tbench and vmark seemed to not care.\n\nIt is possible to improve upon the build time (to 2m20-ish) but that seriously\ndestroys other benchmarks (just shows that there\u0027s more room for tinkering).\n\nMuch thanks to Mike who put in a lot of effort to benchmark things and proved\na worthy opponent with a competing patch.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "df4927bf6ccf6278a97a44bd107080c71b269cb5",
      "tree": "aa84ac1dcc0c0df6e01f2b725163e4a411814bb6",
      "parents": [
        "97e133b4543c5c677e768a8538d6d704c4218ff2"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Jan 07 18:09:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:15 2009 -0800"
      },
      "message": "generic swap(): sched: remove local swap() macro\n\nUse the new generic implementation.\n\nSigned-off-by: Wu Fengguang \u003cwfg@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5359c32eb7402124abc9964d5d53639fe0739cea",
      "tree": "d77b6967fe8420678bb9d1d936855ac0699c196a",
      "parents": [
        "8916edef5888c5d8fe283714416a9ca95b4c3431",
        "fe0bdec68b77020281dc814805edfe594ae89e0f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 05 13:53:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 05 13:53:39 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/urgent\n"
    },
    {
      "commit": "b840d79631c882786925303c2b0f4fefc31845ed",
      "tree": "cda60a95d4507fe1321fc285af38982d7eb9693b",
      "parents": [
        "597b0d21626da4e6f09f132442caf0cc2b0eb47c",
        "c3d80000e3a812fe5a200d6bde755fbd7fa65481"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 11:44:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 11:44:09 2009 -0800"
      },
      "message": "Merge branch \u0027cpus4096-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)\n  x86: export vector_used_by_percpu_irq\n  x86: use logical apicid in x2apic_cluster\u0027s x2apic_cpu_mask_to_apicid_and()\n  sched: nominate preferred wakeup cpu, fix\n  x86: fix lguest used_vectors breakage, -v2\n  x86: fix warning in arch/x86/kernel/io_apic.c\n  sched: fix warning in kernel/sched.c\n  sched: move test_sd_parent() to an SMP section of sched.h\n  sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc\u003e0\n  sched: activate active load balancing in new idle cpus\n  sched: bias task wakeups to preferred semi-idle packages\n  sched: nominate preferred wakeup cpu\n  sched: favour lower logical cpu number for sched_mc balance\n  sched: framework for sched_mc/smt_power_savings\u003dN\n  sched: convert BALANCE_FOR_xx_POWER to inline functions\n  x86: use possible_cpus\u003dNUM to extend the possible cpus allowed\n  x86: fix cpu_mask_to_apicid_and to include cpu_online_mask\n  x86: update io_apic.c to the new cpumask code\n  x86: Introduce topology_core_cpumask()/topology_thread_cpumask()\n  x86: xen: use smp_call_function_many()\n  x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c\n  ...\n\nFixed up trivial conflict in kernel/time/tick-sched.c manually\n"
    },
    {
      "commit": "0a582440ff546e2c6610d1acec325e91b4efd313",
      "tree": "161a0943091c53bb2154121480b3e26ce5df1769",
      "parents": [
        "b58602a4bac012b5f4fc12fe6b46ab237b610d5d"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Jan 02 12:16:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 02 17:10:43 2009 +0100"
      },
      "message": "sched: fix sched_slice()\n\nImpact: fix bad-interactivity buglet\n\nFix sched_slice() to emit a sane result whether a task is currently\nenqueued or not.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nTested-by: Jayson King \u003cdev@jaysonking.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n kernel/sched_fair.c |   30 ++++++++++++------------------\n 1 file changed, 12 insertions(+), 18 deletions(-)\n"
    },
    {
      "commit": "7eb52dfa70dbf5232b5b83ec4357e6bebaa8fde8",
      "tree": "dfff4d1dcf62e992717f0934961f4557896d4945",
      "parents": [
        "7a09b1a27b1e5a4957e4af9951420fea02c44fba"
      ],
      "author": {
        "name": "Vaidyanathan Srinivasan",
        "email": "svaidy@linux.vnet.ibm.com",
        "time": "Thu Dec 18 23:26:29 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:21:52 2008 +0100"
      },
      "message": "sched: bias task wakeups to preferred semi-idle packages\n\nImpact: tweak task wakeup to save power more agressively\n\nPreferred wakeup cpu (from a semi idle package) has been\nnominated in find_busiest_group() in the previous patch.  Use\nthis information in sched_mc_preferred_wakeup_cpu in function\nwake_idle() to bias task wakeups if the following conditions\nare satisfied:\n\n        - The present cpu that is trying to wakeup the process is\n          idle and waking the target process on this cpu will\n          potentially wakeup a completely idle package\n        - The previous cpu on which the target process ran is\n          also idle and hence selecting the previous cpu may\n          wakeup a semi idle cpu package\n        - The task being woken up is allowed to run in the\n          nominated cpu (cpu affinity and restrictions)\n\nBasically if both the current cpu and the previous cpu on\nwhich the task ran is idle, select the nominated cpu from semi\nidle cpu package for running the new task that is waking up.\n\nCache hotness is considered since the actual biasing happens\nin wake_idle() only if the application is cache cold.\n\nThis technique will effectively move short running bursty jobs in\na mostly idle system.\n\nWakeup biasing for power savings gets automatically disabled if\nsystem utilisation increases due to the fact that the probability\nof finding both this_cpu and prev_cpu idle decreases.\n\nSigned-off-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34f28ecd0f4bdc733c681294d02d9fab5880591b",
      "tree": "7869949614b6a4f2bf52f01dfaa769ebe22c8aab",
      "parents": [
        "03e89e4574a680af15f59329b061f35d9813aff4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Dec 16 08:45:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 09:46:33 2008 +0100"
      },
      "message": "sched: optimize update_curr()\n\nImpact: micro-optimization\n\nSkip the hard work when there is none.\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\n"
    },
    {
      "commit": "03e89e4574a680af15f59329b061f35d9813aff4",
      "tree": "2cf03e33021fbf8cf2aaf6ce99314eb45ed34dbc",
      "parents": [
        "d65bd5ecb2bd166cea4952a59b7e16cc3ad6ef6c"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Dec 16 08:45:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 09:45:38 2008 +0100"
      },
      "message": "sched: fix wakeup preemption clock\n\nImpact: sharpen the wakeup-granularity to always be against current scheduler time\n\nIt was possible to do the preemption check against an old time stamp.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "96f874e26428ab5d2db681c100210c254775e154",
      "tree": "e18a6f0629ef17f2344f3691c8df4692ccb875fa",
      "parents": [
        "0e3900e6d3b04c44737ebc505604dcd8ed30e354"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:14 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:52:42 2008 +0100"
      },
      "message": "sched: convert remaining old-style cpumask operators\n\nImpact: Trivial API conversion\n\n  NR_CPUS -\u003e nr_cpu_ids\n  cpumask_t -\u003e struct cpumask\n  sizeof(cpumask_t) -\u003e cpumask_size()\n  cpumask_a \u003d cpumask_b -\u003e cpumask_copy(\u0026cpumask_a, \u0026cpumask_b)\n\n  cpu_set() -\u003e cpumask_set_cpu()\n  first_cpu() -\u003e cpumask_first()\n  cpumask_of_cpu() -\u003e cpumask_of()\n  cpus_* -\u003e cpumask_*\n\nThere are some FIXMEs where we all archs to complete infrastructure\n(patches have been sent):\n\n  cpu_coregroup_map -\u003e cpu_coregroup_mask\n  node_to_cpumask* -\u003e cpumask_of_node\n\nThere is also one FIXME where we pass an array of cpumasks to\npartition_sched_domains(): this implies knowing the definition of\n\u0027struct cpumask\u0027 and the size of a cpumask.  This will be fixed in a\nfuture patch.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "758b2cdc6f6a22c702bd8f2344382fb1270b2161",
      "tree": "270aec3d0f6235c1519c16e8dc8148f195e133db",
      "parents": [
        "1e5ce4f4a755ee498bd9217dae26143afa0d8f31"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:04 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:50:45 2008 +0100"
      },
      "message": "sched: wrap sched_group and sched_domain cpumask accesses.\n\nImpact: trivial wrap of member accesses\n\nThis eases the transition in the next patch.\n\nWe also get rid of a temporary cpumask in find_idlest_cpu() thanks to\nfor_each_cpu_and, and sched_balance_self() due to getting weight before\nsetting sd to NULL.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2002c69595a092518107f7e3c1294c9710bc92ae",
      "tree": "5935add4d4cd426b5b824474b7ec2ffea48d2951",
      "parents": [
        "ad474caca3e2a0550b7ce0706527ad5ab389a4d4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Nov 11 11:52:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 11:57:22 2008 +0100"
      },
      "message": "sched: release buddies on yield\n\nClear buddies on yield, so that the buddy rules don\u0027t schedule them\ndespite them being placed right-most.\n\nThis fixed a performance regression with yield-happy binary JVMs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Lin Ming \u003cming.m.lin@intel.com\u003e\n"
    },
    {
      "commit": "02479099c286894644f8e96c6bbb535ab64662fd",
      "tree": "df25bc51ddb31a44c91b672311b532de626fadcb",
      "parents": [
        "4793241be408b3926ee00c704d7da3b3faf3a05f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:15 2008 +0100"
      },
      "message": "sched: fix buddies for group scheduling\n\nImpact: scheduling order fix for group scheduling\n\nFor each level in the hierarchy, set the buddy to point to the right entity.\nTherefore, when we do the hierarchical schedule, we have a fair chance of\nending up where we meant to.\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\n"
    },
    {
      "commit": "4793241be408b3926ee00c704d7da3b3faf3a05f",
      "tree": "d74144510d5258e5e941a8499538c3a0cdc868a7",
      "parents": [
        "d95f98d0691d3aba5e35850011946a08c9b36428"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:14 2008 +0100"
      },
      "message": "sched: backward looking buddy\n\nImpact: improve/change/fix wakeup-buddy scheduling\n\nCurrently we only have a forward looking buddy, that is, we prefer to\nschedule to the task we last woke up, under the presumption that its\ngoing to consume the data we just produced, and therefore will have\ncache hot benefits.\n\nThis allows co-waking producer/consumer task pairs to run ahead of the\npack for a little while, keeping their cache warm. Without this, we\nwould interleave all pairs, utterly trashing the cache.\n\nThis patch introduces a backward looking buddy, that is, suppose that\nin the above scenario, the consumer preempts the producer before it\ncan go to sleep, we will therefore miss the wakeup from consumer to\nproducer (its already running, after all), breaking the cycle and\nreverting to the cache-trashing interleaved schedule pattern.\n\nThe backward buddy will try to schedule back to the task that woke us\nup in case the forward buddy is not available, under the assumption\nthat the last task will be the one with the most cache hot task around\nbarring current.\n\nThis will basically allow a task to continue after it got preempted.\n\nIn order to avoid starvation, we allow either buddy to get wakeup_gran\nahead of the pack.\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\n"
    },
    {
      "commit": "d95f98d0691d3aba5e35850011946a08c9b36428",
      "tree": "51cef12b6ad712379b63b04bd5e16292e0bbe8f0",
      "parents": [
        "f4b6755fb37595da3630d1d6fc130ea6888cd48f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:13 2008 +0100"
      },
      "message": "sched: fix fair preempt check\n\nImpact: fix cross-class preemption\n\nInter-class wakeup preemptions should go on class order.\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\n"
    },
    {
      "commit": "f4b6755fb37595da3630d1d6fc130ea6888cd48f",
      "tree": "04501dab4a1573b5b6bc6932db08262806c2c0e2",
      "parents": [
        "75fa67706cce5272bcfc51ed646f2da21f3bdb6e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:13 2008 +0100"
      },
      "message": "sched: cleanup fair task selection\n\nImpact: cleanup\n\nClean up task selection\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\n"
    },
    {
      "commit": "3f3a490480d8ab96e0fe30a41f80f14e6a0c579d",
      "tree": "addbfb1207d816b1e1f5e4ab75f95a08c7b15202",
      "parents": [
        "464b75273f64be7c81fee975bd6ca9593df3427b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 24 11:06:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:03 2008 +0200"
      },
      "message": "sched: virtual time buddy preemption\n\nSince we moved wakeup preemption back to virtual time, it makes sense to move\nthe buddy stuff back as well. The purpose of the buddy scheduling is to allow\na quickly scheduling pair of tasks to run away from the group as far as a\nregular busy task would be allowed under wakeup preemption.\n\nThis has the advantage that the pair can ping-pong for a while, enjoying\ncache-hotness. Without buddy scheduling other tasks would interleave destroying\nthe cache.\n\nAlso, it saves a word in cfs_rq.\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\n"
    },
    {
      "commit": "464b75273f64be7c81fee975bd6ca9593df3427b",
      "tree": "c7efd037f65129ba9bff5b8a4a61d506e904715f",
      "parents": [
        "0d13033bc9257fe65c1aa25e84568b1608da0901"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 24 11:06:15 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:02 2008 +0200"
      },
      "message": "sched: re-instate vruntime based wakeup preemption\n\nThe advantage is that vruntime based wakeup preemption has a better\nconceptual model. Here wakeup_gran \u003d 0 means: preempt when \u0027fair\u0027.\nTherefore wakeup_gran is the granularity of unfairness we allow in order\nto make progress.\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\n"
    },
    {
      "commit": "0d13033bc9257fe65c1aa25e84568b1608da0901",
      "tree": "312a3bbad942d2c27ee7e394bd5328dd9fe58fe1",
      "parents": [
        "1af5f730fc1bf7c62ec9fb2d307206e18bf40a69"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Oct 24 11:06:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:01 2008 +0200"
      },
      "message": "sched: weaken sync hint\n\nMysql+oltp and pgsql+oltp peaks are still shifted right. The below puts\nthe peaks back to 1 client/server pair per core.\n\nUse the avg_overlap information to weaken the sync hint.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1af5f730fc1bf7c62ec9fb2d307206e18bf40a69",
      "tree": "6b9a1e5aa380abaaca68d3ba427ecec1a3b51a88",
      "parents": [
        "01c8c57d668d94f1036d9ab11a22aa24ca16a35d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 24 11:06:13 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:00 2008 +0200"
      },
      "message": "sched: more accurate min_vruntime accounting\n\nMike noticed the current min_vruntime tracking can go wrong and skip the\ncurrent task. If the only remaining task in the tree is a nice 19 task\nwith huge vruntime, new tasks will be inserted too far to the right too,\ncausing some interactibity issues.\n\nmin_vruntime can only change due to the leftmost entry disappearing\n(dequeue_entity()), or by the leftmost entry being incremented past the\nnext entry, which elects a new leftmost (__update_curr())\n\nDue to the current entry not being part of the actual tree, we have to\ncompare the leftmost tree entry with the current entry, and take the\nleftmost of these two.\n\nSo create a update_min_vruntime() function that takes computes the\nleftmost vruntime in the system (either tree of current) and increases\nthe cfs_rq-\u003emin_vruntime if the computed value is larger than the\npreviously found min_vruntime. And call this from the two sites we\u0027ve\nidentified that can change min_vruntime.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\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\n"
    },
    {
      "commit": "8c82a17e9c924c0e9f13e75e4c2f6bca19a4b516",
      "tree": "d535f46a917e14e90deccb29ad00aac016ad18dd",
      "parents": [
        "4ce72a2c063a7fa8e42a9435440ae3364115a58d",
        "57f8f7b60db6f1ed2c6918ab9230c4623a9dbe37"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:48:46 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:48:46 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.28-rc1\u0027 into sched/urgent\n"
    },
    {
      "commit": "133e887f90208d339088dd60cb1d08a72ba27288",
      "tree": "4f6bab9d13df7fac50bc7d699d8486f441deb428",
      "parents": [
        "e82cff752f57810a2259415ad2e9087c2d69484c",
        "0c4b83da58ec2e96ce9c44c211d6eac5f9dae478"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 09:37:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 09:37:16 2008 -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: disable the hrtick for now\n  sched: revert back to per-rq vruntime\n  sched: fair scheduler should not resched rt tasks\n  sched: optimize group load balancer\n  sched: minor fast-path overhead reduction\n  sched: fix the wrong mask_len, cleanup\n  sched: kill unused scheduler decl.\n  sched: fix the wrong mask_len\n  sched: only update rq-\u003eclock while holding rq-\u003elock\n"
    },
    {
      "commit": "4ce72a2c063a7fa8e42a9435440ae3364115a58d",
      "tree": "427b25960945524a205c7d8ed20ed5f02325175e",
      "parents": [
        "0c4b83da58ec2e96ce9c44c211d6eac5f9dae478"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 22 15:25:26 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 22 10:01:52 2008 +0200"
      },
      "message": "sched: add CONFIG_SMP consistency\n\na patch from Henrik Austad did this:\n\n\u003e\u003e Do not declare select_task_rq as part of sched_class when CONFIG_SMP is\n\u003e\u003e not set.\n\nPeter observed:\n\n\u003e While a proper cleanup, could you do it by re-arranging the methods so\n\u003e as to not create an additional ifdef?\n\nDo not declare select_task_rq and some other methods as part of sched_class\nwhen CONFIG_SMP is not set.\n\nAlso gather those methods to avoid CONFIG_SMP mess.\n\nIdea-by: Henrik Austad \u003chenrik.austad@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Henrik Austad \u003chenrik@austad.us\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f9c0b0950d5fd8c8c5af39bc061f27ea8fddcac3",
      "tree": "288537eac8d5e03970422ac0c705617e551f544d",
      "parents": [
        "a4c2f00f5cb848af7a8c816426b413c8e41834df"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 17 19:27:04 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 20 14:05:04 2008 +0200"
      },
      "message": "sched: revert back to per-rq vruntime\n\nVatsa rightly points out that having the runqueue weight in the vruntime\ncalculations can cause unfairness in the face of task joins/leaves.\n\nSuppose: dv \u003d dt * rw / w\n\nThen take 10 tasks t_n, each of similar weight. If the first will run 1\nthen its vruntime will increase by 10. Now, if the next 8 tasks leave after\nhaving run their 1, then the last task will get a vruntime increase of 2\nafter having run 1.\n\nWhich will leave us with 2 tasks of equal weight and equal runtime, of which\none will not be scheduled for 8/2\u003d4 units of time.\n\nErgo, we cannot do that and must use: dv \u003d dt / w.\n\nThis means we cannot have a global vruntime based on effective priority, but\nmust instead go back to the vruntime per rq model we started out with.\n\nThis patch was lightly tested by doing starting while loops on each nice level\nand observing their execution time, and a simple group scenario of 1:2:3 pinned\nto a single cpu.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a4c2f00f5cb848af7a8c816426b413c8e41834df",
      "tree": "f99d376ae43fe7e19db0f5f268c6925d8cda2107",
      "parents": [
        "ffda12a17a324103e9900fa1035309811eecbfe5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 17 19:27:03 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 20 14:05:03 2008 +0200"
      },
      "message": "sched: fair scheduler should not resched rt tasks\n\nWith use of ftrace Steven noticed that some RT tasks got rescheduled due\nto sched_fair interaction.\n\nWhat happens is that we reprogram the hrtick from enqueue/dequeue_fair_task()\nbecause that can change nr_running, and thus a current tasks ideal runtime.\nHowever, its possible the current task isn\u0027t a fair_sched_class task, and thus\ndoesn\u0027t have a hrtick set to change.\n\nFix this by wrapping those hrtick_start_fair() calls in a hrtick_update()\nfunction, which will check for the right conditions.\n\nReported-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c465a76af658b443075d6efee1c3131257643020",
      "tree": "63c28c9fab02dedec7f03cee4a3ef7fe4dc1c072",
      "parents": [
        "2d42244ae71d6c7b0884b5664cf2eda30fb2ae68",
        "1b02469088ac7a13d7e622b618b7410d0f1ce5ec",
        "fb02fbc14d17837b4b7b02dbb36142c16a7bf208",
        "d40e944c25fb4642adb2a4c580a48218a9f3f824",
        "1508487e7f16d992ad23cabd3712563ff912f413",
        "322acf6585f3c4e82ee32a246b0483ca0f6ad3f4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/debug\u0027 into v28-timers-for-linus\n"
    },
    {
      "commit": "b0aa51b999c449e5e3f9faa1ee406e052d407fe7",
      "tree": "c3c21be0aa90658469ef039065b260172ab9b974",
      "parents": [
        "b968905292eaa52b25abb7b3e6c0841dac9f03ae"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Oct 17 15:33:21 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 17 15:36:58 2008 +0200"
      },
      "message": "sched: minor fast-path overhead reduction\n\nGreetings,\n\n103638d added a bit of avoidable overhead to the fast-path.\n\nUse sysctl_sched_min_granularity instead of sched_slice() to restrict buddy wakeups.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2fb7635c4cea310992a39580133099dd99ad151c",
      "tree": "e898c690d05c3dfeaa733fb3472eff400669be3a",
      "parents": [
        "990d0f2ced23052abc7efa09bd05bff34e00cf73"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Oct 08 09:16:04 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 08 12:20:26 2008 +0200"
      },
      "message": "sched: sync wakeups vs avg_overlap\n\nWhile looking at the code I wondered why we always do:\n\n  sync \u0026\u0026 avg_overlap \u003c migration_cost\n\nWhich is a bit odd, since the overlap test was meant to detect sync wakeups\nso using it to specialize sync wakeups doesn\u0027t make much sense.\n\nHence change the code to do:\n\n  sync || avg_overlap \u003c migration_cost\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "64b9e0294d24a4204232e13e01630b0690e48d61",
      "tree": "a8399f65354ffe0777f78e169fd7be763148c121",
      "parents": [
        "b87f17242da6b2ac6db2d179b2f93fb84cff2fbe"
      ],
      "author": {
        "name": "Amit K. Arora",
        "email": "aarora@linux.vnet.ibm.com",
        "time": "Tue Sep 30 17:15:39 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 30 15:25:44 2008 +0200"
      },
      "message": "sched: minor optimizations in wake_affine and select_task_rq_fair\n\nThis patch does following:\no Removes unused variable and argument \"rq\".\no Optimizes one of the \"if\" conditions in wake_affine() - i.e.  if\n  \"balanced\" is true, we need not do rest of the calculations in the\n  condition.\no If this cpu is same as the previous cpu (on which woken up task\n  was running when it went to sleep), no need to call wake_affine at all.\n\nSigned-off-by: Amit K Arora \u003caarora@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b87f17242da6b2ac6db2d179b2f93fb84cff2fbe",
      "tree": "7c90ccd5b3a307670f939b944a2bf32d523a3b15",
      "parents": [
        "57fdc26d4a734a3e00c6b2fc0e1e40ff8da4dc31"
      ],
      "author": {
        "name": "Bharata B Rao",
        "email": "bharata@linux.vnet.ibm.com",
        "time": "Thu Sep 25 09:53:54 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 25 11:24:11 2008 +0200"
      },
      "message": "sched: maintain only task entities in cfs_rq-\u003etasks list\n\ncfs_rq-\u003etasks list is used by the load balancer to iterate\nover all the tasks. Currently it holds all the entities\n(both task and group entities) because of which there is\na need to check for group entities explicitly during load\nbalancing. This patch changes the cfs_rq-\u003etasks list to\nhold only task entities.\n\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57fdc26d4a734a3e00c6b2fc0e1e40ff8da4dc31",
      "tree": "912951e86391fc23f33981f88dce7cf374f136e1",
      "parents": [
        "4653f803e6e0d970ffeac0efd2c01743eb6c5228"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 23 15:33:45 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 16:23:17 2008 +0200"
      },
      "message": "sched: fixup buddy selection\n\nWe should set the buddy even though we might already have the\nTIF_RESCHED flag set.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "940959e93949e839c14f8ddc3b9b0e34a2ab6e29",
      "tree": "3566ce5a8bb8db206193377bca37f5877b70adf6",
      "parents": [
        "63e5c39859a41591662466028c4d1281c033c05a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 23 15:33:42 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 16:23:15 2008 +0200"
      },
      "message": "sched: fixlet for group load balance\n\nWe should not only correct the increment for the initial group, but should\nbe consistent and do so for all the groups we encounter.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "695698500912c4479ddf4723e492de3970ff8530",
      "tree": "b84c708843998d2124573b809b8618a4e304e253",
      "parents": [
        "1a73ef6ac3f4b44abc9d1875eb9240d7524a7cf7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 23 14:54:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 14:54:23 2008 +0200"
      },
      "message": "sched: rework wakeup preemption\n\nRework the wakeup preemption to work on real runtime instead of\nthe virtual runtime. This greatly simplifies the code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "caea8a03702c147e8ae90da0801e7ba8297b1d46",
      "tree": "7ff0746c3dbcc73bc241957c2b3149bcf8901fb2",
      "parents": [
        "f681bbd656b01439be904250a1581ca9c27505a1"
      ],
      "author": {
        "name": "Chris Friesen",
        "email": "cfriesen@nortel.com",
        "time": "Mon Sep 22 11:06:09 2008 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 22 19:43:10 2008 +0200"
      },
      "message": "sched: fix list traversal to use _rcu variant\n\nload_balance_fair() calls rcu_read_lock() but then traverses the list\n using the regular list traversal routine.  This patch converts the\nlist traversal to use the _rcu version.\n\nSigned-off-by: Chris Friesen \u003ccfriesen@nortel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15afe09bf496ae10c989e1a375a6b5da7bd3e16e",
      "tree": "4565659d1084e357eea42e6321a4d304ac950faa",
      "parents": [
        "09b22a2f678ae733801b888c44756d0abd686b8a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Sep 20 23:38:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 22 16:28:32 2008 +0200"
      },
      "message": "sched: wakeup preempt when small overlap\n\nLin Ming reported a 10% OLTP regression against 2.6.27-rc4.\n\nThe difference seems to come from different preemption agressiveness,\nwhich affects the cache footprint of the workload and its effective\ncache trashing.\n\nAggresively preempt a task if its avg overlap is very small, this should\navoid the task going to sleep and find it still running when we schedule\nback to it - saving a wakeup.\n\nReported-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f06febc96ba8e0af80bcc3eaec0a109e88275fac",
      "tree": "46dba9432ef25d2eae9434ff2df638c7a268c0f1",
      "parents": [
        "6bfb09a1005193be5c81ebac9f3ef85210142650"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Fri Sep 12 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 14 16:25:35 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang\n\nOverview\n\nThis patch reworks the handling of POSIX CPU timers, including the\nITIMER_PROF, ITIMER_VIRT timers and rlimit handling.  It was put together\nwith the help of Roland McGrath, the owner and original writer of this code.\n\nThe problem we ran into, and the reason for this rework, has to do with using\na profiling timer in a process with a large number of threads.  It appears\nthat the performance of the old implementation of run_posix_cpu_timers() was\nat least O(n*3) (where \"n\" is the number of threads in a process) or worse.\nEverything is fine with an increasing number of threads until the time taken\nfor that routine to run becomes the same as or greater than the tick time, at\nwhich point things degrade rather quickly.\n\nThis patch fixes bug 9906, \"Weird hang with NPTL and SIGPROF.\"\n\nCode Changes\n\nThis rework corrects the implementation of run_posix_cpu_timers() to make it\nrun in constant time for a particular machine.  (Performance may vary between\none machine and another depending upon whether the kernel is built as single-\nor multiprocessor and, in the latter case, depending upon the number of\nrunning processors.)  To do this, at each tick we now update fields in\nsignal_struct as well as task_struct.  The run_posix_cpu_timers() function\nuses those fields to make its decisions.\n\nWe define a new structure, \"task_cputime,\" to contain user, system and\nscheduler times and use these in appropriate places:\n\nstruct task_cputime {\n\tcputime_t utime;\n\tcputime_t stime;\n\tunsigned long long sum_exec_runtime;\n};\n\nThis is included in the structure \"thread_group_cputime,\" which is a new\nsubstructure of signal_struct and which varies for uniprocessor versus\nmultiprocessor kernels.  For uniprocessor kernels, it uses \"task_cputime\" as\na simple substructure, while for multiprocessor kernels it is a pointer:\n\nstruct thread_group_cputime {\n\tstruct task_cputime totals;\n};\n\nstruct thread_group_cputime {\n\tstruct task_cputime *totals;\n};\n\nWe also add a new task_cputime substructure directly to signal_struct, to\ncache the earliest expiration of process-wide timers, and task_cputime also\nreplaces the it_*_expires fields of task_struct (used for earliest expiration\nof thread timers).  The \"thread_group_cputime\" structure contains process-wide\ntimers that are updated via account_user_time() and friends.  In the non-SMP\ncase the structure is a simple aggregator; unfortunately in the SMP case that\nsimplicity was not achievable due to cache-line contention between CPUs (in\none measured case performance was actually _worse_ on a 16-cpu system than\nthe same test on a 4-cpu system, due to this contention).  For SMP, the\nthread_group_cputime counters are maintained as a per-cpu structure allocated\nusing alloc_percpu().  The timer functions update only the timer field in\nthe structure corresponding to the running CPU, obtained using per_cpu_ptr().\n\nWe define a set of inline functions in sched.h that we use to maintain the\nthread_group_cputime structure and hide the differences between UP and SMP\nimplementations from the rest of the kernel.  The thread_group_cputime_init()\nfunction initializes the thread_group_cputime structure for the given task.\nThe thread_group_cputime_alloc() is a no-op for UP; for SMP it calls the\nout-of-line function thread_group_cputime_alloc_smp() to allocate and fill\nin the per-cpu structures and fields.  The thread_group_cputime_free()\nfunction, also a no-op for UP, in SMP frees the per-cpu structures.  The\nthread_group_cputime_clone_thread() function (also a UP no-op) for SMP calls\nthread_group_cputime_alloc() if the per-cpu structures haven\u0027t yet been\nallocated.  The thread_group_cputime() function fills the task_cputime\nstructure it is passed with the contents of the thread_group_cputime fields;\nin UP it\u0027s that simple but in SMP it must also safely check that tsk-\u003esignal\nis non-NULL (if it is it just uses the appropriate fields of task_struct) and,\nif so, sums the per-cpu values for each online CPU.  Finally, the three\nfunctions account_group_user_time(), account_group_system_time() and\naccount_group_exec_runtime() are used by timer functions to update the\nrespective fields of the thread_group_cputime structure.\n\nNon-SMP operation is trivial and will not be mentioned further.\n\nThe per-cpu structure is always allocated when a task creates its first new\nthread, via a call to thread_group_cputime_clone_thread() from copy_signal().\nIt is freed at process exit via a call to thread_group_cputime_free() from\ncleanup_signal().\n\nAll functions that formerly summed utime/stime/sum_sched_runtime values from\nfrom all threads in the thread group now use thread_group_cputime() to\nsnapshot the values in the thread_group_cputime structure or the values in\nthe task structure itself if the per-cpu structure hasn\u0027t been allocated.\n\nFinally, the code in kernel/posix-cpu-timers.c has changed quite a bit.\nThe run_posix_cpu_timers() function has been split into a fast path and a\nslow path; the former safely checks whether there are any expired thread\ntimers and, if not, just returns, while the slow path does the heavy lifting.\nWith the dedicated thread group fields, timers are no longer \"rebalanced\" and\nthe process_timer_rebalance() function and related code has gone away.  All\nsumming loops are gone and all code that used them now uses the\nthread_group_cputime() inline.  When process-wide timers are set, the new\ntask_cputime structure in signal_struct is used to cache the earliest\nexpiration; this is checked in the fast path.\n\nPerformance\n\nThe fix appears not to add significant overhead to existing operations.  It\ngenerally performs the same as the current code except in two cases, one in\nwhich it performs slightly worse (Case 5 below) and one in which it performs\nvery significantly better (Case 2 below).  Overall it\u0027s a wash except in those\ntwo cases.\n\nI\u0027ve since done somewhat more involved testing on a dual-core Opteron system.\n\nCase 1: With no itimer running, for a test with 100,000 threads, the fixed\n\tkernel took 1428.5 seconds, 513 seconds more than the unfixed system,\n\tall of which was spent in the system.  There were twice as many\n\tvoluntary context switches with the fix as without it.\n\nCase 2: With an itimer running at .01 second ticks and 4000 threads (the most\n\tan unmodified kernel can handle), the fixed kernel ran the test in\n\teight percent of the time (5.8 seconds as opposed to 70 seconds) and\n\thad better tick accuracy (.012 seconds per tick as opposed to .023\n\tseconds per tick).\n\nCase 3: A 4000-thread test with an initial timer tick of .01 second and an\n\tinterval of 10,000 seconds (i.e. a timer that ticks only once) had\n\tvery nearly the same performance in both cases:  6.3 seconds elapsed\n\tfor the fixed kernel versus 5.5 seconds for the unfixed kernel.\n\nWith fewer threads (eight in these tests), the Case 1 test ran in essentially\nthe same time on both the modified and unmodified kernels (5.2 seconds versus\n5.8 seconds).  The Case 2 test ran in about the same time as well, 5.9 seconds\nversus 5.4 seconds but again with much better tick accuracy, .013 seconds per\ntick versus .025 seconds per tick for the unmodified kernel.\n\nSince the fix affected the rlimit code, I also tested soft and hard CPU limits.\n\nCase 4: With a hard CPU limit of 20 seconds and eight threads (and an itimer\n\trunning), the modified kernel was very slightly favored in that while\n\tit killed the process in 19.997 seconds of CPU time (5.002 seconds of\n\twall time), only .003 seconds of that was system time, the rest was\n\tuser time.  The unmodified kernel killed the process in 20.001 seconds\n\tof CPU (5.014 seconds of wall time) of which .016 seconds was system\n\ttime.  Really, though, the results were too close to call.  The results\n\twere essentially the same with no itimer running.\n\nCase 5: With a soft limit of 20 seconds and a hard limit of 2000 seconds\n\t(where the hard limit would never be reached) and an itimer running,\n\tthe modified kernel exhibited worse tick accuracy than the unmodified\n\tkernel: .050 seconds/tick versus .028 seconds/tick.  Otherwise,\n\tperformance was almost indistinguishable.  With no itimer running this\n\ttest exhibited virtually identical behavior and times in both cases.\n\nIn times past I did some limited performance testing.  those results are below.\n\nOn a four-cpu Opteron system without this fix, a sixteen-thread test executed\nin 3569.991 seconds, of which user was 3568.435s and system was 1.556s.  On\nthe same system with the fix, user and elapsed time were about the same, but\nsystem time dropped to 0.007 seconds.  Performance with eight, four and one\nthread were comparable.  Interestingly, the timer ticks with the fix seemed\nmore accurate:  The sixteen-thread test with the fix received 149543 ticks\nfor 0.024 seconds per tick, while the same test without the fix received 58720\nfor 0.061 seconds per tick.  Both cases were configured for an interval of\n0.01 seconds.  Again, the other tests were comparable.  Each thread in this\ntest computed the primes up to 25,000,000.\n\nI also did a test with a large number of threads, 100,000 threads, which is\nimpossible without the fix.  In this case each thread computed the primes only\nup to 10,000 (to make the runtime manageable).  System time dominated, at\n1546.968 seconds out of a total 2176.906 seconds (giving a user time of\n629.938s).  It received 147651 ticks for 0.015 seconds per tick, still quite\naccurate.  There is obviously no comparable test without the fix.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38736f475071b80b66be28af7b44c854073699cc",
      "tree": "853b00d9fcf27093f75dbfe7d38922792c2c1a04",
      "parents": [
        "7f79d852ed30a06eebf7497afe9334a726db3d40"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Sat Sep 06 14:50:23 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 16:53:34 2008 +0200"
      },
      "message": "sched: fix __load_balance_iterator() for cfq with only one task\n\nThe __load_balance_iterator() returns a NULL when there\u0027s only one\nsched_entity which is a task. It is caused by the following code-path.\n\n\t/* Skip over entities that are not tasks */\n\tdo {\n\t\tse \u003d list_entry(next, struct sched_entity, group_node);\n\t\tnext \u003d next-\u003enext;\n\t} while (next !\u003d \u0026cfs_rq-\u003etasks \u0026\u0026 !entity_is_task(se));\n\n\tif (next \u003d\u003d \u0026cfs_rq-\u003etasks)\n\t\treturn NULL;\n\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n      This will return NULL even when se is a task.\n\nAs a side-effect, there was a regression in sched_mc behavior since 2.6.25,\nsince iter_move_one_task() when it calls load_balance_start_fair(),\nwould not get any tasks to move!\n\nFix this by checking if the last entity was a task or not.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aec0a5142cb52aaa152d962d84a838e25d520742",
      "tree": "8cf21e8fd5c5bc513923fd38acfc562ae0ab39d1",
      "parents": [
        "65eb3dc609dec17deea48dcd4de2e549d29a9824"
      ],
      "author": {
        "name": "Bharata B Rao",
        "email": "bharata@linux.vnet.ibm.com",
        "time": "Thu Aug 28 14:42:49 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 28 11:35:51 2008 +0200"
      },
      "message": "sched: call resched_task() conditionally from new task wake up path\n\n- During wake up of a new task, task_new_fair() can do a resched_task()\n  on the current task. Later in the code path, check_preempt_curr() also ends\n  up doing the same, which can be avoided. Check if TIF_NEED_RESCHED is\n  already set for the current task.\n\n- task_new_fair() does a resched_task() on the current task unconditionally.\n  This can be done only in case when child runs before the parent.\n\nSo this is a small speedup.\n\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77ae651347bdd46830da8b28b1efc5e4a9d7cbd0",
      "tree": "5c43252b5811cc0cba7b92e6b2fd241e0df6e3c8",
      "parents": [
        "251a169c69d1ff07cee7a9bb9fc4faff6b1d2ac3"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Aug 11 13:32:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 14:49:29 2008 +0200"
      },
      "message": "sched: fix mysql+oltp regression\n\nDefer commit 6d299f1b53b84e2665f402d9bcc494800aba6386 to the next release.\n\nTesting of the tip/sched/clock tree revealed a mysql+oltp regression\nwhich bisection eventually traced back to this commit in mainline.\n\nPertinent test results:  Three run sysbench averages, throughput units\nin read/write requests/sec.\n\nclients         1     2     4     8    16    32    64\n6e0534f      9646 17876 34774 33868 32230 30767 29441\n2.6.26.1     9112 17936 34652 33383 31929 30665 29232\n6d299f1      9112 14637 28370 33339 32038 30762 29204\n\nNote: subsequent commits hide the majority of this regression until you\napply the clock fixes, at which time it reemerges at full magnitude.\n\nWe cannot see anything bad about the change itself so we defer it to the\nnext release until this problem is fully analysed.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "157124c11f4217733691223ecf5ee47558ae9495",
      "tree": "bb6a8c8374ddef78ae3b07c004e5a794796d5289",
      "parents": [
        "c9272c4f9fbe2087beb3392f526dc5b19efaa56b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Jul 28 11:53:11 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 12:01:58 2008 +0200"
      },
      "message": "sched: fix warning in hrtick_start_fair()\n\nBenjamin Herrenschmidt reported:\n\n\u003e I get that on ppc64 ...\n\u003e\n\u003e In file included from kernel/sched.c:1595:\n\u003e kernel/sched_fair.c: In function ‘hrtick_start_fair’:\n\u003e kernel/sched_fair.c:902: warning: comparison of distinct pointer types lacks a cast\n\u003e\n\u003e Probably harmless but annoying.\n\ns64 delta \u003d slice - ran;\n\n--\u003e\tdelta \u003d max(10000LL, delta);\n\nProbably ppc64\u0027s s64 is long vs long long..\n\nI think hpa was looking at sanitizing all these 64bit types across the\narchitectures.\n\nUse max_t with an explicit type meanwhile.\n\nReported-by: Benjamin Herrenschmid \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f9dce38378f0a4a298e885553d6bb7121376376",
      "tree": "5bfd688c9f356f7216bbc3cef3b4c10153de334b",
      "parents": [
        "26dcce0fabbef75ae426461edf21b5030bad60f3",
        "ba42059fbd0aa1ac91b582412b5fedb1258f241f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "message": "Merge branch \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: hrtick_enabled() should use cpu_active()\n  sched, x86: clean up hrtick implementation\n  sched: fix build error, provide partition_sched_domains() unconditionally\n  sched: fix warning in inc_rt_tasks() to not declare variable \u0027rq\u0027 if it\u0027s not needed\n  cpu hotplug: Make cpu_active_map synchronization dependency clear\n  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n  sched: rework of \"prioritize non-migratable tasks over migratable ones\"\n  sched: reduce stack size in isolated_cpu_setup()\n  Revert parts of \"ftrace: do not trace scheduler functions\"\n\nFixed up conflicts in include/asm-x86/thread_info.h (due to the\nTIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and\nkernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()\nintroduction).\n"
    },
    {
      "commit": "d986434a7d32079cc6cbedcdb04d834aa9b323ff",
      "tree": "cf1feb5139d76cef0446945b5cad741c47ae9d8d",
      "parents": [
        "1b427c153a08fdbc092c2bdbf845b92fda58d857",
        "31656519e132f6612584815f128c83976a9aaaef"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 11:01:29 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 11:01:29 2008 +0200"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/devel\n"
    },
    {
      "commit": "31656519e132f6612584815f128c83976a9aaaef",
      "tree": "595349fdcd65988d7a43d647594dcea8a8a4e80b",
      "parents": [
        "577b4a58d2e74a4d48050eeea3e3f952ce04eb86"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jul 18 18:01:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 10:37:28 2008 +0200"
      },
      "message": "sched, x86: clean up hrtick implementation\n\nrandom uvesafb failures were reported against Gentoo:\n\n  http://bugs.gentoo.org/show_bug.cgi?id\u003d222799\n\nand Mihai Moldovan bisected it back to:\n\n\u003e 8f4d37ec073c17e2d4aa8851df5837d798606d6f is first bad commit\n\u003e commit 8f4d37ec073c17e2d4aa8851df5837d798606d6f\n\u003e Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\u003e Date:   Fri Jan 25 21:08:29 2008 +0100\n\u003e\n\u003e    sched: high-res preemption tick\n\nLinus suspected it to be hrtick + vm86 interaction and observed:\n\n\u003e Btw, Peter, Ingo: I think that commit is doing bad things. They aren\u0027t\n\u003e _incorrect_ per se, but they are definitely bad.\n\u003e\n\u003e Why?\n\u003e\n\u003e Using random _TIF_WORK_MASK flags is really impolite for doing\n\u003e \"scheduling\" work. There\u0027s a reason that arch/x86/kernel/entry_32.S\n\u003e special-cases the _TIF_NEED_RESCHED flag: we don\u0027t want to exit out of\n\u003e vm86 mode unnecessarily.\n\u003e\n\u003e See the \"work_notifysig_v86\" label, and how it does that\n\u003e \"save_v86_state()\" thing etc etc.\n\nRight, I never liked having to fiddle with those TIF flags. Initially I\nneeded it because the hrtimer base lock could not nest in the rq lock.\nThat however is fixed these days.\n\nCurrently the only reason left to fiddle with the TIF flags is remote\nwakeups. We cannot program a remote cpu\u0027s hrtimer. I\u0027ve been thinking\nabout using the new and improved IPI function call stuff to implement\nhrtimer_start_on().\n\nHowever that does require that smp_call_function_single(.wait\u003d0) works\nfrom interrupt context - /me looks at the latest series from Jens - Yes\nthat does seem to be supported, good.\n\nHere\u0027s a stab at cleaning this stuff up ...\n\nMihai reported test success as well.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Mihai Moldovan \u003cionic@ionic.de\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Antonino Daplas \u003cadaplas@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e761b7725234276a802322549cee5255305a0930",
      "tree": "27b351a7d5fc9a93590e0effce1c5adb1bfcebc0",
      "parents": [
        "7ebefa8ceefed44cc321be70afc54a585a68ac0b"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Tue Jul 15 04:43:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 13:22:25 2008 +0200"
      },
      "message": "cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n\nThis is based on Linus\u0027 idea of creating cpu_active_map that prevents\nscheduler load balancer from migrating tasks to the cpu that is going\ndown.\n\nIt allows us to simplify domain management code and avoid unecessary\ndomain rebuilds during cpu hotplug event handling.\n\nPlease ignore the cpusets part for now. It needs some more work in order\nto avoid crazy lock nesting. Although I did simplfy and unify domain\nreinitialization logic. We now simply call partition_sched_domains() in\nall the cases. This means that we\u0027re using exact same code paths as in\ncpusets case and hence the test below cover cpusets too.\nCpuset changes to make rebuild_sched_domains() callable from various\ncontexts are in the separate patch (right next after this one).\n\nThis not only boots but also easily handles\n\twhile true; do make clean; make -j 8; done\nand\n\twhile true; do on-off-cpu 1; done\nat the same time.\n(on-off-cpu 1 simple does echo 0/1 \u003e /sys/.../cpu1/online thing).\n\nSuprisingly the box (dual-core Core2) is quite usable. In fact I\u0027m typing\nthis on right now in gnome-terminal and things are moving just fine.\n\nAlso this is running with most of the debug features enabled (lockdep,\nmutex, etc) no BUG_ONs or lockdep complaints so far.\n\nI believe I addressed all of the Dmitry\u0027s comments for original Linus\u0027\nversion. I changed both fair and rt balancer to mask out non-active cpus.\nAnd replaced cpu_is_offline() with !cpu_active() in the main scheduler\ncode where it made sense (to me).\n\nSigned-off-by: Max Krasnyanskiy \u003cmaxk@qualcomm.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: dmitry.adamushko@gmail.com\nCc: pj@sgi.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82638844d9a8581bbf33201cc209a14876eca167",
      "tree": "961d7f9360194421a71aa644a9d0c176a960ce49",
      "parents": [
        "9982fbface82893e77d211fbabfbd229da6bdde6",
        "63cf13b77ab785e87c867defa8545e6d4a989774"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 16 00:29:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 16 00:29:07 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tarch/x86/xen/smp.c\n\tkernel/sched_rt.c\n\tnet/iucv/iucv.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68083e05d72d94f347293d8cc0067050ba904bfa",
      "tree": "842e71365bd90866be7add181661a4039d891564",
      "parents": [
        "7baac8b91f9871ba8cb09af84de4ae1d86d07812",
        "b7279469d66b55119784b8b9529c99c1955fe747"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 06 14:23:39 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 06 14:23:39 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.26-rc9\u0027 into cpus4096\n"
    },
    {
      "commit": "2087a1ad822cd3a68b73338457047fcc54da726b",
      "tree": "1ebc45b2499034ffe37b29bf7a748b8e992cd870",
      "parents": [
        "c4acb2c0669c5c5c9b28e9d02a34b5c67edf7092"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jun 27 14:30:00 2008 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 04 12:50:22 2008 +0200"
      },
      "message": "sched: add avg-overlap support to RT tasks\n\nWe have the notion of tracking process-coupling (a.k.a. buddy-wake) via\nthe p-\u003ese.last_wake / p-\u003ese.avg_overlap facilities, but it is only used\nfor cfs to cfs interactions.  There is no reason why an rt to cfs\ninteraction cannot share in establishing a relationhip in a similar\nmanner.\n\nBecause PREEMPT_RT runs many kernel threads as FIFO priority, we often\ntimes have heavy interaction between RT threads waking CFS applications.\nThis patch offers a substantial boost (50-60%+) in perfomance under those\ncircumstances.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: npiggin@suse.de\nCc: rostedt@goodmis.org\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "55e12e5e7b1d7e7c05a4be10cb5fd092c039aa78",
      "tree": "3a12d84266abfc21b1c41410a9c3f2f6d9e5d22d",
      "parents": [
        "f5bfb7d9ff73d72ee4f2f4830a6f0c9088d00f92"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval@linux.vnet.ibm.com",
        "time": "Tue Jun 24 23:39:43 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:32:05 2008 +0200"
      },
      "message": "sched: make sched_{rt,fair}.c ifdefs more readable\n\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f5bfb7d9ff73d72ee4f2f4830a6f0c9088d00f92",
      "tree": "402e8caaef4d3f0c26a52b171e04dbb67ea08cfa",
      "parents": [
        "f1d239f73200a5803a89e5929fb3abc1596b7589"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:39 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:47 2008 +0200"
      },
      "message": "sched: bias effective_load() error towards failing wake_affine().\n\nMeasurement shows that the difference between cgroup:/ and cgroup:/foo\nwake_affine() results is that the latter succeeds significantly more.\n\nTherefore bias the calculations towards failing the test.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f1d239f73200a5803a89e5929fb3abc1596b7589",
      "tree": "33c59b6f2621284af91825ea7fbab718ffe65ade",
      "parents": [
        "83378269a5fad98f562ebc0f09c349575e6cbfe1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:38 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:47 2008 +0200"
      },
      "message": "sched: incremental effective_load()\n\nIncrease the accuracy of the effective_load values.\n\nNot only consider the current increment (as per the attempted wakeup), but\nalso consider the delta between when we last adjusted the shares and the\ncurrent situation.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83378269a5fad98f562ebc0f09c349575e6cbfe1",
      "tree": "516128bff6cfe915f93b983e3fe96733707ce09c",
      "parents": [
        "243e0e7b7d3b54749ece2e879ecd7e2a11874443"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:37 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:46 2008 +0200"
      },
      "message": "sched: correct wakeup weight calculations\n\nrw_i \u003d {2, 4, 1, 0}\ns_i \u003d {2/7, 4/7, 1/7, 0}\n\nwakeup on cpu0, weight\u003d1\n\nrw\u0027_i \u003d {3, 4, 1, 0}\ns\u0027_i \u003d {3/8, 4/8, 1/8, 0}\n\ns_0 \u003d S * rw_0 / \\Sum rw_j -\u003e\n  \\Sum rw_j \u003d S*rw_0/s_0 \u003d 1*2*7/2 \u003d 7 (correct)\n\ns\u0027_0 \u003d S * (rw_0 + 1) / (\\Sum rw_j + 1) \u003d\n       1 * (2+1) / (7+1) \u003d 3/8 (correct\n\nso we find that adding 1 to cpu0 gains 5/56 in weight\nif say the other cpu were, cpu1, we\u0027d also have to calculate its 4/56 loss\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "243e0e7b7d3b54749ece2e879ecd7e2a11874443",
      "tree": "0dd6af7eb63d261d15d3720f77a9430387e3db42",
      "parents": [
        "2398f2c6d34b43025f274fc42eaca34d23ec2320"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jun 27 13:41:36 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:45 2008 +0200"
      },
      "message": "sched: fix mult overflow\n\nIt was observed these mults can overflow.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb5ef42a03a13f95a9ea94e6cda4f7a47497871f",
      "tree": "4c94df72d2889ecce52bf74b141ae06d85d4708a",
      "parents": [
        "051c67640e771fd6ad1b676fc0c16c379b3c6f80"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:32 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:43 2008 +0200"
      },
      "message": "sched: optimize effective_load()\n\ns_i \u003d S * rw_i / \\Sum_j rw_j\n\n -\u003e \\Sum_j rw_j \u003d S * rw_i / s_i\n\n -\u003e s\u0027_i \u003d S * (rw_i + w) / (\\Sum_j rw_j + w)\n\ndelta s \u003d s\u0027 - s \u003d S * (rw + w) / ((S * rw / s) + w)\n        \u003d s * (S * (rw + w) / (S * rw + s * w) - 1)\n\n a \u003d S*(rw+w), b \u003d S*rw + s*w\n\ndelta s \u003d s * (a-b) / b\n\nIOW, trade one divide for two multiplies\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4be9daaa1b33701f011f4117f22dc1e45a3e6e34",
      "tree": "8c823cf397055c4919cc5f2a6275f125b0580a6b",
      "parents": [
        "42a3ac7d5cee89849448b41b86faeb86f98e92f6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:42 2008 +0200"
      },
      "message": "sched: fix task_h_load()\n\nCurrently task_h_load() computes the load of a task and uses that to either\nsubtract it from the total, or add to it.\n\nHowever, removing or adding a task need not have any effect on the total load\nat all. Imagine adding a task to a group that is local to one cpu - in that\ncase the total load of that cpu is unaffected.\n\nSo properly compute addition/removal:\n\n s_i \u003d S * rw_i / \\Sum_j rw_j\n s\u0027_i \u003d S * (rw_i + wl) / (\\Sum_j rw_j + wg)\n\nthen s\u0027_i - s_i gives the change in load.\n\nWhere s_i is the shares for cpu i, S the group weight, rw_i the runqueue weight\nfor that cpu, wl the weight we add (subtract) and wg the weight contribution to\nthe runqueue.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "42a3ac7d5cee89849448b41b86faeb86f98e92f6",
      "tree": "a601a02fd090b6da93b81ef9857133b8de7b5079",
      "parents": [
        "408ed066b11cf9ee4536573b4269ee3613bd735e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:29 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:41 2008 +0200"
      },
      "message": "sched: fix load scaling in group balancing\n\ndoing the load balance will change cfs_rq-\u003eload.weight (that\u0027s the whole point)\nbut since that\u0027s part of the scale factor, we\u0027ll scale back with a different\namount.\n\nWeight getting smaller would result in an inflated moved_load which causes\nit to stop balancing too soon.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bb3469ac9b50f14ad6eba129ca0ad4fd033097a0",
      "tree": "e5c6c6563778593f53fca642675b4c3ba5603ed2",
      "parents": [
        "a8a51d5e59561aa5b4d66e19eca819b537783e8f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:27 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:40 2008 +0200"
      },
      "message": "sched: hierarchical load vs affine wakeups\n\nWith hierarchical grouping we can\u0027t just compare task weight to rq weight - we\nneed to scale the weight appropriately.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c8cba857b4997d5b00451d01474638f6a153f713",
      "tree": "a784dce37d72ae20a0efb81b8e498b504a207650",
      "parents": [
        "a25b5aca8740ea99d5e18dfc71235a52b685dcf7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:36 2008 +0200"
      },
      "message": "sched: simplify the group load balancer\n\nWhile thinking about the previous patch - I realized that using per domain\naggregate load values in load_balance_fair() is wrong. We should use the\nload value for that CPU.\n\nBy not needing per domain hierarchical load values we don\u0027t need to store\nper domain aggregate shares, which greatly simplifies all the math.\n\nIt basically falls apart in two separate computations:\n - per domain update of the shares\n - per CPU update of the hierarchical load\n\nAlso get rid of the move_group_shares() stuff - just re-compute the shares\nagain after a successful load balance.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a25b5aca8740ea99d5e18dfc71235a52b685dcf7",
      "tree": "834bcfd9a51f840cc10693348ecffc99ce69550d",
      "parents": [
        "d3f40dbab954d83383b6a516582d5c09cc216dcc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:22 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:35 2008 +0200"
      },
      "message": "sched: no need to aggregate task_weight\n\nWe only need to know the task_weight of the busiest rq - nothing to do\nif there are no tasks there.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "53fecd8ae1900fb571086f54f664051004665b55",
      "tree": "2dfd5aba9d974f0f114e96cbdc2aef82a32078a9",
      "parents": [
        "4d8d595dfa69e1c807bf928f364668a7f30da5dc"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jun 27 13:41:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:33 2008 +0200"
      },
      "message": "sched: kill task_group balancing\n\nThe idea was to balance groups until we\u0027ve reached the global goal, however\nVatsa rightly pointed out that we might never reach that goal this way -\nhence take out this logic.\n\n[ the initial rationale for this \u0027feature\u0027 was to promote max concurrency\n  within a group - it does not however affect fairness ]\n\nReported-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b6a86c746f5b708012809958462234d19e9c8177",
      "tree": "38654c70da6382f50779ede1e973d2d395f38e54",
      "parents": [
        "32df2ee86a580f70f2dbb90cf81f413aa655f838"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:18 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:32 2008 +0200"
      },
      "message": "sched: fix sched_domain aggregation\n\nKeeping the aggregate on the first cpu of the sched domain has two problems:\n - it could collide between different sched domains on different cpus\n - it could slow things down because of the remote accesses\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "103638d95ba5b0c53c8d9c0cb581156ccc8513ee",
      "tree": "56d78e3e00780e044ef7688f27c93ece813035c1",
      "parents": [
        "76a2a6ee8a0660a29127f05989ac59ae1ce865fa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:31 2008 +0200"
      },
      "message": "sched: fix wakeup granularity and buddy granularity\n\nUncouple buddy selection from wakeup granularity.\n\nThe initial idea was that buddies could run ahead as far as a normal task\ncan - do this by measuring a pair \u0027slice\u0027 just as we do for a normal task.\n\nThis means we can drop the wakeup_granularity back to 5ms.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c09595f63bb1909c5dc4dca288f4fe818561b5f3",
      "tree": "42631e6986f3ea4543b125ca62a99df8548e0eb9",
      "parents": [
        "ced8aa16e1db55c33c507174c1b1f9e107445865"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:29 2008 +0200"
      },
      "message": "sched: revert revert of: fair-group: SMP-nice for group scheduling\n\nTry again..\n\nInitial commit: 18d95a2832c1392a2d63227a7a6d433cb9f2037e\nRevert: 6363ca57c76b7b83639ca8c83fc285fa26a7880e\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ced8aa16e1db55c33c507174c1b1f9e107445865",
      "tree": "87210bb14026a7a3d005b5339dae44d845f27708",
      "parents": [
        "c9c294a630e28eec5f2865f028ecfc58d45c0a5a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:13 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:28 2008 +0200"
      },
      "message": "sched: fix calc_delta_asym, #2\n\nOk, so why are we in this mess, it was:\n\n  1/w\n\nbut now we mixed that rw in the mix like:\n\n rw/w\n\nrw being \\Sum w suggests: fiddling w, we should also fiddle rw, humm?\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c9c294a630e28eec5f2865f028ecfc58d45c0a5a",
      "tree": "62fcfc395e98ff7a4ff6bee3364d0bb86024b171",
      "parents": [
        "a7be37ac8e1565e00880531f4e2aff421a21c803"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:12 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:28 2008 +0200"
      },
      "message": "sched: fix calc_delta_asym()\n\ncalc_delta_asym() is supposed to do the same as calc_delta_fair() except\nlinearly shrink the result for negative nice processes - this causes them\nto have a smaller preemption threshold so that they are more easily preempted.\n\nThe problem is that for task groups se-\u003eload.weight is the per cpu share of\nthe actual task group weight; take that into account.\n\nAlso provide a debug switch to disable the asymmetry (which I still don\u0027t\nlike - but it does greatly benefit some workloads)\n\nThis would explain the interactivity issues reported against group scheduling.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7be37ac8e1565e00880531f4e2aff421a21c803",
      "tree": "82eb64ba5b221c3abea6d6f56c692841faea813a",
      "parents": [
        "bf647b62fdb948e757a7b4d18d4f16e3c763b1d1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:11 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:27 2008 +0200"
      },
      "message": "sched: revert the revert of: weight calculations\n\nTry again..\n\ninitial commit: 8f1bc385cfbab474db6c27b5af1e439614f3025c\nrevert: f9305d4a0968201b2818dbed0dc8cb0d4ee7aeb3\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d299f1b53b84e2665f402d9bcc494800aba6386",
      "tree": "52d44fb6e2fe84f180c7e47a0faa5da48be6ab26",
      "parents": [
        "6e0534f278199f1e3dd1049b9bc19a7a5b87ada1"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon May 12 21:21:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 06 15:19:29 2008 +0200"
      },
      "message": "sched: fix SCHED_OTHER balance iterator to include all tasks\n\nThe currently logic inadvertently skips the last task on the run-queue,\nresulting in missed balance opportunities.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: David Bahi \u003cdbahi@novell.com\u003e\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b3137bc8e77962a8e3b4dfdc1bcfd38e437bd278",
      "tree": "5131501b5575f933074cc89545ff997d277d1d57",
      "parents": [
        "a381759d6ad5c5dea5a981918e0b4493e9b66ac7"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu May 29 11:11:41 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:29:20 2008 +0200"
      },
      "message": "sched: stop wake_affine from causing serious imbalance\n\nPrevent short-running wakers of short-running threads from overloading a single\ncpu via wakeup affinity, and wire up disconnected debug option.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6363ca57c76b7b83639ca8c83fc285fa26a7880e",
      "tree": "b8630b4af286409efdd648920a546fae24d4db88",
      "parents": [
        "4285f594f84d1f0641fc962d00e6638dec4a19c4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:28:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:28:57 2008 +0200"
      },
      "message": "revert (\"sched: fair-group: SMP-nice for group scheduling\")\n\nYanmin Zhang reported:\n\nComparing with 2.6.25, volanoMark has big regression with kernel 2.6.26-rc1.\nIt\u0027s about 50% on my 8-core stoakley, 16-core tigerton, and Itanium Montecito.\n\nWith bisect, I located the following patch:\n\n| 18d95a2832c1392a2d63227a7a6d433cb9f2037e is first bad commit\n| commit 18d95a2832c1392a2d63227a7a6d433cb9f2037e\n| Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n| Date:   Sat Apr 19 19:45:00 2008 +0200\n|\n|     sched: fair-group: SMP-nice for group scheduling\n\nRevert it so that we get v2.6.25 behavior.\n\nBisected-by: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f9305d4a0968201b2818dbed0dc8cb0d4ee7aeb3",
      "tree": "e171e568f04bd25c7c2ff99b5ef673b917b6eae6",
      "parents": [
        "f26a3988917913b3d11b2bd741601a2c64ab9204"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:23:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:24:01 2008 +0200"
      },
      "message": "revert (\"sched: fair: weight calculations\")\n\nYanmin Zhang reported:\n\nComparing with kernel 2.6.25, sysbench+mysql(oltp, readonly) has many\nregressions with 2.6.26-rc1:\n\n 1) 8-core stoakley: 28%;\n 2) 16-core tigerton: 20%;\n 3) Itanium Montvale: 50%.\n\nBisect located this patch:\n\n| 8f1bc385cfbab474db6c27b5af1e439614f3025c is first bad commit\n| commit 8f1bc385cfbab474db6c27b5af1e439614f3025c\n| Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n| Date:   Sat Apr 19 19:45:00 2008 +0200\n|\n|     sched: fair: weight calculations\n\nRevert it to the 2.6.25 state.\n\nBisected-by: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "363ab6f1424cdea63e5d182312d60e19077b892a",
      "tree": "e200197412691015ca8de083155985e7e460ecfc",
      "parents": [
        "068b12772a64c2440ef2f64ac5d780688c06576f"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon May 12 21:21:13 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 18:35:12 2008 +0200"
      },
      "message": "core: use performance variant for_each_cpu_mask_nr\n\nChange references from for_each_cpu_mask to for_each_cpu_mask_nr\nwhere appropriate\n\nReviewed-by: Paul Jackson \u003cpj@sgi.com\u003e\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "46151122e0a2e80e5a6b2889f595e371fe2b600d",
      "tree": "61ab1993c1a94765327aeba3b36924b88b81e68f",
      "parents": [
        "bf726eab3711cf192405d21688a4b21e07b6188a"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu May 08 17:00:42 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 08 17:00:42 2008 +0200"
      },
      "message": "sched: fix weight calculations\n\nThe conversion between virtual and real time is as follows:\n\n  dvt \u003d rw/w * dt \u003c\u003d\u003e dt \u003d w/rw * dvt\n\nSince we want the fair sleeper granularity to be in real time, we actually\nneed to do:\n\n  dvt \u003d - rw/w * l\n\nThis bug could be related to the regression reported by Yanmin Zhang:\n\n| Comparing with kernel 2.6.25, sysbench+mysql(oltp, readonly) has lots\n| of regressions with 2.6.26-rc1:\n|\n| 1) 8-core stoakley: 28%;\n| 2) 16-core tigerton: 20%;\n| 3) Itanium Montvale: 50%.\n\nReported-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e51f33fcc7f55e6df25d15b55ed10c8b4da84cd",
      "tree": "3752f9ea8e014ec40e95a1b197b0a3d18e1056a8",
      "parents": [
        "a5574cf65b5f03ce9ade3918764fe22e5e2371e3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 03 18:29:28 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: add optional support for CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\nthis replaces the rq-\u003eclock stuff (and possibly cpu_clock()).\n\n - architectures that have an \u0027imperfect\u0027 hardware clock can set\n   CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\n - the \u0027jiffie\u0027 window might be superfulous when we update tick_gtod\n   before the __update_sched_clock() call in sched_clock_tick()\n\n - cpu_clock() might be implemented as:\n\n     sched_clock_cpu(smp_processor_id())\n\n   if the accuracy proves good enough - how far can TSC drift in a\n   single jiffie when considering the filtering and idle hooks?\n\n[ mingo@elte.hu: various fixes and cleanups ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7dcdc11cfa6a8860a29b09f985467b89224699d",
      "tree": "cd7b8c1ba9b23ec84f93e58417e67644dfd7a124",
      "parents": [
        "673a90a1e05c8127886f7659d1a457169378371f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Apr 29 12:23:09 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix debugging\n\nRevert debugging commit 7ba2e74ab5a0518bc953042952dd165724bc70c9.\nprint_cfs_rq_tasks() can induce live-lock if a task is dequeued\nduring list traversal.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "104f64549c961a797ff5f7c59946a7caa335c5b0",
      "tree": "d63d707ee5b9d1dbc8e5796e142ca584736f01b9",
      "parents": [
        "8ae121ac8666b0421aa20fd80d4597ec66fa54bc"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Apr 28 12:40:01 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix SCHED_FAIR wake-idle logic error\n\nWe currently use an optimization to skip the overhead of wake-idle\nprocessing if more than one task is assigned to a run-queue.  The\nassumption is that the system must already be load-balanced or we\nwouldnt be overloaded to begin with.\n\nThe problem is that we are looking at rq-\u003enr_running, which may include\nRT tasks in addition to CFS tasks.  Since the presence of RT tasks\nreally has no bearing on the balance status of CFS tasks, this throws\nthe calculation off.\n\nThis patch changes the logic to only consider the number of CFS tasks\nwhen making the decision to optimze the wake-idle.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "983ed7a66bcec9dc307d89dc7af47cdf209e56af",
      "tree": "a5fc14c7fe993b795198bbeee2919ad695735e81",
      "parents": [
        "d478c2cfaa2476f8b6876f9eb4d8fddcfa986479"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Apr 24 18:17:55 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: add statics, don\u0027t return void expressions\n\nNoticed by sparse:\nkernel/sched.c:760:20: warning: symbol \u0027sched_feat_names\u0027 was not declared. Should it be static?\nkernel/sched.c:767:5: warning: symbol \u0027sched_feat_open\u0027 was not declared. Should it be static?\nkernel/sched_fair.c:845:3: warning: returning void-valued expression\nkernel/sched.c:4386:3: warning: returning void-valued expression\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a992241de614dd2b7c97a9ba64e28c0e563f19bf",
      "tree": "a76f646188c23aad856b43ffc841a0ec08613398",
      "parents": [
        "5717922a1b8cc477f45a0f4f11fe619392ba7133"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: fix normalized sleeper\n\nNormalized sleeper uses calc_delta*() which requires that the rq load is\nalready updated, so move account_entity_enqueue() before place_entity()\n\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7ba2e74ab5a0518bc953042952dd165724bc70c9",
      "tree": "c6a1495130ebef022f21cb3b7acde0842588acb4",
      "parents": [
        "8f1bc385cfbab474db6c27b5af1e439614f3025c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: debug: show a weight tree\n\nPrint a tree of weights.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "8f1bc385cfbab474db6c27b5af1e439614f3025c"
}
