)]}'
{
  "log": [
    {
      "commit": "16bc67edeb49b531940b2ba6c183780a1b5c472d",
      "tree": "71b4bc48e47e54f2c0b3126d8f81d2f31b707ea8",
      "parents": [
        "f6630114d9198aa959ac95c131334c020038f253",
        "047106adcc85e3023da210143a6ab8a55df9e0fc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:50:42 2009 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: Pick up fixes that did not make it into .32.0\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "36ace27e3e60d44ea69ce394b2e45386ae98d9d9",
      "tree": "059cf2b286d14b90e6a2515e7014eff82b5c73c6",
      "parents": [
        "429947248f814e90f416ab4f68a871ab628000c3"
      ],
      "author": {
        "name": "Tim Blechmann",
        "email": "tim@klingt.org",
        "time": "Tue Nov 24 11:55:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 24 12:18:12 2009 +0100"
      },
      "message": "sched: Optimize branch hint in pick_next_task_fair()\n\nBranch hint profiling on my nehalem machine showed 90%\nincorrect branch hints:\n\n  15728471 158903754  90 pick_next_task_fair\n  sched_fair.c    1555\n\nSigned-off-by: Tim Blechmann \u003ctim@klingt.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4B0BBBB1.2050100@klingt.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fe3bcfe1f6c1fc4ea7706ac2d05e579fd9092682",
      "tree": "2de57bbb385face039f7e6c0da38f86e545076a0",
      "parents": [
        "a50bde5130f65733142b32975616427d0ea50856"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Nov 12 15:55:29 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 13 10:09:59 2009 +0100"
      },
      "message": "sched: More generic WAKE_AFFINE vs select_idle_sibling()\n\nInstead of only considering SD_WAKE_AFFINE | SD_PREFER_SIBLING\ndomains also allow all SD_PREFER_SIBLING domains below a\nSD_WAKE_AFFINE domain to change the affinity target.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091112145610.909723612@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a50bde5130f65733142b32975616427d0ea50856",
      "tree": "c2bf0c04fbebfa0f3d6ae8b709f754d5fce4b831",
      "parents": [
        "761b1d26df542fd5eb348837351e4d2f3bc7bffe"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Nov 12 15:55:28 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 13 10:09:58 2009 +0100"
      },
      "message": "sched: Cleanup select_task_rq_fair()\n\nClean up the new affine to idle sibling bits while trying to\ngrok them. Should not have any function differences.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091112145610.832503781@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd210738f6601d0fb462df9a2fe5a41896ff6a8f",
      "tree": "0f4488bd171590ed33930edf7684449b9437f11c",
      "parents": [
        "1b9508f6831e10d53256825de8904caa22d1ca2c"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Nov 05 10:57:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 05 11:01:39 2009 +0100"
      },
      "message": "sched: Fix affinity logic in select_task_rq_fair()\n\nIngo Molnar reported:\n\n[   26.804000] BUG: using smp_processor_id() in preemptible [00000000] code: events/1/10\n[   26.808000] caller is vmstat_update+0x26/0x70\n[   26.812000] Pid: 10, comm: events/1 Not tainted 2.6.32-rc5 #6887\n[   26.816000] Call Trace:\n[   26.820000]  [\u003cc1924a24\u003e] ? printk+0x28/0x3c\n[   26.824000]  [\u003cc13258a0\u003e] debug_smp_processor_id+0xf0/0x110\n[   26.824000] mount used greatest stack depth: 1464 bytes left\n[   26.828000]  [\u003cc111d086\u003e] vmstat_update+0x26/0x70\n[   26.832000]  [\u003cc1086418\u003e] worker_thread+0x188/0x310\n[   26.836000]  [\u003cc10863b7\u003e] ? worker_thread+0x127/0x310\n[   26.840000]  [\u003cc108d310\u003e] ? autoremove_wake_function+0x0/0x60\n[   26.844000]  [\u003cc1086290\u003e] ? worker_thread+0x0/0x310\n[   26.848000]  [\u003cc108cf0c\u003e] kthread+0x7c/0x90\n[   26.852000]  [\u003cc108ce90\u003e] ? kthread+0x0/0x90\n[   26.856000]  [\u003cc100c0a7\u003e] kernel_thread_helper+0x7/0x10\n[   26.860000] BUG: using smp_processor_id() in preemptible [00000000] code: events/1/10\n[   26.864000] caller is vmstat_update+0x3c/0x70\n\nBecause this commit:\n\n  a1f84a3: sched: Check for an idle shared cache in select_task_rq_fair()\n\nbroke -\u003ecpus_allowed.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: arjan@infradead.org\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c1257415066.12867.1.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a1f84a3ab8e002159498814eaa7e48c33752b04b",
      "tree": "070b6c105c510460b314c20e17de4b5b89eb6a48",
      "parents": [
        "acc3f5d7cabbfd6cec71f0c1f9900621fa2d6ae7"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Oct 27 15:35:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 18:46:22 2009 +0100"
      },
      "message": "sched: Check for an idle shared cache in select_task_rq_fair()\n\nWhen waking affine, check for an idle shared cache, and if\nfound, wake to that CPU/sibling instead of the waker\u0027s CPU.\n\nThis improves pgsql+oltp ramp up by roughly 8%. Possibly more\nfor other loads, depending on overlap. The trade-off is a\nroughly 1% peak downturn if tasks are truly synchronous.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c1256654138.17752.7.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f685ceacab07d3f6c236f04803e2f2f0dbcc5afb",
      "tree": "f5fbbb177ccb784ffa6d6224b7b8f0cb8a096bb9",
      "parents": [
        "92f6a5e37a2e2d3342dafb2b39c2f8bc340bbf84"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Oct 23 23:09:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 23 23:48:28 2009 +0200"
      },
      "message": "sched: Strengthen buddies and mitigate buddy induced latencies\n\nThis patch restores the effectiveness of LAST_BUDDY in preventing\npgsql+oltp from collapsing due to wakeup preemption. It also\nswitches LAST_BUDDY to exclusively do what it does best, namely\nmitigate the effects of aggressive wakeup preemption, which\nimproves vmark throughput markedly, and restores mysql+oltp\nscalability.\n\nSince buddies are about scalability, enable them beginning at the\npoint where we begin expanding sched_latency, namely\nsched_nr_latency. Previously, buddies were cleared aggressively,\nwhich seriously reduced their effectiveness. Not clearing\naggressively however, produces a small drop in mysql+oltp\nthroughput immediately after peak, indicating that LAST_BUDDY is\nactually doing some harm. This is right at the point where X on the\ndesktop in competition with another load wants low latency service.\nErgo, do not enable until we need to scale.\n\nTo mitigate latency induced by buddies, or by a task just missing\nwakeup preemption, check latency at tick time.\n\nLast hunk prevents buddies from stymieing BALANCE_NEWIDLE via\nCACHE_HOT_BUDDY.\n\nSupporting performance tests:\n\n tip   \u003d v2.6.32-rc5-1497-ga525b32\n tipx  \u003d NO_GENTLE_FAIR_SLEEPERS NEXT_BUDDY granularity knobs \u003d 31 knobs + 31 buddies\n tip+x \u003d NO_GENTLE_FAIR_SLEEPERS granularity knobs \u003d 31 knobs\n\n(Three run averages except where noted.)\n\n vmark:\n ------\n tip           108466 messages per second\n tip+          125307 messages per second\n tip+x         125335 messages per second\n tipx          117781 messages per second\n 2.6.31.3      122729 messages per second\n\n mysql+oltp:\n -----------\n clients          1        2        4        8       16       32       64        128    256\n ..........................................................................................\n tip        9949.89 18690.20 34801.24 34460.04 32682.88 30765.97 28305.27 25059.64 19548.08\n tip+      10013.90 18526.84 34900.38 34420.14 33069.83 32083.40 30578.30 28010.71 25605.47\n tipx       9698.71 18002.70 34477.56 33420.01 32634.30 31657.27 29932.67 26827.52 21487.18\n 2.6.31.3   8243.11 18784.20 34404.83 33148.38 31900.32 31161.90 29663.81 25995.94 18058.86\n\n pgsql+oltp:\n -----------\n clients          1        2        4        8       16       32       64      128      256\n ..........................................................................................\n tip       13686.37 26609.25 51934.28 51347.81 49479.51 45312.65 36691.91 26851.57 24145.35\n tip+ (1x) 13907.85 27135.87 52951.98 52514.04 51742.52 50705.43 49947.97 48374.19 46227.94\n tip+x     13906.78 27065.81 52951.19 52542.59 52176.11 51815.94 50838.90 49439.46 46891.00\n tipx      13742.46 26769.81 52351.99 51891.73 51320.79 50938.98 50248.65 48908.70 46553.84\n 2.6.31.3  13815.35 26906.46 52683.34 52061.31 51937.10 51376.80 50474.28 49394.47 47003.25\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "92f6a5e37a2e2d3342dafb2b39c2f8bc340bbf84",
      "tree": "1e71e909fbf74b09863815549dbbe67d1661ab2b",
      "parents": [
        "799e2205ec65e174f752b558c62a92c4752df313"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 09 12:43:07 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 14 15:02:34 2009 +0200"
      },
      "message": "sched: Do less agressive buddy clearing\n\nYanmin reported a hackbench regression due to:\n\n \u003e commit de69a80be32445b0a71e8e3b757e584d7beb90f7\n \u003e Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n \u003e Date:   Thu Sep 17 09:01:20 2009 +0200\n \u003e\n \u003e     sched: Stop buddies from hogging the system\n\nI really liked de69a80b, and it affecting hackbench shows I wasn\u0027t\ncrazy ;-)\n\nSo hackbench is a multi-cast, with one sender spraying multiple\nreceivers, who in their turn don\u0027t spray back.\n\nThis would be exactly the scenario that patch \u0027cures\u0027. Previously\nwe would not clear the last buddy after running the next task,\nallowing the sender to get back to work sooner than it otherwise\nought to have been, increasing latencies for other tasks.\n\nNow, since those receivers don\u0027t poke back, they don\u0027t enforce the\nbuddy relation, which means there\u0027s nothing to re-elect the sender.\n\nCure this by less agressively clearing the buddy stats. Only clear\nbuddies when they were not chosen. It should still avoid a buddy\nsticking around long after its served its time.\n\nReported-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c1255084986.8802.46.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e4bc3dd2ca07d77882eba73cea240aba95a1854",
      "tree": "da105cd2c4f51c78c401c00d8b399572914694ed",
      "parents": [
        "bd4c3a3441144cd46d1f544046523724c5bc6e94",
        "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 21 09:06:17 2009 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Simplify sys_sched_rr_get_interval() system call\n  sched: Fix potential NULL derference of doms_cur\n  sched: Fix raciness in runqueue_is_locked()\n  sched: Re-add lost cpu_allowed check to sched_fair.c::select_task_rq_fair()\n  sched: Remove unneeded indentation in sched_fair.c::place_entity()\n"
    },
    {
      "commit": "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1",
      "tree": "54c0c8dc201122483bdd7e8975103b07f6afd34b",
      "parents": [
        "cb5fd13f1178dee4302646b2890d884c380160e1"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Mon Sep 21 01:31:53 2009 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 09:53:55 2009 +0200"
      },
      "message": "sched: Simplify sys_sched_rr_get_interval() system call\n\nBy removing the need for it to know details of scheduling classes.\n\nThis allows PlugSched to define orthogonal scheduling classes.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c06d1b89ee15a0eef82d7.1253496713@mudlark.pw.nest\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f04e8cd5b24727a2500f8ab8f3de730ba47b02c",
      "tree": "d4f11319d7508055dffb13c4aafc623fd3a0180f",
      "parents": [
        "a2e7a7eb2fea109891ffff90f947e8306080a2a3"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Sat Sep 19 16:52:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 17:11:31 2009 +0200"
      },
      "message": "sched: Re-add lost cpu_allowed check to sched_fair.c::select_task_rq_fair()\n\nWhile doing some testing, I pinned mplayer, only to find it\nfollowing X around like a puppy. Looking at commit c88d591, I found\na cpu_allowed check that went AWOL.  I plugged it back in where it\nlooks like it needs to go, and now when I say \"sit, stay!\", mplayer\nobeys again.\n\n\u0027c88d591 sched: Merge select_task_rq_fair() and\nsched_balance_self()\u0027 accidentally dropped the check, causing\nwake_affine() to pull pinned tasks - put it back.\n\n[ v2: use a cheaper version from Peter ]\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "929bf0d0156562ce631728b6fa53d68004d456d2",
      "tree": "739063990a8077b29ef97e69d73bce94573daae4",
      "parents": [
        "def0a9b2573e00ab0b486cb5382625203ab4c4a6",
        "202c4675c55ddf6b443c7e057d2dff6b42ef71aa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 11:27:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 11:28:41 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perfcounters/core\n\nMerge reason: Bring in tracing changes we depend on.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2e7a7eb2fea109891ffff90f947e8306080a2a3",
      "tree": "a6b63d5041c1f506300fbf4852b410cf47d8098f",
      "parents": [
        "df58bee21ed218cb7dfb561a590b1bd2a99531cf"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Sep 18 09:19:25 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 09:22:39 2009 +0200"
      },
      "message": "sched: Remove unneeded indentation in sched_fair.c::place_entity()\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1253258365.22787.33.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29cd8bae396583a2ee9a3340db8c5102acf9f6fd",
      "tree": "d16fba0c7c7da9047db532fcf5cbb847bd6fea51",
      "parents": [
        "de69a80be32445b0a71e8e3b757e584d7beb90f7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 17 09:01:14 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:40:31 2009 +0200"
      },
      "message": "sched: Fix SD_POWERSAVING_BALANCE|SD_PREFER_LOCAL vs SD_WAKE_AFFINE\n\nThe SD_POWERSAVING_BALANCE|SD_PREFER_LOCAL code can break out of\nthe domain iteration early, making us miss the SD_WAKE_AFFINE bits.\n\nFix this by continuing iteration until there is no need for a\nlarger domain.\n\nThis also cleans up the cgroup stuff a bit, but not having two\nupdate_shares() invocations.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "de69a80be32445b0a71e8e3b757e584d7beb90f7",
      "tree": "3a8d6bf8e5aded3c371e5dc090b8874305952d1f",
      "parents": [
        "ad4b78bbcbab66998b05d422ac6106b645796e54"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 17 09:01:20 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:40:30 2009 +0200"
      },
      "message": "sched: Stop buddies from hogging the system\n\nClear buddies more agressively.\n\nThe (theoretical, haven\u0027t actually observed any of this) problem is\nthat when we do not select either buddy in pick_next_entity()\nbecause they are too far ahead of the left-most task, we do not\nclear the buddies.\n\nThis means that as soon as we service the left-most task, these\nsame buddies will be tried again on the next schedule. Now if the\nleft-most task was a pure hog, it wouldn\u0027t have done any wakeups\nand it wouldn\u0027t have set buddies of its own. That leads to the old\nbuddies dominating, which would lead to bad latencies.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad4b78bbcbab66998b05d422ac6106b645796e54",
      "tree": "45f3561f4bd6b886948a3b0eea64edab9bab9eda",
      "parents": [
        "eb24073bc1fe3e569a855cf38d529fb650c35524"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Sep 16 12:31:31 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 17 10:17:25 2009 +0200"
      },
      "message": "sched: Add new wakeup preemption mode: WAKEUP_RUNNING\n\nCreate a new wakeup preemption mode, preempt towards tasks that run\nshorter on avg. It sets next buddy to be sure we actually run the task\nwe preempted for.\n\nTest results:\n\n root@twins:~# while :; do :; done \u0026\n [1] 6537\n root@twins:~# while :; do :; done \u0026\n [2] 6538\n root@twins:~# while :; do :; done \u0026\n [3] 6539\n root@twins:~# while :; do :; done \u0026\n [4] 6540\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max          4750 usec\n        Avg           497 usec\n        Stdev         737 usec\n\n root@twins:/home/peter# echo WAKEUP_RUNNING \u003e /debug/sched_features\n\n root@twins:/home/peter# ./latt -c4 sleep 4\n Entries: 48 (clients\u003d4)\n\n Averages:\n ------------------------------\n        Max            14 usec\n        Avg             5 usec\n        Stdev           3 usec\n\nDisabled by default - needs more testing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003cnew-submission\u003e\n"
    },
    {
      "commit": "5a9b86f647a56862cdc0a1362bfb015ae921af7f",
      "tree": "656652186f9f5198e73139f6362afd7b6584eca1",
      "parents": [
        "5158f4e4428c6b8d52796b3b460e95796123a114"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 13:47:58 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 16:44:33 2009 +0200"
      },
      "message": "sched: Rename flags to wake_flags\n\nFor consistencies sake, rename the argument (again).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5158f4e4428c6b8d52796b3b460e95796123a114",
      "tree": "25f62ffd3e427fc8f5b6b6be434bc3918dc59960",
      "parents": [
        "3b6408942206f940dd538e980e9904e48f4b64f8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 13:46:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 16:44:32 2009 +0200"
      },
      "message": "sched: Clean up the load_idx selection in select_task_rq_fair\n\nClean up the code a little.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3b6408942206f940dd538e980e9904e48f4b64f8",
      "tree": "7e0a0dc37d07e0308ef2294a5de1cd1ea42a388c",
      "parents": [
        "7c423e98856df9b941223a7e7845b2502ad84b00"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 13:44:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 16:44:32 2009 +0200"
      },
      "message": "sched: Optimize cgroup vs wakeup a bit\n\nWe don\u0027t need to call update_shares() for each domain we iterate,\njust got the largets one.\n\nHowever, we should call it before wake_affine() as well, so that\nthat can use up-to-date values too.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51e0304ce6e55a6e59658558916b4f74da085ff0",
      "tree": "da17f8f9f1b3b0431cd0cd1e90ea95f970654f9f",
      "parents": [
        "59abf02644c45f1591e1374ee7bb45dc757fcb88"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 08:54:45 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 09:05:20 2009 +0200"
      },
      "message": "sched: Implement a gentler fair-sleepers feature\n\nAdd back FAIR_SLEEPERS and GENTLE_FAIR_SLEEPERS.\n\nFAIR_SLEEPERS is the old logic: credit sleepers with their sleep time.\n\nGENTLE_FAIR_SLEEPERS dampens this a bit: 50% of their sleep time gets\ncredited.\n\nThe hope here is to still give the benefits of fair-sleepers logic\n(quick wakeups, etc.) while not allow them to have 100% of their\nsleep time as if they were running.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "59abf02644c45f1591e1374ee7bb45dc757fcb88",
      "tree": "ce9cb0a4a57873b9d7d75cce4d28308019367192",
      "parents": [
        "e69b0f1b41c0e57bb1e29100b5810a5914efcb45"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 16 08:28:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 16 08:42:40 2009 +0200"
      },
      "message": "sched: Add SD_PREFER_LOCAL\n\nAnd turn it on for NUMA and MC domains. This improves\nlocality in balancing decisions by keeping up to\ncapacity amount of tasks local before looking for idle\nCPUs. (and twice the capacity if SD_POWERSAVINGS_BALANCE\nis set.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e69b0f1b41c0e57bb1e29100b5810a5914efcb45",
      "tree": "ded9f35988e907c1b9cf45cd2f536b920f5f65b7",
      "parents": [
        "63859d4fe4c97b737e7adbfe60acb1c2b2e668cb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 15 19:38:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 19:47:23 2009 +0200"
      },
      "message": "sched: Add a few SYNC hint knobs to play with\n\nCurrently we use overlap to weaken the SYNC hint, but allow it to\nset the hint as well.\n\n echo NO_SYNC_WAKEUP \u003e /debug/sched_features\n echo SYNC_MORE \u003e /debug/sched_features\n\npreserves pipe-test behaviour without using the WF_SYNC hint.\n\nWorth playing with on more workloads...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7558e01056f5191ff2ecff53b075dcb9e484188",
      "tree": "1364bbf9273ce353f4f3146aebe567f79b7c8cad",
      "parents": [
        "7d47872146398dbede13223299fe1cb368ebc781"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 20:02:34 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:31 2009 +0200"
      },
      "message": "sched: Add WF_FORK\n\nAvoid the cache buddies from biasing the time distribution away\nfrom fork()ers. Normally the next buddy will be the preferred\nscheduling target, but this makes fork()s prefer to run the new\nchild, whereas we prefer to run the parent, since that will\ngenerate more work.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d47872146398dbede13223299fe1cb368ebc781",
      "tree": "c472424ecbabdb8136e2b93f49f75af9414f03f3",
      "parents": [
        "0763a660a84220cc3900fd32abdd7ad109e2278d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:55:44 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:30 2009 +0200"
      },
      "message": "sched: Rename sync arguments\n\nIn order to extend the functions to have more than 1 flag (sync),\nrename the argument to flags, and explicitly define a WF_ space for\nindividual flags.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0763a660a84220cc3900fd32abdd7ad109e2278d",
      "tree": "1b745884fb79627e05c026ee5bfb115b1f722db8",
      "parents": [
        "8e6598af3f35629c37249a610cf13e73f70db279"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:37:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:29 2009 +0200"
      },
      "message": "sched: Rename select_task_rq() argument\n\nIn order to be able to rename the sync argument, we need to rename\nthe current flag argument.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "78e7ed53c9f42f04f9401ada6f7047db60781676",
      "tree": "24f45333ce4479b27c96b425c7d09c080a26609f",
      "parents": [
        "d7c33c4930f569caf6b2ece597432853c4151a45"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 03 13:16:51 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:07 2009 +0200"
      },
      "message": "sched: Tweak wake_idx\n\nWhen merging select_task_rq_fair() and sched_balance_self() we lost\nthe use of wake_idx, restore that and set them to 0 to make wake\nbalancing more aggressive.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7c33c4930f569caf6b2ece597432853c4151a45",
      "tree": "96a0eca96b0109a0dbc2c7a92065cafcf5660718",
      "parents": [
        "83f54960c11a14942ab00b54c51e91906b9d8235"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 11 12:45:38 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:07 2009 +0200"
      },
      "message": "sched: Fix task affinity for select_task_rq_fair\n\nWhile merging select_task_rq_fair() and sched_balance_self() I made\na mistake that leads to testing the wrong task affinty.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83f54960c11a14942ab00b54c51e91906b9d8235",
      "tree": "6c7df778777568bb0c7375b4e7ec84ed532809df",
      "parents": [
        "ae154be1f34a674e6cbb43ccf6e442f56acd7a70"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 18:18:47 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:06 2009 +0200"
      },
      "message": "sched: for_each_domain() vs RCU\n\nfor_each_domain() uses RCU to serialize the sched_domains, except\nit doesn\u0027t actually use rcu_read_lock() and instead relies on\ndisabling preemption -\u003e FAIL.\n\nXXX: audit other sched_domain code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ae154be1f34a674e6cbb43ccf6e442f56acd7a70",
      "tree": "e1feba2c818216c97e11801ee7a6e3c2592b10af",
      "parents": [
        "c88d5910890ad35af283344417891344604f0438"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 14:40:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:06 2009 +0200"
      },
      "message": "sched: Weaken SD_POWERSAVINGS_BALANCE\n\nOne of the problems of power-saving balancing is that under certain\nscenarios it is too slow and allows tons of real work to pile up.\n\nAvoid this by ignoring the powersave stuff when there\u0027s real work\nto be done.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c88d5910890ad35af283344417891344604f0438",
      "tree": "4e2025d569c3e03a7ec5163f0a9bc159114ee14e",
      "parents": [
        "e9c8431185d6c406887190519f6dbdd112641686"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:50:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:05 2009 +0200"
      },
      "message": "sched: Merge select_task_rq_fair() and sched_balance_self()\n\nThe problem with wake_idle() is that is doesn\u0027t respect things like\ncpu_power, which means it doesn\u0027t deal well with SMT nor the recent\nRT interaction.\n\nTo cure this, it needs to do what sched_balance_self() does, which\nleads to the possibility of merging select_task_rq_fair() and\nsched_balance_self().\n\nModify sched_balance_self() to:\n\n  - update_shares() when walking up the domain tree,\n    (it only called it for the top domain, but it should\n     have done this anyway), which allows us to remove\n    this ugly bit from try_to_wake_up().\n\n  - do wake_affine() on the smallest domain that contains\n    both this (the waking) and the prev (the wakee) cpu for\n    WAKE invocations.\n\nThen use the top-down balance steps it had to replace wake_idle().\n\nThis leads to the dissapearance of SD_WAKE_BALANCE and\nSD_WAKE_IDLE_FAR, with SD_WAKE_IDLE replaced with SD_BALANCE_WAKE.\n\nSD_WAKE_AFFINE needs SD_BALANCE_WAKE to be effective.\n\nTouch all topology bits to replace the old with new SD flags --\nplatforms might need re-tuning, enabling SD_BALANCE_WAKE\nconditionally on a NUMA distance seems like a good additional\nfeature, magny-core and small nehalem systems would want this\nenabled, systems with slow interconnects would not.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f",
      "tree": "46f987010ca017be945831b76d8ea846f1ba8fc9",
      "parents": [
        "aaee1203ca52b9db799433c33c9bffc33cdf8909"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:42:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:04 2009 +0200"
      },
      "message": "sched: Hook sched_balance_self() into sched_class::select_task_rq()\n\nRather ugly patch to fully place the sched_balance_self() code\ninside the fair class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aaee1203ca52b9db799433c33c9bffc33cdf8909",
      "tree": "27da699a8034090f8be9e24d1b7cedb8f6cdf804",
      "parents": [
        "f5f08f39ee4c5fd0a757d25d9e04d696676b3df7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:36:25 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:04 2009 +0200"
      },
      "message": "sched: Move sched_balance_self() into sched_fair.c\n\nMove the sched_balance_self() code into sched_fair.c\n\nThis facilitates the merger of sched_balance_self() and\nsched_fair::select_task_rq().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3cb63d527f76e25dbccce4f577f21aecfa2abac7",
      "tree": "2a4e940aa108b8c1f9a524dbf3294db88c5f9098",
      "parents": [
        "e6b1b2c9c0461c4e0971ed905ce3cda6512ee82a"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Sep 11 12:01:17 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:02 2009 +0200"
      },
      "message": "sched: Complete buddy switches\n\nAdd a NEXT_BUDDY feature flag to aid in debugging.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6b1b2c9c0461c4e0971ed905ce3cda6512ee82a",
      "tree": "6462056dec7dcf59139f38d399f2cb27b07bd609",
      "parents": [
        "b78bb868c54bebbf8d8786a3f8320700d6d2b864"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 11 11:59:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:02 2009 +0200"
      },
      "message": "sched: Split WAKEUP_OVERLAP\n\nIt consists of two conditions, split them out in separate toggles\nso we can test them independently.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f977bb4937857994312fff4f9c2cad336a36a932",
      "tree": "ce4736f585cfb9ecb3f959f6fe77997852dd00e3",
      "parents": [
        "c13f0d3c8165e9592102687fa999da0a0d9c3724"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 13 18:15:54 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 13 18:17:28 2009 +0200"
      },
      "message": "perf_counter, sched: Add sched_stat_runtime tracepoint\n\nThis allows more precise tracking of how the scheduler accounts\n(and acts upon) a task having spent N nanoseconds of CPU time.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1f8450854d69f0291882804406ea1bab3ca44b4",
      "tree": "606e2176f7654269de904b15aad9491912db4093",
      "parents": [
        "3f2aa307c4d26b4ed6509d0a79e8254c9e07e921"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 10 20:52:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 10 20:52:54 2009 +0200"
      },
      "message": "sched: Fix sched::sched_stat_wait tracepoint field\n\nThis weird perf trace output:\n\n  cc1-9943  [001]  2802.059479616: sched_stat_wait: task: as:9944 wait: 2801938766276 [ns]\n\nIs caused by setting one component field of the delta to zero\na bit too early. Move it to later.\n\n( Note, this does not affect the NEW_FAIR_SLEEPERS interactivity bug,\n  it\u0027s just a reporting bug in essence. )\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikos Chantziaras \u003crealnc@arcor.de\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c4AA93D34.8040500@arcor.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "172e082a9111ea504ee34cbba26284a5ebdc53a7",
      "tree": "da8e95b16003960d3c132f51e01f83aae6b25d4b",
      "parents": [
        "2bba22c50b06abe9fd0d23933b1e64d35b419262"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Sep 09 15:41:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 09 17:30:06 2009 +0200"
      },
      "message": "sched: Re-tune the scheduler latency defaults to decrease worst-case latencies\n\nReduce the latency target from 20 msecs to 5 msecs.\n\nWhy? Larger latencies increase spread, which is good for scaling,\nbut bad for worst case latency.\n\nWe still have the ilog(nr_cpus) rule to scale up on bigger\nserver boxes.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1252486344.28645.18.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bba22c50b06abe9fd0d23933b1e64d35b419262",
      "tree": "5ac0373fa1d18f043cb27183f9f185ceda598915",
      "parents": [
        "b5d9d734a53e0204aab0089079cbde2a1285a38f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Sep 09 15:41:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 09 17:30:05 2009 +0200"
      },
      "message": "sched: Turn off child_runs_first\n\nSet child_runs_first default to off.\n\nIt hurts \u0027optimal\u0027 make -j\u003cNR_CPUS\u003e workloads as make jobs\nget preempted by child tasks, reducing parallelism.\n\nNote, this patch might make existing races in user\napplications more prominent than before - so breakages\nmight be bisected to this commit.\n\nChild-runs-first is broken on SMP to begin with, and we\nalready had it off briefly in v2.6.23 so most of the\noffenders ought to be fixed. Would be nice not to revert\nthis commit but fix those apps finally ...\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1252486344.28645.18.camel@marge.simson.net\u003e\n[ made the sysctl independent of CONFIG_SCHED_DEBUG, in case\n  people want to work around broken apps. ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5d9d734a53e0204aab0089079cbde2a1285a38f",
      "tree": "f8c657d213514de7affaab50ed4cfd8b3a17d0f3",
      "parents": [
        "a8fae3ec5f118dc92517dcbed3ecf69ddb641d0f"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Sep 08 11:12:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 08 13:15:34 2009 +0200"
      },
      "message": "sched: Ensure that a child can\u0027t gain time over it\u0027s parent after fork()\n\nA fork/exec load is usually \"pass the baton\", so the child\nshould never be placed behind the parent.  With START_DEBIT we\nmake room for the new task, but with child_runs_first, that\nroom comes out of the _parent\u0027s_ hide. There\u0027s nothing to say\nthat the parent wasn\u0027t ahead of min_vruntime at fork() time,\nwhich means that the \"baton carrier\", who is essentially the\nparent in drag, can gain time and increase scheduling latencies\nfor waiters.\n\nWith NEW_FAIR_SLEEPERS + START_DEBIT + child_runs_first\nenabled, we essentially pass the sleeper fairness off to the\nchild, which is fine, but if we don\u0027t base placement on the\nparent\u0027s updated vruntime, we can end up compounding latency\nwoes if the child itself then does fork/exec.  The debit\nincurred at fork doesn\u0027t hurt the parent who is then going to\nsleep and maybe exit, but the child who acquires the error\nharms all comers.\n\nThis improves latencies of make -j\u003cn\u003e kernel build workloads.\n\nReported-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71a29aa7b600595d0ef373ea605ac656876d1f2f",
      "tree": "1288e5bd2bd4b5c599c2b8c7649c30987101a8ec",
      "parents": [
        "cdd2ab3de4301728b20efd6225681d3ff591a938"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 07 18:28:05 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 07 20:39:06 2009 +0200"
      },
      "message": "sched: Deal with low-load in wake_affine()\n\nwake_affine() would always fail under low-load situations where\nboth prev and this were idle, because adding a single task will\nalways be a significant imbalance, even if there\u0027s nothing\naround that could balance it.\n\nDeal with this by allowing imbalance when there\u0027s nothing you\ncan do about it.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cdd2ab3de4301728b20efd6225681d3ff591a938",
      "tree": "7b812c19b624efb0056a96a1403e5b5e791ff714",
      "parents": [
        "840a0653100dbde599ae8ddf83fa214dfa5fd1aa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 07 18:12:06 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 07 20:39:05 2009 +0200"
      },
      "message": "sched: Remove short cut from select_task_rq_fair()\n\nselect_task_rq_fair() incorrectly skips the wake_affine()\nlogic, remove this.\n\nWhen prev_cpu \u003d\u003d this_cpu, the code jumps straight to the\nwake_idle() logic, this doesn\u0027t give the wake_affine() logic\nthe chance to pin the task to this cpu.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "d986434a7d32079cc6cbedcdb04d834aa9b323ff"
}
