)]}'
{
  "log": [
    {
      "commit": "5fb5e6de55860a99c2d8fe7e0c8222d5c53d8464",
      "tree": "7a9935bfa8b20c56ddc865c130f17d2f42444ce8",
      "parents": [
        "19ef9309273d26cb005cb23e6a370353dca91099"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: print backtrace of running tasks too\n\nThe attached patch is something really simple that can sometimes help\nin getting more info out of a hung system.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cc203d2422004498909c4886d1b94a2e388d973e",
      "tree": "10fd9f364bda783b7354cf0e7d04ba319899c079",
      "parents": [
        "782daeee3d596282bfee4cd9e976c86be0e194a8"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: monitor clock underflows in /proc/sched_debug\n\nWe monitor clock overflows, let\u0027s also monitor clock underflows.\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "782daeee3d596282bfee4cd9e976c86be0e194a8",
      "tree": "7f831f365ba3f9f9b8f10572b858eb231864dde0",
      "parents": [
        "4f05b98d54b140ed3c5851d5d5156e9918c6305d"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "sched: fix rq-\u003eclock warps on frequency changes\n\nsched: fix rq-\u003eclock warps on frequency changes\n\nFix 2bacec8c318ca0418c0ee9ac662ee44207765dd4\n(sched: touch softlockup watchdog after idling) that reintroduced warps\non frequency changes. touch_softlockup_watchdog() calls __update_rq_clock\nthat checks rq-\u003eclock for warps, so call it after adjusting rq-\u003eclock.\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6478d8800b75253b2a934ddcb734e13ade023ad0",
      "tree": "df4017269b8755735578445c0a8a9e8b3b2615e9",
      "parents": [
        "58b8a73ab8becfcaea84abc2a06038281efa4c8a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "sched: remove the !PREEMPT_BKL code\n\nremove the !PREEMPT_BKL code.\n\nthis removes 160 lines of legacy code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48d5e258216f1c7713633439beb98a38c7290649",
      "tree": "6f8c98785015d56337e87ed56b23d39feeeaf846",
      "parents": [
        "614ee1f61f667b02165c1ae0c1357048dc6d94a0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "message": "sched: rt throttling vs no_hz\n\nWe need to teach no_hz about the rt throttling because its tick driven.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f505b16425a51270058e4a93441fe64de3dd435",
      "tree": "be21e711d93bc4d088b97c4a4f585a5044dbaa7d",
      "parents": [
        "fa85ae2418e6843953107cd6a06f645752829bc0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "message": "sched: rt group scheduling\n\nExtend group scheduling to also cover the realtime classes. It uses the time\nlimiting introduced by the previous patch to allow multiple realtime groups.\n\nThe hard time limit is required to keep behaviour deterministic.\n\nThe algorithms used make the realtime scheduler O(tg), linear scaling wrt the\nnumber of task groups. This is the worst case behaviour I can\u0027t seem to get out\nof, the avg. case of the algorithms can be improved, I focused on correctness\nand worst case.\n\n[ akpm@linux-foundation.org: move side-effects out of BUG_ON(). ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa85ae2418e6843953107cd6a06f645752829bc0",
      "tree": "004130ac471247a29d3f6adfbfe61c474e725779",
      "parents": [
        "8f4d37ec073c17e2d4aa8851df5837d798606d6f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "message": "sched: rt time limit\n\nVery simple time limit on the realtime scheduling classes.\nAllow the rq\u0027s realtime class to consume sched_rt_ratio of every\nsched_rt_period slice. If the class exceeds this quota the fair class\nwill preempt the realtime class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f4d37ec073c17e2d4aa8851df5837d798606d6f",
      "tree": "a9ac9063eca53e4d0110e8086f55241ea70ba993",
      "parents": [
        "02b67cc3ba36bdba351d6c3a00593f4ec550d9d3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "message": "sched: high-res preemption tick\n\nUse HR-timers (when available) to deliver an accurate preemption tick.\n\nThe regular scheduler tick that runs at 1/HZ can be too coarse when nice\nlevel are used. The fairness system will still keep the cpu utilisation \u0027fair\u0027\nby then delaying the task that got an excessive amount of CPU time but try to\nminimize this by delivering preemption points spot-on.\n\nThe average frequency of this extra interrupt is sched_latency / nr_latency.\nWhich need not be higher than 1/HZ, its just that the distribution within the\nsched_latency period is important.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02b67cc3ba36bdba351d6c3a00593f4ec550d9d3",
      "tree": "5185ad2d780974dc864f12d81d6c8b9fec73097b",
      "parents": [
        "03319ec8b06849051747a17aa2a0f9aba9277980"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "message": "sched: do not do cond_resched() when CONFIG_PREEMPT\n\nWhy do we even have cond_resched when real preemption\nis on? It seems to be a waste of space and time.\n\nremove cond_resched with CONFIG_PREEMPT on.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "03319ec8b06849051747a17aa2a0f9aba9277980",
      "tree": "085d1b072b95e91061d27cb3bab965ff83b6b04a",
      "parents": [
        "78f2c7db6068fd6ef75b8c120f04a388848eacb5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "message": "sched: documentation, whitespace fixes\n\nwhitespace fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa717060f1ab7eb6570f2fb49136f838fc9195a9",
      "tree": "0338460dae3116563645e3bfa1ff5100d39826f8",
      "parents": [
        "8eb703e4f33488bf75829564d51d427e17f7cd4c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "message": "sched: sched_rt_entity\n\nMove the task_struct members specific to rt scheduling together.\nA future optimization could be to put sched_entity and sched_rt_entity\ninto a union.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dc938520d2bf343b239795cfa24e4f44649358dc",
      "tree": "576a88bdc234cf663e649c058392478cf24e1f62",
      "parents": [
        "f85d6c7168887e6659f4d00fa5f34fa23dbde1bb"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:26 2008 +0100"
      },
      "message": "sched: dynamically update the root-domain span/online maps\n\nThe baseline code statically builds the span maps when the domain is formed.\nPrevious attempts at dynamically updating the maps caused a suspend-to-ram\nregression, which should now be fixed.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb46984504048db946cd551c261df4e70d59a8ea",
      "tree": "e07343cc5967f74370c6b0290b67a225d868a99d",
      "parents": [
        "9a897c5a6701bcb6f099f7ca20194999102729fd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "message": "sched: RT-balance, add new methods to sched_class\n\nDmitry Adamushko found that the current implementation of the RT\nbalancing code left out changes to the sched_setscheduler and\nrt_mutex_setprio.\n\nThis patch addresses this issue by adding methods to the schedule classes\nto handle being switched out of (switched_from) and being switched into\n(switched_to) a sched_class. Also a method for changing of priorities\nis also added (prio_changed).\n\nThis patch also removes some duplicate logic between rt_mutex_setprio and\nsched_setscheduler.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a897c5a6701bcb6f099f7ca20194999102729fd",
      "tree": "9c5415d5e2dd115660200cbd246fe1343cd5cd5c",
      "parents": [
        "4bf0b77158d581c952af237aec79d0604b78fe27"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "message": "sched: RT-balance, replace hooks with pre/post schedule and wakeup methods\n\nTo make the main sched.c code more agnostic to the schedule classes.\nInstead of having specific hooks in the schedule code for the RT class\nbalancing. They are replaced with a pre_schedule, post_schedule\nand task_wake_up methods. These methods may be used by any of the classes\nbut currently, only the sched_rt class implements them.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5d2f5a616d65e3c08acde3195694c4ab8afbc1b7",
      "tree": "df44c641af4cd66160f6296e86833c568070ae76",
      "parents": [
        "9ec3b77e11b9398ab40b492c4fde7d8aac04a718"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:21 2008 +0100"
      },
      "message": "sched: get rid of \u0027new_cpu\u0027 in try_to_wake_up()\n\nClean-up try_to_wake_up().\n\nGet rid of the \u0027new_cpu\u0027 variable in try_to_wake_up() [ that\u0027s, one\n#ifdef section less ].  Also remove a few redundant blank lines.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b913176917399e92e6f741672038c73d7ce93be5",
      "tree": "23e91c24e606fbff9d90253b03685f62069fcae1",
      "parents": [
        "0eab9146571dfa9b50ea952ec2ab27d591f26b63"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "message": "sched: add credits for RT balancing improvements\n\nadd credits for RT balancing improvements.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0eab9146571dfa9b50ea952ec2ab27d591f26b63",
      "tree": "690e7a3588e914fea1dd3891b04e4c20d1159349",
      "parents": [
        "d7876a08db50895ed9808ede4a259cccf65eba47"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "message": "sched: style cleanup, #2\n\nstyle cleanup of various changes that were done recently.\n\nno code changed:\n\n      text    data     bss     dec     hex filename\n     26399    2578      48   29025    7161 sched.o.before\n     26399    2578      48   29025    7161 sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7876a08db50895ed9808ede4a259cccf65eba47",
      "tree": "c1459fb0b369cbebe60cde3f6248b67278ad6816",
      "parents": [
        "bdd7c81b4973e72b670eff6b5725bab189b723d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:19 2008 +0100"
      },
      "message": "sched: remove unused JIFFIES_TO_NS() macro\n\nremove unused JIFFIES_TO_NS() macro.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "637f50851b57a32f7ec67c50fc16f1601ab1a87a",
      "tree": "ee8a4bc19fda1783bff8aa44abdcb6d8596aa7f1",
      "parents": [
        "57d885fea0da0e9541d7730a9e1dcf734981a173"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "message": "sched: only balance our RT tasks within our domain\n\nWe move the rt-overload data as the first global to per-domain\nreclassification.  This limits the scope of overload related cache-line\nbouncing to stay with a specified partition instead of affecting all\ncpus in the system.\n\nFinally, we limit the scope of find_lowest_cpu searches to the domain\ninstead of the entire system.  Note that we would always respect domain\nboundaries even without this patch, but we first would scan potentially\nall cpus before whittling the list down.  Now we can avoid looking at\nRQs that are out of scope, again reducing cache-line hits.\n\nNote: In some cases, task-\u003ecpus_allowed will effectively reduce our search\nto within our domain.  However, I believe there are cases where the\ncpus_allowed mask may be all ones and therefore we err on the side of\ncaution.  If it can be optimized later, so be it.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57d885fea0da0e9541d7730a9e1dcf734981a173",
      "tree": "80f08ea6ed506e2aac30c89b8ae1eee7f008a378",
      "parents": [
        "7f51f298204ec0528422cd9b23feac12612c5665"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "message": "sched: add sched-domain roots\n\nWe add the notion of a root-domain which will be used later to rescope\nglobal variables to per-domain variables.  Each exclusive cpuset\nessentially defines an island domain by fully partitioning the member cpus\nfrom any other cpuset.  However, we currently still maintain some\npolicy/state as global variables which transcend all cpusets.  Consider,\nfor instance, rt-overload state.\n\nWhenever a new exclusive cpuset is created, we also create a new\nroot-domain object and move each cpu member to the root-domain\u0027s span.\nBy default the system creates a single root-domain with all cpus as\nmembers (mimicking the global state we have today).\n\nWe add some plumbing for storing class specific data in our root-domain.\nWhenever a RQ is switching root-domains (because of repartitioning) we\ngive each sched_class the opportunity to remove any state from its old\ndomain and add state to the new one.  This logic doesn\u0027t have any clients\nyet but it will later in the series.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Christoph Lameter \u003cclameter@sgi.com\u003e\nCC: Paul Jackson \u003cpj@sgi.com\u003e\nCC: Simon Derr \u003csimon.derr@bull.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d1311a536a0face6267e7346223f2e68b002018",
      "tree": "20fff118911799b902647a8cb50cc9d2c0f0bd6f",
      "parents": [
        "610bf05645a7ac6ea104a474e328eeaaea148870"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:14 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:14 2008 +0100"
      },
      "message": "sched: RT-balance on new task\n\nrt-balance when creating new tasks.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a22d7fc187ed996b66d8439db27b2303f79a8e7b",
      "tree": "44845eaac2aa44b185d0663d689fea29d94ea5ff",
      "parents": [
        "6e1254d2c41215da27025add8900ed187bca121d"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:12 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:12 2008 +0100"
      },
      "message": "sched: wake-balance fixes\n\nWe have logic to detect whether the system has migratable tasks, but we are\nnot using it when deciding whether to push tasks away.  So we add support\nfor considering this new information.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7693a362ec84bb5b6fd441d8a8b4b9d568a7a0c",
      "tree": "078940540641a59aaf199695bfc6de3f062a987b",
      "parents": [
        "697f0a487f294e634a342764472b79375bb3158a"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "message": "sched: de-SCHED_OTHER-ize the RT path\n\nThe current wake-up code path tries to determine if it can optimize the\nwake-up to \"this_cpu\" by computing load calculations.  The problem is that\nthese calculations are only relevant to SCHED_OTHER tasks where load is king.\nFor RT tasks, priority is king.  So the load calculation is completely wasted\nbandwidth.\n\nTherefore, we create a new sched_class interface to help with\npre-wakeup routing decisions and move the load calculation as a function\nof CFS task\u0027s class.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "73fe6aae84400e2b475e2a1dc4e8592cd3ed6e69",
      "tree": "97c7d6a866d75563082c422491fc423b47aca9d7",
      "parents": [
        "c7a1e46aa9782a947cf2ed506245d43396dbf991"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: add RT-balance cpu-weight\n\nSome RT tasks (particularly kthreads) are bound to one specific CPU.\nIt is fairly common for two or more bound tasks to get queued up at the\nsame time.  Consider, for instance, softirq_timer and softirq_sched.  A\ntimer goes off in an ISR which schedules softirq_thread to run at RT50.\nThen the timer handler determines that it\u0027s time to smp-rebalance the\nsystem so it schedules softirq_sched to run.  So we are in a situation\nwhere we have two RT50 tasks queued, and the system will go into\nrt-overload condition to request other CPUs for help.\n\nThis causes two problems in the current code:\n\n1) If a high-priority bound task and a low-priority unbounded task queue\n   up behind the running task, we will fail to ever relocate the unbounded\n   task because we terminate the search on the first unmovable task.\n\n2) We spend precious futile cycles in the fast-path trying to pull\n   overloaded tasks over.  It is therefore optimial to strive to avoid the\n   overhead all together if we can cheaply detect the condition before\n   overload even occurs.\n\nThis patch tries to achieve this optimization by utilizing the hamming\nweight of the task-\u003ecpus_allowed mask.  A weight of 1 indicates that\nthe task cannot be migrated.  We will then utilize this information to\nskip non-migratable tasks and to eliminate uncessary rebalance attempts.\n\nWe introduce a per-rq variable to count the number of migratable tasks\nthat are currently running.  We only go into overload if we have more\nthan one rt task, AND at least one of them is migratable.\n\nIn addition, we introduce a per-task variable to cache the cpus_allowed\nweight, since the hamming calculation is probably relatively expensive.\nWe only update the cached value when the mask is updated which should be\nrelatively infrequent, especially compared to scheduling frequency\nin the fast path.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4642dafdf93dc7d66ee33437b93a5e6b8cea20d2",
      "tree": "4e3fd9c95be1ed14e9f40b2dcf232c40e5ab8fef",
      "parents": [
        "f65eda4f789168ba5ff3fa75546c29efeed19f58"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: push RT tasks from overloaded CPUs\n\nThis patch adds pushing of overloaded RT tasks from a runqueue that is\nhaving tasks (most likely RT tasks) added to the run queue.\n\nTODO: We don\u0027t cover the case of waking of new RT tasks (yet).\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f65eda4f789168ba5ff3fa75546c29efeed19f58",
      "tree": "235e6daad2bc37b22cc5b21907608c79f944f036",
      "parents": [
        "4fd29176b7cd24909f8ceba2105cb3ae2857b90c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: pull RT tasks from overloaded runqueues\n\nThis patch adds the algorithm to pull tasks from RT overloaded runqueues.\n\nWhen a pull RT is initiated, all overloaded runqueues are examined for\na RT task that is higher in prio than the highest prio task queued on the\ntarget runqueue. If another runqueue holds a RT task that is of higher\nprio than the highest prio task on the target runqueue is found it is pulled\nto the target runqueue.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e8fa136262e1121288bb93befe2295928ffd240d",
      "tree": "5df829adde9b43efee39275c05751c99bf46eb2f",
      "parents": [
        "764a9d6fe4b52995c8aba277e3634385699354f4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:05 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:05 2008 +0100"
      },
      "message": "sched: add RT task pushing\n\nThis patch adds an algorithm to push extra RT tasks off a run queue to\nother CPU runqueues.\n\nWhen more than one RT task is added to a run queue, this algorithm takes\nan assertive approach to push the RT tasks that are not running onto other\nrun queues that have lower priority.  The way this works is that the highest\nRT task that is not running is looked at and we examine the runqueues on\nthe CPUS for that tasks affinity mask. We find the runqueue with the lowest\nprio in the CPU affinity of the picked task, and if it is lower in prio than\nthe picked task, we push the task onto that CPU runqueue.\n\nWe continue pushing RT tasks off the current runqueue until we don\u0027t push any\nmore.  The algorithm stops when the next highest RT task can\u0027t preempt any\nother processes on other CPUS.\n\nTODO: The algorithm may stop when there are still RT tasks that can be\n migrated. Specifically, if the highest non running RT task CPU affinity\n is restricted to CPUs that are running higher priority tasks, there may\n be a lower priority task queued that has an affinity with a CPU that is\n running a lower priority task that it could be migrated to.  This\n patch set does not address this issue.\n\nNote: checkpatch reveals two over 80 character instances. I\u0027m not sure\n that breaking them up will help visually, so I left them as is.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "764a9d6fe4b52995c8aba277e3634385699354f4",
      "tree": "497587d29fc867cfe8fc1aab68dd4ed7aba72bdd",
      "parents": [
        "63489e45e265f64c368882be1f01c42dec5d984c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:04 2008 +0100"
      },
      "message": "sched: track highest prio task queued\n\nThis patch adds accounting to each runqueue to keep track of the\nhighest prio task queued on the run queue. We only care about\nRT tasks, so if the run queue does not contain any active RT tasks\nits priority will be considered MAX_RT_PRIO.\n\nThis information will be used for later patches.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "63489e45e265f64c368882be1f01c42dec5d984c",
      "tree": "d228ccbe22bc421c36455c7e05480247a4a8d2b1",
      "parents": [
        "82a1fcb90287052aabfa235e7ffc693ea003fe69"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:03 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:03 2008 +0100"
      },
      "message": "sched: count # of queued RT tasks\n\nThis patch adds accounting to keep track of the number of RT tasks running\non a runqueue. This information will be used in later patches.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82a1fcb90287052aabfa235e7ffc693ea003fe69",
      "tree": "826b464a248bebe259fe787f7b8d17d5626cf2c5",
      "parents": [
        "d0d23b5432fe61229dd3641c5e94d4130bc4e61b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks\n\nthis patch extends the soft-lockup detector to automatically\ndetect hung TASK_UNINTERRUPTIBLE tasks. Such hung tasks are\nprinted the following way:\n\n ------------------\u003e\n INFO: task prctl:3042 blocked for more than 120 seconds.\n \"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message\n prctl         D fd5e3793     0  3042   2997\n        f6050f38 00000046 00000001 fd5e3793 00000009 c06d8264 c06dae80 00000286\n        f6050f40 f6050f00 f7d34d90 f7d34fc8 c1e1be80 00000001 f6050000 00000000\n        f7e92d00 00000286 f6050f18 c0489d1a f6050f40 00006605 00000000 c0133a5b\n Call Trace:\n  [\u003cc04883a5\u003e] schedule_timeout+0x6d/0x8b\n  [\u003cc04883d8\u003e] schedule_timeout_uninterruptible+0x15/0x17\n  [\u003cc0133a76\u003e] msleep+0x10/0x16\n  [\u003cc0138974\u003e] sys_prctl+0x30/0x1e2\n  [\u003cc0104c52\u003e] sysenter_past_esp+0x5f/0xa5\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n 2 locks held by prctl/3042:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#5){--..}, at: [\u003cc0197d11\u003e] do_fsync+0x38/0x7a\n #1:  (jbd_handle){--..}, at: [\u003cc01ca3d2\u003e] journal_start+0xc7/0xe9\n \u003c------------------\n\nthe current default timeout is 120 seconds. Such messages are printed\nup to 10 times per bootup. If the system has crashed already then the\nmessages are not printed.\n\nif lockdep is enabled then all held locks are printed as well.\n\nthis feature is a natural extension to the softlockup-detector (kernel\nlocked up without scheduling) and to the NMI watchdog (kernel locked up\nwith IRQs disabled).\n\n[ Gautham R Shenoy \u003cego@in.ibm.com\u003e: CPU hotplug fixes. ]\n[ Andrew Morton \u003cakpm@linux-foundation.org\u003e: build warning fix. ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "95402b3829010fe1e208f44e4a158ccade88969a",
      "tree": "3b9895b47623b4673e3c11121980e5171af76bbe",
      "parents": [
        "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace per-subsystem mutexes with get_online_cpus()\n\nThis patch converts the known per-subsystem mutexes to get_online_cpus\nput_online_cpus. It also eliminates the CPU_LOCK_ACQUIRE and\nCPU_LOCK_RELEASE hotplug notification events.\n\nSigned-off-by: Gautham  R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a",
      "tree": "7bf46885326a6fdbb0c3596855408e9a5634dd3a",
      "parents": [
        "d221938c049f4845da13c8593132595a6b9222a8"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()\n\nReplace all lock_cpu_hotplug/unlock_cpu_hotplug from the kernel and use\nget_online_cpus and put_online_cpus instead as it highlights the\nrefcount semantics in these operations.\n\nThe new API guarantees protection against the cpu-hotplug operation, but\nit doesn\u0027t guarantee serialized access to any of the local data\nstructures. Hence the changes needs to be reviewed.\n\nIn case of pseries_add_processor/pseries_remove_processor, use\ncpu_maps_update_begin()/cpu_maps_update_done() as we\u0027re modifying the\ncpu_present_map there.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6b2d7700266b9402e12824e11e0099ae6a4a6a79",
      "tree": "d72c25b03150901ad8643f931186a11eb85635dc",
      "parents": [
        "a183561567b5446d3362b4839bd4f744f4b2af1e"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "message": "sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups\n\nThe current load balancing scheme isn\u0027t good enough for precise\ngroup fairness.\n\nFor example: on a 8-cpu system, I created 3 groups as under:\n\n\ta \u003d 8 tasks (cpu.shares \u003d 1024)\n\tb \u003d 4 tasks (cpu.shares \u003d 1024)\n\tc \u003d 3 tasks (cpu.shares \u003d 1024)\n\na, b and c are task groups that have equal weight. We would expect each\nof the groups to receive 33.33% of cpu bandwidth under a fair scheduler.\n\nThis is what I get with the latest scheduler git tree:\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------------------\nCol1  | Col2    | Col3  |  Col4\n------|---------|-------|-------------------------------------------------------\na     | 277.676 | 57.8% | 54.1%  54.1%  54.1%  54.2%  56.7%  62.2%  62.8% 64.5%\nb     | 116.108 | 24.2% | 47.4%  48.1%  48.7%  49.3%\nc     |  86.326 | 18.0% | 47.5%  47.9%  48.5%\n--------------------------------------------------------------------------------\n\nExplanation of o/p:\n\nCol1 -\u003e Group name\nCol2 -\u003e Cumulative execution time (in seconds) received by all tasks of that\n\tgroup in a 60sec window across 8 cpus\nCol3 -\u003e CPU bandwidth received by the group in the 60sec window, expressed in\n        percentage. Col3 data is derived as:\n\t\tCol3 \u003d 100 * Col2 / (NR_CPUS * 60)\nCol4 -\u003e CPU bandwidth received by each individual task of the group.\n\t\tCol4 \u003d 100 * cpu_time_recd_by_task / 60\n\n[I can share the test case that produces a similar o/p if reqd]\n\nThe deviation from desired group fairness is as below:\n\n\ta \u003d +24.47%\n\tb \u003d -9.13%\n\tc \u003d -15.33%\n\nwhich is quite high.\n\nAfter the patch below is applied, here are the results:\n\n--------------------------------------------------------------------------------\nCol1  | Col2    | Col3  |  Col4\n------|---------|-------|-------------------------------------------------------\na     | 163.112 | 34.0% | 33.2%  33.4%  33.5%  33.5%  33.7%  34.4%  34.8% 35.3%\nb     | 156.220 | 32.5% | 63.3%  64.5%  66.1%  66.5%\nc     | 160.653 | 33.5% | 85.8%  90.6%  91.4%\n--------------------------------------------------------------------------------\n\nDeviation from desired group fairness is as below:\n\n\ta \u003d +0.67%\n\tb \u003d -0.83%\n\tc \u003d +0.17%\n\nwhich is far better IMO. Most of other runs have yielded a deviation within\n+-2% at the most, which is good.\n\nWhy do we see bad (group) fairness with current scheuler?\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCurrently cpu\u0027s weight is just the summation of individual task weights.\nThis can yield incorrect results. For ex: consider three groups as below\non a 2-cpu system:\n\n\tCPU0\tCPU1\n---------------------------\n\tA (10)  B(5)\n\t\tC(5)\n---------------------------\n\nGroup A has 10 tasks, all on CPU0, Group B and C have 5 tasks each all\nof which are on CPU1. Each task has the same weight (NICE_0_LOAD \u003d\n1024).\n\nThe current scheme would yield a cpu weight of 10240 (10*1024) for each cpu and\nthe load balancer will think both CPUs are perfectly balanced and won\u0027t\nmove around any tasks. This, however, would yield this bandwidth:\n\n\tA \u003d 50%\n\tB \u003d 25%\n\tC \u003d 25%\n\nwhich is not the desired result.\n\nWhat\u0027s changing in the patch?\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\t- How cpu weights are calculated when CONFIF_FAIR_GROUP_SCHED is\n\t  defined (see below)\n\t- API Change\n\t\t- Two tunables introduced in sysfs (under SCHED_DEBUG) to\n\t\t  control the frequency at which the load balance monitor\n\t\t  thread runs.\n\nThe basic change made in this patch is how cpu weight (rq-\u003eload.weight) is\ncalculated. Its now calculated as the summation of group weights on a cpu,\nrather than summation of task weights. Weight exerted by a group on a\ncpu is dependent on the shares allocated to it and also the number of\ntasks the group has on that cpu compared to the total number of\n(runnable) tasks the group has in the system.\n\nLet,\n\tW(K,i)  \u003d Weight of group K on cpu i\n\tT(K,i)  \u003d Task load present in group K\u0027s cfs_rq on cpu i\n\tT(K)    \u003d Total task load of group K across various cpus\n\tS(K) \t\u003d Shares allocated to group K\n\tNRCPUS\t\u003d Number of online cpus in the scheduler domain to\n\t \t  which group K is assigned.\n\nThen,\n\tW(K,i) \u003d S(K) * NRCPUS * T(K,i) / T(K)\n\nA load balance monitor thread is created at bootup, which periodically\nruns and adjusts group\u0027s weight on each cpu. To avoid its overhead, two\nmin/max tunables are introduced (under SCHED_DEBUG) to control the rate\nat which it runs.\n\nFixes from: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\n- don\u0027t start the load_balance_monitor when there is only a single cpu.\n- rename the kthread because its currently longer than TASK_COMM_LEN\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a183561567b5446d3362b4839bd4f744f4b2af1e",
      "tree": "7bfa46fd0bf4a96e96500732d188f1ef4b04454d",
      "parents": [
        "58e2d4ca581167c2a079f4ee02be2f0bc52e8729"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "message": "sched: introduce a mutex and corresponding API to serialize access to doms_curarray\n\ndoms_cur[] array represents various scheduling domains which are\nmutually exclusive. Currently cpusets code can modify this array (by\ncalling partition_sched_domains()) as a result of user modifying\nsched_load_balance flag for various cpusets.\n\nThis patch introduces a mutex and corresponding API (only when\nCONFIG_FAIR_GROUP_SCHED is defined) which allows a reader to safely read\nthe doms_cur[] array w/o worrying abt concurrent modifications to the\narray.\n\nThe fair group scheduler code (introduced in next patch of this series)\nmakes use of this mutex to walk thr\u0027 doms_cur[] array while rebalancing\nshares of task groups across cpus.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58e2d4ca581167c2a079f4ee02be2f0bc52e8729",
      "tree": "9a8c8324785800f3577fb897ca3e2ae21ad8c55a",
      "parents": [
        "ec2c507fe8c8fa3c04fc6cb99a382a965c477379"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "message": "sched: group scheduling, change how cpu load is calculated\n\nThis patch changes how the cpu load exerted by fair_sched_class tasks\nis calculated. Load exerted by fair_sched_class tasks on a cpu is now\na summation of the group weights, rather than summation of task weights.\nWeight exerted by a group on a cpu is dependent on the shares allocated\nto it.\n\nThis version of patch has a minor impact on code size, but should have\nno runtime/functional impact for !CONFIG_FAIR_GROUP_SCHED.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec2c507fe8c8fa3c04fc6cb99a382a965c477379",
      "tree": "f139f738ba08576318ec09047148cdc7ae33ac9b",
      "parents": [
        "93f992ccc008dd4030381caeebb252e85e66684b"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "message": "sched: group scheduling, minor fixes\n\nMinor bug fixes for the group scheduler:\n\n- Use a mutex to serialize add/remove of task groups and also when\n  changing shares of a task group. Use the same mutex when printing\n  cfs_rq debugging stats for various task groups.\n\n- Use list_for_each_entry_rcu in for_each_leaf_cfs_rq macro (when\n  walking task group list)\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93f992ccc008dd4030381caeebb252e85e66684b",
      "tree": "34c177cc9de4eee560aee07c08a1fde59b37ed37",
      "parents": [
        "86faf39d0fc04272b05fab1db6d683f3ac7199d1"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:07:59 2008 +0100"
      },
      "message": "sched: group scheduling code cleanup\n\nMinor cleanups:\n\n- Fix coding style\n- remove obsolete comment\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c61935fd0e7f087a643827b4bf5ef646963c10fa",
      "tree": "4bfa925404acd5e5ecb6a3e597ab689415ac35e6",
      "parents": [
        "d384e35a25445bb60457b7dab8cffe178c6b7ecb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 22 11:24:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 22 11:24:58 2008 +0100"
      },
      "message": "sched: group scheduler, set uid share fix\n\nsetting cpu share to 1 causes hangs, as reported in:\n\n    http://bugzilla.kernel.org/show_bug.cgi?id\u003d9779\n\nas the default share is 1024, the values of 0 and 1 can indeed\ncause problems. Limit it to 2 or higher values.\n\nThese values can only be set by the root user - but still it\nmakes sense to protect against nonsensical values.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fcfd50afb6e94c8cf121ca4e7e3e7166bae7c6aa",
      "tree": "8e772c80e6dfd8fca5c02bc25859eccb7ea79545",
      "parents": [
        "cdf71a10c7b6432d9b48e292cca2c62a0b9fa6cf"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Jan 09 00:03:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jan 09 08:03:58 2008 -0800"
      },
      "message": "show_task: real_parent\n\nThe show_task function invoked by sysrq-t et al displays the\npid and parent\u0027s pid of each task.  It seems more useful to\nshow the actual process hierarchy here than who is using\nptrace on each process.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bacec8c318ca0418c0ee9ac662ee44207765dd4",
      "tree": "b1879c1449ba4fc496840d10fdd55ef6e79069c2",
      "parents": [
        "73c4efd2c88a41c8a4810904266a34423b5584e5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 18 15:21:13 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 18 15:21:13 2007 +0100"
      },
      "message": "sched: touch softlockup watchdog after idling\n\ntouch softlockup watchdog after idling.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "051a1d1afa47206e23ae03f781c6795ce870e3d5",
      "tree": "6ce53c173a3a7582896504ecfc758e993455e5fb",
      "parents": [
        "c63a1190368771b8207d86c4217ae4afdf1cbd5e"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Tue Dec 18 15:21:13 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 18 15:21:13 2007 +0100"
      },
      "message": "sched: fix crash on ia64, introduce task_current()\n\nSome services (e.g. sched_setscheduler(), rt_mutex_setprio() and\nsched_move_task()) must handle a given task differently in case it\u0027s the\n\u0027rq-\u003ecurr\u0027 task on its run-queue. The task_running() interface is not\nsuitable for determining such tasks for platforms with one of the\nfollowing options:\n\n#define __ARCH_WANT_UNLOCKED_CTXSW\n#define __ARCH_WANT_INTERRUPTS_ON_CTXSW\n\nDue to the fact that it makes use of \u0027p-\u003eoncpu \u003d\u003d 1\u0027 as a criterion but\nsuch a task is not necessarily \u0027rq-\u003ecurr\u0027.\n\nThe detailed explanation is available here:\nhttps://lists.linux-foundation.org/pipermail/containers/2007-December/009262.html\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "8ced5f69e4bc09adcc6442e090e2e64c197246cf",
      "tree": "d431ff185719579c6a786a97adf6def6a849751c",
      "parents": [
        "5f9fa8a62d6a98f5cb2ee2e00b85bfe95e45888d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 07 19:02:47 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 07 19:02:47 2007 +0100"
      },
      "message": "sched: enable early use of sched_clock()\n\nsome platforms have sched_clock() implementations that cannot be called\nvery early during wakeup. If it\u0027s called it might hang or crash in hard\nto debug ways. So only call update_rq_clock() [which calls sched_clock()]\nif sched_init() has already been called. (rq-\u003eidle is NULL before the\nscheduler is initialized.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "41a2d6cfa3f77ec469e7e5f06b4d7ffd031f9c0e",
      "tree": "462949400fbb320194b9f586c48315c306be53cf",
      "parents": [
        "ce6bd420f43b28038a2c6e8fbb86ad24014727b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 05 15:46:09 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 05 15:46:09 2007 +0100"
      },
      "message": "sched: style cleanups\n\nstyle cleanup of various changes that were done recently.\n\nno code changed:\n\n      text    data     bss     dec     hex filename\n     23680    2542      28   26250    668a sched.o.before\n     23680    2542      28   26250    668a sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "77034937dc4575ca0a76bf209838ecd39e804089",
      "tree": "96713ca12264ead56f859fd3619b27e49072456a",
      "parents": [
        "09b56adc98e0f8a21644fcb4d20ad367c3fceb55"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 04 17:04:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 04 17:04:39 2007 +0100"
      },
      "message": "sched: fix crash in sys_sched_rr_get_interval()\n\nLuiz Fernando N. Capitulino reported that sched_rr_get_interval()\ncrashes for SCHED_OTHER tasks that are on an idle runqueue.\n\nThe fix is to return a 0 timeslice for tasks that are on an idle\nrunqueue. (and which are not running, obviously)\n\nthis also shrinks the code a bit:\n\n   text    data     bss     dec     hex filename\n  47903    3934     336   52173    cbcd sched.o.before\n  47885    3934     336   52155    cbbb sched.o.after\n\nReported-by: Luiz Fernando N. Capitulino \u003clcapitulino@mandriva.com.br\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d842de871c8c5e2110c7e4f3f29bbe7b1a519ab8",
      "tree": "3a0be7d00de97c561e486242f11eec0e1281074b",
      "parents": [
        "92d499d991ec4f5cbd00d6f33967eab9d3ee8d6c"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Sun Dec 02 20:04:49 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 02 20:04:49 2007 +0100"
      },
      "message": "sched: cpu accounting controller (V2)\n\nCommit cfb5285660aad4931b2ebbfa902ea48a37dfffa1 removed a useful feature for\nus, which provided a cpu accounting resource controller.  This feature would be\nuseful if someone wants to group tasks only for accounting purpose and doesnt\nreally want to exercise any control over their cpu consumption.\n\nThe patch below reintroduces the feature. It is based on Paul Menage\u0027s\noriginal patch (Commit 62d0df64065e7c135d0002f069444fbdfc64768f), with\nthese differences:\n\n        - Removed load average information. I felt it needs more thought (esp\n\t  to deal with SMP and virtualized platforms) and can be added for\n\t  2.6.25 after more discussions.\n        - Convert group cpu usage to be nanosecond accurate (as rest of the cfs\n\t  stats are) and invoke cpuacct_charge() from the respective scheduler\n\t  classes\n\t- Make accounting scalable on SMP systems by splitting the usage\n\t  counter to be per-cpu\n\t- Move the code from kernel/cpu_acct.c to kernel/sched.c (since the\n\t  code is not big enough to warrant a new file and also this rightly\n\t  needs to live inside the scheduler. Also things like accessing\n\t  rq-\u003elock while reading cpu usage becomes easier if the code lived in\n\t  kernel/sched.c)\n\nThe patch also modifies the cpu controller not to provide the same accounting\ninformation.\n\nTested-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\n\n Tested the patches on top of 2.6.24-rc3. The patches work fine. Ran\n some simple tests like cpuspin (spin on the cpu), ran several tasks in\n the same group and timed them. Compared their time stamps with\n cpuacct.usage.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "deaf2227ddf657a260e923db44b6f0974d9bb782",
      "tree": "2743a42c23a2341476a34522a6fdffa7848553d9",
      "parents": [
        "9a4e715914f07e56cbfa6f2b544a68365d51c3ef"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 28 15:52:56 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 28 15:52:56 2007 +0100"
      },
      "message": "sched: clean up, move __sched_text_start/end to sched.h\n\nmove __sched_text_start/end to sched.h. No code changed:\n\n   text    data     bss     dec     hex filename\n  26582    2310      28   28920    70f8 sched.o.before\n  26582    2310      28   28920    70f8 sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a4e715914f07e56cbfa6f2b544a68365d51c3ef",
      "tree": "10a3a922136b94fc485b9ac945a59613390cd6d6",
      "parents": [
        "d3938204468dccae16be0099a2abf53db4ed0505"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 28 15:52:56 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 28 15:52:56 2007 +0100"
      },
      "message": "sched: clean up sd_alloc_ctl_cpu_table() definition\n\nclean up sd_alloc_ctl_cpu_table() definition.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9612633a21ae8424531caf977f0560f64285bf36",
      "tree": "283def7932080d8ded79301ae8248ec03ec69cf3",
      "parents": [
        "518b22e990a9071bf508ca67e31b37e7590f499c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "message": "sched: reorder SCHED_FEAT_ bits\n\nreorder SCHED_FEAT_ bits so that the used ones come first. Makes\ntuning instructions easier.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "94bc9a7bd97efdda4dfbe61d0df32ce19d41c0a9",
      "tree": "ac684740f71e1e6dcfbb70b3d466c952f8f4072e",
      "parents": [
        "ce96b5ac742801718ae86d2adf0500c5abef3782"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "message": "sched: remove activate_idle_task()\n\ncpu_down() code is ok wrt sched_idle_next() placing the \u0027idle\u0027 task not\nat the beginning of the queue.\n\nSo get rid of activate_idle_task() and make use of activate_task() instead.\nIt is the same as activate_task(), except for the update_rq_clock(rq) call\nthat is redundant.\n\nCode size goes down:\n\n   text    data     bss     dec     hex filename\n  47853    3934     336   52123    cb9b sched.o.before\n  47828    3934     336   52098    cb82 sched.o.after\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ce96b5ac742801718ae86d2adf0500c5abef3782",
      "tree": "1ec0bc7d105af9adc3836a5f47a0f9f62031d14f",
      "parents": [
        "dae51f56204d33444f61d9e7af3ee70aef55daa4"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "message": "sched: fix __set_task_cpu() SMP race\n\nGrant Wilson has reported rare SCHED_FAIR_USER crashes on his quad-core\nsystem, which crashes can only be explained via runqueue corruption.\n\nthere is a narrow SMP race in __set_task_cpu(): after -\u003ecpu is set up to\na new value, task_rq_lock(p, ...) can be successfuly executed on another\nCPU. We must ensure that updates of per-task data have been completed by\nthis moment.\n\nthis bug has been hiding in the Linux scheduler for an eternity (we never\nhad any explicit barrier for task-\u003ecpu in set_task_cpu() - so the bug was\nintroduced in 2.5.1), but only became visible via set_task_cfs_rq() being\naccidentally put after the task-\u003ecpu update. It also probably needs a\nsufficiently out-of-order CPU to trigger.\n\nReported-by: Grant Wilson \u003cgrant.wilson@zen.co.uk\u003e\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dae51f56204d33444f61d9e7af3ee70aef55daa4",
      "tree": "586c209c5b46da902dff912fa96e797840198030",
      "parents": [
        "9778385db35a799d410039be123044a0d3e917a2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 15 20:57:40 2007 +0100"
      },
      "message": "sched: fix SCHED_FIFO tasks \u0026 FAIR_GROUP_SCHED\n\nSuppose that the SCHED_FIFO task does\n\n\tswitch_uid(new_user);\n\nNow, p-\u003ese.cfs_rq and p-\u003ese.parent both point into the old\nuser_struct-\u003etg because sched_move_task() doesn\u0027t call set_task_cfs_rq()\nfor !fair_sched_class case.\n\nSuppose that old user_struct/task_group is freed/reused, and the task\ndoes\n\n\tsched_setscheduler(SCHED_NORMAL);\n\n__setscheduler() sets fair_sched_class, but doesn\u0027t update\n-\u003ese.cfs_rq/parent which point to the freed memory.\n\nThis means that check_preempt_wakeup() doing\n\n\t\twhile (!is_same_group(se, pse)) {\n\t\t\tse \u003d parent_entity(se);\n\t\t\tpse \u003d parent_entity(pse);\n\t\t}\n\nmay OOPS in a similar way if rq-\u003ecurr or p did something like above.\n\nPerhaps we need something like the patch below, note that\n__setscheduler() can\u0027t do set_task_cfs_rq().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9778385db35a799d410039be123044a0d3e917a2",
      "tree": "20564e6fabb5bdd86a13fc56ae0a6c880a9ccf6e",
      "parents": [
        "99fee6d7e5748d96884667a4628118f7fc130ea0"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu Nov 15 20:57:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 15 20:57:39 2007 +0100"
      },
      "message": "sched: fix accounting of interrupts during guest execution on s390\n\nCurrently the scheduler checks for PF_VCPU to decide if this timeslice\nhas to be accounted as guest time. On s390 host interrupts are not\ndisabled during guest execution. This causes theses interrupts to be\naccounted as guest time if CONFIG_VIRT_CPU_ACCOUNTING is set. Solution\nis to check if an interrupt triggered account_system_time. As the tick\nis timer interrupt based, we have to subtract hardirq_offset.\n\nI tested the patch on s390 with CONFIG_VIRT_CPU_ACCOUNTING and on\nx86_64. Seems to work.\n\nCC: Avi Kivity \u003cavi@qumranet.com\u003e\nCC: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cfb5285660aad4931b2ebbfa902ea48a37dfffa1",
      "tree": "6c345c4f00a139d7ccbc4efc5f2b9829aec21d24",
      "parents": [
        "45c682a68a87251d9a01383ce076ab21ee09812e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Nov 14 16:59:45 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:40 2007 -0800"
      },
      "message": "revert \"Task Control Groups: example CPU accounting subsystem\"\n\nRevert 62d0df64065e7c135d0002f069444fbdfc64768f.\n\nThis was originally intended as a simple initial example of how to create a\ncontrol groups subsystem; it wasn\u0027t intended for mainline, but I didn\u0027t make\nthis clear enough to Andrew.\n\nThe CFS cgroup subsystem now has better functionality for the per-cgroup usage\naccounting (based directly on CFS stats) than the \"usage\" status file in this\npatch, and the \"load\" status file is rather simplistic - although having a\nper-cgroup load average report would be a useful feature, I don\u0027t believe this\npatch actually provides it.  If it gets into the final 2.6.24 we\u0027d probably\nhave to support this interface for ever.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6fe6649b4ec11aa3075e394b4d8743eebe1f64c",
      "tree": "e04e8b2206dfad58e784ea6e4550f98f318aff0b",
      "parents": [
        "b82d9fdd848abfbe7263a4ecd9bbb55e575100a6"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: proper prototype for kernel/sched.c:migration_init()\n\nThis patch adds a proper prototype for migration_init() in\ninclude/linux/sched.h\n\nSince there\u0027s no point in always returning 0 to a caller that doesn\u0027t check\nthe return value it also changes the function to return void.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b82d9fdd848abfbe7263a4ecd9bbb55e575100a6",
      "tree": "7d4c525cc4bd633c84abcfd8d934c84e5dc9ce7c",
      "parents": [
        "3c90e6e99b08f01d5684a3a07cceae6a543e4fa8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: avoid large irq-latencies in smp-balancing\n\nSMP balancing is done with IRQs disabled and can iterate the full rq.\nWhen rqs are large this can cause large irq-latencies. Limit the nr of\niterations on each run.\n\nThis fixes a scheduling latency regression reported by the -rt folks.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nTested-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e3e13f399ac8060a20d14d210a28dc02dda372e",
      "tree": "b560a614e926f5f90e4096b6d4743b1b5fdfccb2",
      "parents": [
        "52d3da1ad4f442cec877fbeb83902707b56da0cf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: remove PREEMPT_RESTRICT\n\nremove PREEMPT_RESTRICT. (this is a separate commit so that any\nregression related to the removal itself is bisectable)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "52d3da1ad4f442cec877fbeb83902707b56da0cf",
      "tree": "154574a8bfbd77e5484116851b56b85a22ecc06f",
      "parents": [
        "a5fbb6d1064be885d2a6b82f625186753cf74848"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: turn off PREEMPT_RESTRICT\n\nPREEMPT_RESTRICT was a method aimed at reducing the amount of wakeup\nrelated preemption. It has a disadvantage though, it can prevent\nlegitimate wakeups if a task is \u0027unlucky\u0027 to be hit too early by a tick\nthat clears peer_preempt.\n\nNow that the wakeup preemption has been cleaned up we dont seem to have\nexcessive preemptions anymore, so this feature can be turned off. (and\nremoved in the next patch)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6322faf296ab5bbb597f8b0abcb50153754cd08",
      "tree": "c11f52d5c4be2081d88c85b63cc95a15e81c4e3c",
      "parents": [
        "19978ca610946ed57c071bad63f8f6642ca1298b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Nov 09 22:39:38 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:38 2007 +0100"
      },
      "message": "sched: cleanup, use NSEC_PER_MSEC and NSEC_PER_SEC\n\n1) hardcoded 1000000000 value is used five times in places where\n   NSEC_PER_SEC might be more readable.\n\n2) A conversion from nsec to msec uses the hardcoded 1000000 value,\n   which is a candidate for NSEC_PER_MSEC.\n\nno code changed:\n\n    text    data     bss     dec     hex filename\n   44359    3326      36   47721    ba69 sched.o.before\n   44359    3326      36   47721    ba69 sched.o.after\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "19978ca610946ed57c071bad63f8f6642ca1298b",
      "tree": "3bdbe89a249b6091fbd71653f106f486337ca3d6",
      "parents": [
        "fa13a5a1f25f671d084d8884be96fc48d9b68275"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:38 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:38 2007 +0100"
      },
      "message": "sched: reintroduce SMP tunings again\n\nYanmin Zhang reported an aim7 regression and bisected it down to:\n\n |  commit 38ad464d410dadceda1563f36bdb0be7fe4c8938\n |  Author: Ingo Molnar \u003cmingo@elte.hu\u003e\n |  Date:   Mon Oct 15 17:00:02 2007 +0200\n |\n |     sched: uniform tunings\n |\n |     use the same defaults on both UP and SMP.\n\nfix this by reintroducing similar SMP tunings again. This resolves\nthe regression.\n\n(also update the comments to match the ilog2(nr_cpus) tuning effect)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38605cae99d386332df6822a22dba7bfdc8fae1c",
      "tree": "c7f086158d726dfeba03a0864fcbd52083365436",
      "parents": [
        "8eb172d9418c9387234a2c9a344131c46b5eea5b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: fix style in kernel/sched.c\n\nfallout of recent commits: small coding style fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fe5c7cc22897b809a2fbe05bea71963853df7f17",
      "tree": "6690ef27dbe5cf15a48cbb95c03b5e3e7950f5e9",
      "parents": [
        "ae8393e508e5f17add66964688c49bf0bfe4fcf9"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: report CPU usage in CFS cgroup directories\n\nAdds a cpu.usage file to the CFS cgroup that reports CPU usage in\nmilliseconds for that cgroup\u0027s tasks\n\n[ mingo@elte.hu: style cleanups. ]\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ae8393e508e5f17add66964688c49bf0bfe4fcf9",
      "tree": "41df1c369499d862b2b4a7896f938fd4d30463b7",
      "parents": [
        "7bae49d498de87f0da0c20c67adaa278eac84566"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: move rcu_head to task_group struct\n\nPeter Zijlstra noticed that the rcu_head object need not be present\nin every cfs_rq of a group. Move it to the task_group structure\ninstead.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7bae49d498de87f0da0c20c67adaa278eac84566",
      "tree": "29af1dd7d73da9c06e6295debf0bf963085a1589",
      "parents": [
        "73a2bcb0edb9ffb0b007b3546b430e2c6e415eee"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: fix incorrect assumption that cpu 0 exists\n\nThis patch:\n\ncommit 9b5b77512dce239fa168183fa71896712232e95a\nAuthor: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nDate:   Mon Oct 15 17:00:09 2007 +0200\n\n    sched: clean up code under CONFIG_FAIR_GROUP_SCHED\n\nIntroduced an assumption of the existence of CPU0 via this line\n\ncfs_rq \u003d tg-\u003ecfs_rq[0];\n\nIf you have no CPU0, that will be NULL.  The fix seems to be just to\ntake whatever cfs_rq queue comes out of the for_each_possible_cpu()\nloop, since they\u0027re all equally good for the destruction operation.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f7402e0361d4472535e07cfca648f2fa81d85cd2",
      "tree": "b412891cf8ee217fcac82cf21a0d2039715859fc",
      "parents": [
        "3529a233421fc43fa7bfdf7a4317daf28348a23d"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Oct 29 21:18:10 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:10 2007 +0100"
      },
      "message": "sched: make kernel/sched.c:account_guest_time() static\n\naccount_guest_time() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "681f3e68541d6f03e3e05d21fe15093578b8b539",
      "tree": "82e13a7b15a2bb15233ba964dd1eb352b007cae4",
      "parents": [
        "e1d1484f72127a5580d37c379f6a5b2c2786434c"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "message": "sched: isolate SMP balancing code a bit more\n\nAt the moment, a lot of load balancing code that is irrelevant to non\nSMP systems gets included during non SMP builds.\n\nThis patch addresses this issue and reduces the binary size on non\nSMP systems:\n\n   text    data     bss     dec     hex filename\n  10983      28    1192   12203    2fab sched.o.before\n  10739      28    1192   11959    2eb7 sched.o.after\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1d1484f72127a5580d37c379f6a5b2c2786434c",
      "tree": "e3e6529c5b9079f35b2c60bbd346a3c51c2b2c13",
      "parents": [
        "a0f846aa76c3e03d54c1700a87cab3a46ccd71e2"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "message": "sched: reduce balance-tasks overhead\n\nAt the moment, balance_tasks() provides low level functionality for both\n  move_tasks() and move_one_task() (indirectly) via the load_balance()\nfunction (in the sched_class interface) which also provides dual\nfunctionality.  This dual functionality complicates the interfaces and\ninternal mechanisms and makes the run time overhead of operations that\nare called with two run queue locks held.\n\nThis patch addresses this issue and reduces the overhead of these\noperations.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2b01dfe37203e825edd8417ad3993d01cbbb527e",
      "tree": "d63ff96f0de520bbe13920c44510eaaec95d2609",
      "parents": [
        "a8972ccf00b7184a743eb6cd9bc7f3443357910c"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: clean up some control group code\n\n- replace \"cont\" with \"cgrp\" in a few places in the CFS cgroup code, \n- use write_uint rather than write for cpu.shares write function\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by : Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "838225b48edc971620cbeb292034dabd2b0d7d1d",
      "tree": "c4248521fead10f50f4539b6859339aeeef118d7",
      "parents": [
        "4dcf6aff023d9934630fb3649284951831c51f8f"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: use show_regs() to improve __schedule_bug() output\n\nA full register dump along with stack backtrace would make the\n\"scheduling while atomic\" message more helpful. Use show_regs() instead\nof dump_stack() for this. We already know we\u0027re atomic in here (that is\nwhy this function was called) so show_regs()\u0027s atomicity expectations\nare guaranteed.\n\nAlso, modify the output of the \"BUG: scheduling while atomic:\" header a\nbit to keep task-\u003ecomm and task-\u003epid together and preempt_count() after\nthem.\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dcf6aff023d9934630fb3649284951831c51f8f",
      "tree": "ed949a5b38ec42579f077c96115cbca950b0bca3",
      "parents": [
        "b15136e9497ef5d6e08cf665e0d0acf7a229f6dc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "message": "sched: clean up sched_domain_debug()\n\nclean up sched_domain_debug().\n\nthis also shrinks the code a bit:\n\n   text    data     bss     dec     hex filename\n  50474    4306     480   55260    d7dc sched.o.before\n  50404    4306     480   55190    d796 sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b15136e9497ef5d6e08cf665e0d0acf7a229f6dc",
      "tree": "88178f8115d502787e7c52c548c5745350353bc0",
      "parents": [
        "7378547f2c83ca16a30d0a7c488a43a688ea0888"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "message": "sched: fix fastcall mismatch in completion APIs\n\nJeff Dike noticed that wait_for_completion_interruptible()\u0027s prototype\nhad a mismatched fastcall.\n\nFix this by removing the fastcall attributes from all the completion APIs.\n\nFound-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7378547f2c83ca16a30d0a7c488a43a688ea0888",
      "tree": "6565a913ab6e649683fc49f094c35a9176434636",
      "parents": [
        "c9927c2bf4f45bb85e8b502ab3fb79ad6483c244"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "message": "sched: fix sched_domain sysctl registration again\n\ncommit  029190c515f15f512ac85de8fc686d4dbd0ae731 (cpuset\nsched_load_balance flag) was not tested SCHED_DEBUG enabled as\ncommitted as it dereferences NULL when used and it reordered\nthe sysctl registration to cause it to never show any domains\nor their tunables.\n\nFixes:\n\n1) restore arch_init_sched_domains ordering\n\twe can\u0027t walk the domains before we build them\n\n\tpresently we register cpus with empty directories (no domain\n\tdirectories or files).\n\n2) make unregister_sched_domain_sysctl do nothing when already unregistered\n\tdetach_destroy_domains is now called one set of cpus at a time\n\tunregister_syctl dereferences NULL if called with a null.\n\n\tWhile the the function would always dereference null if called\n\ttwice, in the previous code it was always called once and then\n\twas followed a register.  So only the hidden bug of the\n\tsysctl_root_table not being allocated followed by an attempt to\n\tfree it would have shown the error.\n\n3) always call unregister and register in partition_sched_domains\n\tThe code is \"smart\" about unregistering only needed domains.\n\tSince we aren\u0027t guaranteed any calls to unregister, always \n\tunregister.   Without calling register on the way out we\n\twill not have a table or any sysctl tree.\n\n4) warn if register is called without unregistering\n\tThe previous table memory is lost, leaving pointers to the\n\tlater freed memory in sysctl and leaking the memory of the\n\ttables.\n\nBefore this patch on a 2-core 4-thread box compiled for SMT and NUMA,\nthe domains appear empty (there are actually 3 levels per cpu).  And as\nsoon as two domains a null pointer is dereferenced (unreliable in this\ncase is stack garbage):\n\nbu19a:~# ls -R /proc/sys/kernel/sched_domain/\n/proc/sys/kernel/sched_domain/:\ncpu0  cpu1  cpu2  cpu3\n\n/proc/sys/kernel/sched_domain/cpu0:\n\n/proc/sys/kernel/sched_domain/cpu1:\n\n/proc/sys/kernel/sched_domain/cpu2:\n\n/proc/sys/kernel/sched_domain/cpu3:\n\nbu19a:~# mkdir /dev/cpuset\nbu19a:~# mount -tcpuset cpuset /dev/cpuset/\nbu19a:~# cd /dev/cpuset/\nbu19a:/dev/cpuset# echo 0 \u003e sched_load_balance \nbu19a:/dev/cpuset# mkdir one\nbu19a:/dev/cpuset# echo 1 \u003e one/cpus               \nbu19a:/dev/cpuset# echo 0 \u003e one/sched_load_balance \nUnable to handle kernel paging request for data at address 0x00000018\nFaulting instruction address: 0xc00000000006b608\nNIP: c00000000006b608 LR: c00000000006b604 CTR: 0000000000000000\nREGS: c000000018d973f0 TRAP: 0300   Not tainted  (2.6.23-bml)\nMSR: 9000000000009032 \u003cEE,ME,IR,DR\u003e  CR: 28242442  XER: 00000000\nDAR: 0000000000000018, DSISR: 0000000040000000\nTASK \u003d c00000001912e340[1987] \u0027bash\u0027 THREAD: c000000018d94000 CPU: 2\n..\nNIP [c00000000006b608] .unregister_sysctl_table+0x38/0x110\nLR [c00000000006b604] .unregister_sysctl_table+0x34/0x110\nCall Trace:\n[c000000018d97670] [c000000007017270] 0xc000000007017270 (unreliable)\n[c000000018d97720] [c000000000058710] .detach_destroy_domains+0x30/0xb0\n[c000000018d977b0] [c00000000005cf1c] .partition_sched_domains+0x1bc/0x230\n[c000000018d97870] [c00000000009fdc4] .rebuild_sched_domains+0xb4/0x4c0\n[c000000018d97970] [c0000000000a02e8] .update_flag+0x118/0x170\n[c000000018d97a80] [c0000000000a1768] .cpuset_common_file_write+0x568/0x820\n[c000000018d97c00] [c00000000009d95c] .cgroup_file_write+0x7c/0x180\n[c000000018d97cf0] [c0000000000e76b8] .vfs_write+0xe8/0x1b0\n[c000000018d97d90] [c0000000000e810c] .sys_write+0x4c/0x90\n[c000000018d97e30] [c00000000000852c] syscall_exit+0x0/0x40\n\nSigned-off-by: Milton Miller \u003cmiltonm@bga.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83d87d167367ae2cc2c6810399aefac33a2ced41",
      "tree": "b5b2c9850c7a4804b38590adc6588ad1b253e0fe",
      "parents": [
        "9da8f4e83a824dabf3fb7ad0890549257ae614a0"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Thu Oct 18 15:19:01 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Oct 22 12:03:29 2007 +0200"
      },
      "message": "sched: don\u0027t clear PF_VCPU in scheduler\n\nKVM clears it by itself now, and for s390 this is plain wrong.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "6888c1ecd63a3e5e206048602b3f59b58f4ffd8f",
      "tree": "2c96e7b8540fce3cf0f16662f7bd4329630cb298",
      "parents": [
        "01dd2fbf0da4019c380b6ca22a074538fb31db5a"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Sat Oct 20 01:41:05 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 01:41:05 2007 +0200"
      },
      "message": "kernel/sched.c: remove bogus comment from account_user_time\n\nhardirq_offset is no longer needed.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "3a4fa0a25da81600ea0bcd75692ae8ca6050d165",
      "tree": "a4de1662e645c029cf3cf58f0646cbb1959861dc",
      "parents": [
        "18735dd8d2d37031b97f9e9e106acbaed01eb896"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "message": "Fix misspellings of \"system\", \"controller\", \"interrupt\" and \"necessary\".\n\nFix the various misspellings of \"system\", controller\", \"interrupt\" and\n\"[un]necessary\".\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "68318b8e0b61f98f0be833cc862ab6dee69348b4",
      "tree": "cb48f82c73ff2204754ff3d5955a0073ca38c383",
      "parents": [
        "fb391599f2eaf22197e3e914187c957ef7eeb4c5"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Thu Oct 18 23:41:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:51 2007 -0700"
      },
      "message": "Hook up group scheduler with control groups\n\nEnable \"cgroup\" (formerly containers) based fair group scheduling.  This\nwill let administrator create arbitrary groups of tasks (using \"cgroup\"\npseudo filesystem) and control their cpu bandwidth usage.\n\n[akpm@linux-foundation.org: fix cpp condition]\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "470fd646444c65a5d062a371f5ec8dcedee61239",
      "tree": "59b923486d4a95efa07c4b2ad7cb0b1fcc3f3c88",
      "parents": [
        "bd89aabc6761de1c35b154fe6f914a445d301510"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Oct 18 23:40:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:44 2007 -0700"
      },
      "message": "hotplug cpu: migrate a task within its cpuset\n\nWhen a cpu is disabled, move_task_off_dead_cpu() is called for tasks that have\nbeen running on that cpu.\n\nCurrently, such a task is migrated:\n 1) to any cpu on the same node as the disabled cpu, which is both online\n    and among that task\u0027s cpus_allowed\n 2) to any cpu which is both online and among that task\u0027s cpus_allowed\n\nIt is typical of a multithreaded application running on a large NUMA system to\nhave its tasks confined to a cpuset so as to cluster them near the memory that\nthey share.  Furthermore, it is typical to explicitly place such a task on a\nspecific cpu in that cpuset.  And in that case the task\u0027s cpus_allowed\nincludes only a single cpu.\n\nThis patch would insert a preference to migrate such a task to some cpu within\nits cpuset (and set its cpus_allowed to its entire cpuset).\n\nWith this patch, migrate the task to:\n 1) to any cpu on the same node as the disabled cpu, which is both online\n    and among that task\u0027s cpus_allowed\n 2) to any online cpu within the task\u0027s cpuset\n 3) to any cpu which is both online and among that task\u0027s cpus_allowed\n\nIn order to do this, move_task_off_dead_cpu() must make a call to\ncpuset_cpus_allowed_locked(), a new subset of cpuset_cpus_allowed(), that will\nnot block.  (name change - per Oleg\u0027s suggestion)\n\nCalls are made to cpuset_lock() and cpuset_unlock() in migration_call() to set\nthe cpuset mutex during the whole migrate_live_tasks() and\nmigrate_dead_tasks() procedure.\n\n[akpm@linux-foundation.org: build fix]\n[pj@sgi.com: Fix indentation and spacing]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed",
      "tree": "3123c03b25dd5c0cd24b6ab4fc16731217838157",
      "parents": [
        "9a2e70572e94e21e7ec4186702d045415422bda0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use helpers to obtain task pid in printks\n\nThe task_struct-\u003epid member is going to be deprecated, so start\nusing the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in\nthe kernel.\n\nThe first thing to start with is the pid, printed to dmesg - in\nthis case we may safely use task_pid_nr(). Besides, printks produce\nmore (much more) than a half of all the explicit pid usage.\n\n[akpm@linux-foundation.org: git-drm went and changed lots of stuff]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "270f722d4d5f94b02fd48eed47e57917ab00a858",
      "tree": "f6f58a0730c8968d2b4b983965b4409761616ab2",
      "parents": [
        "d85f50d5e1aa99ab082035f94265847521819e58"
      ],
      "author": {
        "name": "Eugene Teo",
        "email": "eugeneteo@kernel.sg",
        "time": "Thu Oct 18 23:40:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:42 2007 -0700"
      },
      "message": "Fix tsk-\u003eexit_state usage\n\ntsk-\u003eexit_state can only be 0, EXIT_ZOMBIE, or EXIT_DEAD.  A non-zero test\nis the same as tsk-\u003eexit_state \u0026 (EXIT_ZOMBIE | EXIT_DEAD), so just testing\ntsk-\u003eexit_state is sufficient.\n\nSigned-off-by: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8707d8b8c0cbdf4441507f8dded194167da896c7",
      "tree": "1e9ac6b15027bd55263378e551c1595a937d66d6",
      "parents": [
        "020958b6272882c1a8bfbe5f3e0927f3845c2698"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:40:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "Fix cpusets update_cpumask\n\nCause writes to cpuset \"cpus\" file to update cpus_allowed for member tasks:\n\n- collect batches of tasks under tasklist_lock and then call\n  set_cpus_allowed() on them outside the lock (since this can sleep).\n\n- add a simple generic priority heap type to allow efficient collection\n  of batches of tasks to be processed without duplicating or missing any\n  tasks in subsequent batches.\n\n- make \"cpus\" file update a no-op if the mask hasn\u0027t changed\n\n- fix race between update_cpumask() and sched_setaffinity() by making\n  sched_setaffinity() post-check that it\u0027s not running on any cpus outside\n  cpuset_cpus_allowed().\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "029190c515f15f512ac85de8fc686d4dbd0ae731",
      "tree": "a946f9223d17e945141fef81f94a75b38e2cc6ef",
      "parents": [
        "2f2a3a46fcafa7a12d61454f67f932dfe7d84c60"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Oct 18 23:40:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "cpuset sched_load_balance flag\n\nAdd a new per-cpuset flag called \u0027sched_load_balance\u0027.\n\nWhen enabled in a cpuset (the default value) it tells the kernel scheduler\nthat the scheduler should provide the normal load balancing on the CPUs in\nthat cpuset, sometimes moving tasks from one CPU to a second CPU if the\nsecond CPU is less loaded and if that task is allowed to run there.\n\nWhen disabled (write \"0\" to the file) then it tells the kernel scheduler\nthat load balancing is not required for the CPUs in that cpuset.\n\nNow even if this flag is disabled for some cpuset, the kernel may still\nhave to load balance some or all the CPUs in that cpuset, if some\noverlapping cpuset has its sched_load_balance flag enabled.\n\nIf there are some CPUs that are not in any cpuset whose sched_load_balance\nflag is enabled, the kernel scheduler will not load balance tasks to those\nCPUs.\n\nMoreover the kernel will partition the \u0027sched domains\u0027 (non-overlapping\nsets of CPUs over which load balancing is attempted) into the finest\ngranularity partition that it can find, while still keeping any two CPUs\nthat are in the same shed_load_balance enabled cpuset in the same element\nof the partition.\n\nThis serves two purposes:\n 1) It provides a mechanism for real time isolation of some CPUs, and\n 2) it can be used to improve performance on systems with many CPUs\n    by supporting configurations in which load balancing is not done\n    across all CPUs at once, but rather only done in several smaller\n    disjoint sets of CPUs.\n\nThis mechanism replaces the earlier overloading of the per-cpuset\nflag \u0027cpu_exclusive\u0027, which overloading was removed in an earlier\npatch: cpuset-remove-sched-domain-hooks-from-cpusets\n\nSee further the Documentation and comments in the code itself.\n\n[akpm@linux-foundation.org: don\u0027t be weird]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: 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": "228ebcbe634a30aec35132ea4375721bcc41bec0",
      "tree": "a875976fd5bde6e2f931aa235c34c88a2738493f",
      "parents": [
        "b488893a390edfe027bae7a46e9af8083e740668"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "Uninline find_task_by_xxx set of functions\n\nThe find_task_by_something is a set of macros are used to find task by pid\ndepending on what kind of pid is proposed - global or virtual one.  All of\nthem are wrappers above the most generic one - find_task_by_pid_type_ns() -\nand just substitute some args for it.\n\nIt turned out, that dereferencing the current-\u003ensproxy-\u003epid_ns construction\nand pushing one more argument on the stack inline cause kernel text size to\ngrow.\n\nThis patch moves all this stuff out-of-line into kernel/pid.c.  Together\nwith the next patch it saves a bit less than 400 bytes from the .text\nsection.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: 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": "b488893a390edfe027bae7a46e9af8083e740668",
      "tree": "c469a7f99ad01005a73011c029eb5e5d15454559",
      "parents": [
        "3eb07c8c8adb6f0572baba844ba2d9e501654316"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: changes to show virtual ids to user\n\nThis is the largest patch in the set. Make all (I hope) the places where\nthe pid is shown to or get from user operate on the virtual pids.\n\nThe idea is:\n - all in-kernel data structures must store either struct pid itself\n   or the pid\u0027s global nr, obtained with pid_nr() call;\n - when seeking the task from kernel code with the stored id one\n   should use find_task_by_pid() call that works with global pids;\n - when showing pid\u0027s numerical value to the user the virtual one\n   should be used, but however when one shows task\u0027s pid outside this\n   task\u0027s namespace the global one is to be used;\n - when getting the pid from userspace one need to consider this as\n   the virtual one and use appropriate task/pid-searching functions.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\n[akpm@linux-foundation.org: yet nuther build fix]\n[akpm@linux-foundation.org: remove unneeded casts]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62d0df64065e7c135d0002f069444fbdfc64768f",
      "tree": "9087bf336182ab9c619460ba2370a223200179bc",
      "parents": [
        "8793d854edbc2774943a4b0de3304dc73991159a"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: example CPU accounting subsystem\n\nThis example demonstrates how to use the generic cgroup subsystem for a\nsimple resource tracker that counts, for the processes in a cgroup, the\ntotal CPU time used and the %CPU used in the last complete 10 second interval.\n\nPortions contributed by Balbir Singh \u003cbalbir@in.ibm.com\u003e\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54e840dd5021ae03c5d2b4158b191bb67f584b75",
      "tree": "f5df7580707828ebdcafbbc6cb719ddaec5a5fdd",
      "parents": [
        "32c15bb978c0e6ff65b3012a6af5a14c899005ce",
        "480b9434c542ddf2833aaed3dabba71bc0b787b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:54:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:54:03 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  sched: reduce schedstat variable overhead a bit\n  sched: add KERN_CONT annotation\n  sched: cleanup, make struct rq comments more consistent\n  sched: cleanup, fix spacing\n  sched: fix return value of wait_for_completion_interruptible()\n"
    },
    {
      "commit": "c66f08be7e3ad0a28bcd9a0aef766fdf08ea0ec6",
      "tree": "d147c0a43a66973014d924a6020388a249c509a7",
      "parents": [
        "898eb71cb17644964c5895fb190e79e3d0c49679"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Thu Oct 18 03:06:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:28 2007 -0700"
      },
      "message": "Add scaled time to taskstats based process accounting\n\nThis adds items to the taststats struct to account for user and system\ntime based on scaling the CPU frequency and instruction issue rates.\n\nAdds account_(user|system)_time_scaled callbacks which architectures\ncan use to account for time using this mechanism.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "480b9434c542ddf2833aaed3dabba71bc0b787b5",
      "tree": "78c2638ac583cc57165ee1393ebbbbbe367f46fb",
      "parents": [
        "cc4ea79588e688ea9b1161650979a194dd709169"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Thu Oct 18 21:32:56 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:56 2007 +0200"
      },
      "message": "sched: reduce schedstat variable overhead a bit\n\nschedstat is useful in investigating CPU scheduler behavior.  Ideally,\nI think it is beneficial to have it on all the time.  However, the\ncost of turning it on in production system is quite high, largely due\nto number of events it collects and also due to its large memory\nfootprint.\n\nMost of the fields probably don\u0027t need to be full 64-bit on 64-bit\narch.  Rolling over 4 billion events will most like take a long time\nand user space tool can be made to accommodate that.  I\u0027m proposing\nkernel to cut back most of variable width on 64-bit system.  (note,\nthe following patch doesn\u0027t affect 32-bit system).\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cc4ea79588e688ea9b1161650979a194dd709169",
      "tree": "ef820098acdd2ce2d3b7c559141fdc6c7955a95f",
      "parents": [
        "d80164916221216dedbd5d0e8423daca9e7682ea"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:56 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:56 2007 +0200"
      },
      "message": "sched: add KERN_CONT annotation\n\nprintk: add the KERN_CONT annotation (which is empty string but via\nwhich checkpatch.pl can notice that the lacking KERN_ level is fine).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d80164916221216dedbd5d0e8423daca9e7682ea",
      "tree": "1af76d6b189f4eed58ec040ad8261d328a27e74c",
      "parents": [
        "8401f77505d00b779e3d2d74180cb465de1c2e2b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:55 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:55 2007 +0200"
      },
      "message": "sched: cleanup, make struct rq comments more consistent\n\ncleanup, make struct rq comments more consistent.\n\nfound via scripts/checkpatch.pl.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8401f77505d00b779e3d2d74180cb465de1c2e2b",
      "tree": "cc48962d01fba1c7ceb8d5800c59b6dbace633af",
      "parents": [
        "51e97990234ed195a05b424bf04c387f5ae5e5cf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:55 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:55 2007 +0200"
      },
      "message": "sched: cleanup, fix spacing\n\ncleanup: fix sysctl_sched_features initialization spacing, and\nfix sd_alloc_ctl_cpu_table() prototype spacing.\n\nfound via scripts/checkpatch.pl.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51e97990234ed195a05b424bf04c387f5ae5e5cf",
      "tree": "9b1cc97b89057464f9a06ac49fab95257da23fdc",
      "parents": [
        "d85714d81cc0408daddb68c10f7fd69eafe7c213"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Thu Oct 18 21:32:55 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 18 21:32:55 2007 +0200"
      },
      "message": "sched: fix return value of wait_for_completion_interruptible()\n\nThe recent wait_for_completion() cleanups:\n\n    commit 8cbbe86dfcfd68ad69916164bdc838d9e09adca8\n    Author: Andi Kleen \u003cak@suse.de\u003e\n    Date:   Mon Oct 15 17:00:14 2007 +0200\n\n    sched: cleanup: refactor common code of sleep_on / wait_for_completion\n\n    Refactor common code of sleep_on / wait_for_completion\n\nbroke the return value of wait_for_completion_interruptible().\nPreviously it returned 0 on success, now -1.  Fix that.\n\nProblem found by Geert Uytterhoeven.\n\n[ mingo: fixed whitespace damage ]\n\nReported-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6d5a11dad44b8ae18ca8fc4ecb72ccccfa0a2d2",
      "tree": "7e3837c8f28e2e969a7b7d040b00676c90bf72c7",
      "parents": [
        "b6257a9036f06878a0f02354d5a07f155e1cfee0",
        "b9dca1e0fcb696716840a3bc8f20a6941b484dbf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 09:11:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 09:11:18 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:\n  sched: fix new task startup crash\n  sched: fix !SYSFS build breakage\n  sched: fix improper load balance across sched domain\n  sched: more robust sd-sysctl entry freeing\n"
    },
    {
      "commit": "d2da272a4e581e831e3567a37ef167686f1ea1d3",
      "tree": "4afa26683994ed19086578a23ae6db688867f176",
      "parents": [
        "f7b4cddcc5aca03e80e357360c9424dfba5056c2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:30:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:03 2007 -0700"
      },
      "message": "migration_call(CPU_DEAD): use spin_lock_irq() instead of task_rq_lock()\n\nChange migration_call(CPU_DEAD) to use direct spin_lock_irq() instead of\ntask_rq_lock(rq-\u003eidle), rq-\u003eidle can\u0027t change its task_rq().\n\nThis makes the code a bit more symmetrical with migrate_dead_tasks()\u0027s path\nwhich uses spin_lock_irq/spin_unlock_irq.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7b4cddcc5aca03e80e357360c9424dfba5056c2",
      "tree": "af2eae61dcd0311a4c51dc7398e9d0f049f37367",
      "parents": [
        "cf7a44168d743ca97863b7f34ed42a45fd7b5ab0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:30:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:03 2007 -0700"
      },
      "message": "do CPU_DEAD migrating under read_lock(tasklist) instead of write_lock_irq(tasklist)\n\nCurrently move_task_off_dead_cpu() is called under\nwrite_lock_irq(tasklist).  This means it can\u0027t use task_lock() which is\nneeded to improve migrating to take task\u0027s -\u003ecpuset into account.\n\nChange the code to call move_task_off_dead_cpu() with irqs enabled, and\nchange migrate_live_tasks() to use read_lock(tasklist).\n\nThis all is a preparation for the futher changes proposed by Cliff Wickman, see\n\thttp://marc.info/?t\u003d117327786100003\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9dca1e0fcb696716840a3bc8f20a6941b484dbf",
      "tree": "1fb2198b192b35382756e288ba33df6f37fcf6d4",
      "parents": [
        "b1a8c172c318534b96d0f0f1aecdad3898118b98"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "message": "sched: fix new task startup crash\n\nChild task may be added on a different cpu that the one on which parent\nis running. In which case, task_new_fair() should check whether the new\nborn task\u0027s parent entity should be added as well on the cfs_rq.\n\nPatch below fixes the problem in task_new_fair.\n\nThis could fix the put_prev_task_fair() crashes reported.\n\nReported-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nReported-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "908a7c1b9b80d06708177432020c80d147754691",
      "tree": "c3015123d79cb7484e1f64030512ab5a920747e5",
      "parents": [
        "cd79007634854f9e936e2369890f2512f94b8759"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "message": "sched: fix improper load balance across sched domain\n\nWe recently discovered a nasty performance bug in the kernel CPU load\nbalancer where we were hit by 50% performance regression.\n\nWhen tasks are assigned to a subset of CPUs that span across\nsched_domains (either ccNUMA node or the new multi-core domain) via\ncpu affinity, kernel fails to perform proper load balance at\nthese domains, due to several logic in find_busiest_group() miss\nidentified busiest sched group within a given domain. This leads to\ninadequate load balance and causes 50% performance hit.\n\nTo give you a concrete example, on a dual-core, 2 socket numa system,\nthere are 4 logical cpu, organized as:\n\nCPU0 attaching sched-domain:\n domain 0: span 0003  groups: 0001 0002\n domain 1: span 000f  groups: 0003 000c\nCPU1 attaching sched-domain:\n domain 0: span 0003  groups: 0002 0001\n domain 1: span 000f  groups: 0003 000c\nCPU2 attaching sched-domain:\n domain 0: span 000c  groups: 0004 0008\n domain 1: span 000f  groups: 000c 0003\nCPU3 attaching sched-domain:\n domain 0: span 000c  groups: 0008 0004\n domain 1: span 000f  groups: 000c 0003\n\nIf I run 2 tasks with CPU affinity set to 0x5.  There are situation\nwhere cpu0 has run queue length of 2, and cpu2 will be idle.  The\nkernel load balancer is unable to balance out these two tasks over\ncpu0 and cpu2 due to at least three logics in find_busiest_group()\nthat heavily bias load balance towards power saving mode. e.g. while\ndetermining \"busiest\" variable, kernel only set it when\n\"sum_nr_running \u003e group_capacity\".  This test is flawed that\n\"sum_nr_running\" is not necessary same as\nsum-tasks-allowed-to-run-within-the sched-group.  The end result is\nthat kernel \"think\" everything is balanced, but in reality we have an\nimbalance and thus causing one CPU to be over-subscribed and leaving\nother idle.  There are two other logic in the same function will also\ncausing similar effect.  The nastiness of this bug is that kernel not\nbe able to get unstuck in this unfortunate broken state.  From what\nwe\u0027ve seen in our environment, kernel will stuck in imbalanced state\nfor extended period of time and it is also very easy for the kernel to\nstuck into that state (it\u0027s pretty much 100% reproducible for us).\n\nSo proposing the following fix: add addition logic in\nfind_busiest_group to detect intrinsic imbalance within the busiest\ngroup.  When such condition is detected, load balance goes into spread\nmode instead of default grouping mode.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd79007634854f9e936e2369890f2512f94b8759",
      "tree": "904e9d4f406bf5d48699027f415e6acd12cc9121",
      "parents": [
        "ebb3e820b83e426ee331bae6d8fb0e54f472a25d"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 17 16:55:11 2007 +0200"
      },
      "message": "sched: more robust sd-sysctl entry freeing\n\nIt occurred to me this morning that the procname field was dynamically\nallocated and needed to be freed.  I started to put in break statements\nwhen allocation failed but it was approaching 50% error handling code.\n\nI came up with this alternative of looping while entry-\u003emode is set and\nchecking proc_handler instead of -\u003etable.  Alternatively, the string\nversion of the domain name and cpu number could be stored the structs.\n\nI verified by compiling CONFIG_DEBUG_SLAB and checking the allocation\ncounts after taking a cpuset exclusive and back.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "607717a65d92858fd925bec05baae4d142719f27",
      "tree": "b7faea733fe3426881e63bc7549db9c97c8bdf59",
      "parents": [
        "2ed6dc34f9ed39bb8e4c81ea1056f0ba56315841"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Oct 16 01:27:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "cpuset: remove sched domain hooks from cpusets\n\nRemove the cpuset hooks that defined sched domains depending on the setting\nof the \u0027cpu_exclusive\u0027 flag.\n\nThe cpu_exclusive flag can only be set on a child if it is set on the\nparent.\n\nThis made that flag painfully unsuitable for use as a flag defining a\npartitioning of a system.\n\nIt was entirely unobvious to a cpuset user what partitioning of sched\ndomains they would be causing when they set that one cpu_exclusive bit on\none cpuset, because it depended on what CPUs were in the remainder of that\ncpusets siblings and child cpusets, after subtracting out other\ncpu_exclusive cpusets.\n\nFurthermore, there was no way on production systems to query the\nresult.\n\nUsing the cpu_exclusive flag for this was simply wrong from the get go.\n\nFortunately, it was sufficiently borked that so far as I know, almost no\nsuccessful use has been made of this.  One real time group did use it to\naffectively isolate CPUs from any load balancing efforts.  They are willing\nto adapt to alternative mechanisms for this, such as someway to manipulate\nthe list of isolated CPUs on a running system.  They can do without this\npresent cpu_exclusive based mechanism while we develop an alternative.\n\nThere is a real risk, to the best of my understanding, of users\naccidentally setting up a partitioned scheduler domains, inhibiting desired\nload balancing across all their CPUs, due to the nonobvious (from the\ncpuset perspective) side affects of the cpu_exclusive flag.\n\nFurthermore, since there was no way on a running system to see what one was\ndoing with sched domains, this change will be invisible to any using code.\nUnless they have real insight to the scheduler load balancing choices, they\nwill be unable to detect that this change has been made in the kernel\u0027s\nbehaviour.\n\nInitial discussion on lkml of this patch has generated much comment.  My\n(probably controversial) take on that discussion is that it has reached a\nrough concensus that the current cpuset cpu_exclusive mechanism for\ndefining sched domains is borked.  There is no concensus on the\nreplacement.  But since we can remove this mechanism, and since its\ncontinued presence risks causing unwanted partitioning of the schedulers\nload balancing, we should remove it while we can, as we proceed to work the\nreplacement scheduler domain mechanisms.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Dinakar Guniguntala \u003cdino@in.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5a7430ddcdb598261d70f7eb1bf450b5be52085",
      "tree": "3b94672e0dbc2bff125de3266908f1a47a17b795",
      "parents": [
        "083576112940fda783d716fd5ccc744f81667b2f"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Oct 16 01:24:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:50 2007 -0700"
      },
      "message": "Convert cpu_sibling_map to be a per cpu variable\n\nConvert cpu_sibling_map from a static array sized by NR_CPUS to a per_cpu\nvariable.  This saves sizeof(cpumask_t) * NR unused cpus.  Access is mostly\nfrom startup and CPU HOTPLUG functions.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c63d9c021f375a2708ad79043d6f4dd1291a085",
      "tree": "99cf4af567ae79f42cc47d69c59407515539ba1f",
      "parents": [
        "71e20f1873d46e138c26ce83f8fe54b7221f572f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:20 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:20 2007 +0200"
      },
      "message": "sched: sync wakeups preempt too\n\nmake sure sync wakeups preempt too - the scheduler will not\noverschedule as we\u0027ve got various throttles against that.\nAs a result, sync wakeups can be used more widely in the kernel\n(to signal wakeup affinity between tasks), and no arbitrary\nlatencies will be introduced either.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71e20f1873d46e138c26ce83f8fe54b7221f572f",
      "tree": "3b5c5083d3ffcf7c9d7ddad81acf30c09197ef99",
      "parents": [
        "d172fcd3ae1ca7ac27ec8904242fd61e0e11d332"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "message": "sched: affine sync wakeups\n\nmake sync wakeups affine for cache-cold tasks: if a cache-cold task\nis woken up by a sync wakeup then use the opportunity to migrate it\nstraight away. (the two tasks are \u0027related\u0027 because they communicate)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "94886b84b1bcdc95f34f70e7fce407efefe472e1"
}
