)]}'
{
  "log": [
    {
      "commit": "6363ca57c76b7b83639ca8c83fc285fa26a7880e",
      "tree": "b8630b4af286409efdd648920a546fae24d4db88",
      "parents": [
        "4285f594f84d1f0641fc962d00e6638dec4a19c4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:28:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:28:57 2008 +0200"
      },
      "message": "revert (\"sched: fair-group: SMP-nice for group scheduling\")\n\nYanmin Zhang reported:\n\nComparing with 2.6.25, volanoMark has big regression with kernel 2.6.26-rc1.\nIt\u0027s about 50% on my 8-core stoakley, 16-core tigerton, and Itanium Montecito.\n\nWith bisect, I located the following patch:\n\n| 18d95a2832c1392a2d63227a7a6d433cb9f2037e is first bad commit\n| commit 18d95a2832c1392a2d63227a7a6d433cb9f2037e\n| Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n| Date:   Sat Apr 19 19:45:00 2008 +0200\n|\n|     sched: fair-group: SMP-nice for group scheduling\n\nRevert it so that we get v2.6.25 behavior.\n\nBisected-by: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8ae121ac8666b0421aa20fd80d4597ec66fa54bc",
      "tree": "1db411965b1b12029d501ea10ab90fbc8aa4ec62",
      "parents": [
        "983ed7a66bcec9dc307d89dc7af47cdf209e56af"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Apr 23 07:13:29 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix RT task-wakeup logic\n\nDmitry Adamushko pointed out a logic error in task_wake_up_rt() where we\nwill always evaluate to \"true\".  You can find the thread here:\n\nhttp://lkml.org/lkml/2008/4/22/296\n\nIn reality, we only want to try to push tasks away when a wake up request is\nnot going to preempt the current task.  So lets fix it.\n\nNote: We introduce test_tsk_need_resched() instead of open-coding the flag\ncheck so that the merge-conflict with -rt should help remind us that we\nmay need to support NEEDS_RESCHED_DELAYED in the future, too.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2abdad0a4cd8f9413f778cc998e0ee7d60b28417",
      "tree": "c7bd3839e765c2991d3dfbfb1f5f83d58f1211e3",
      "parents": [
        "e05510d01ad1565e5e086a939261084d67ba2b10"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Apr 25 10:53:13 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:17 2008 +0200"
      },
      "message": "sched: make rt_sched_class, idle_sched_class static\n\nThe C files are included directly in sched.c, so they are\neffectively static.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58d6c2d72f8628f39e8689fbde8aa177fcf00a37",
      "tree": "0be40bd788856b3cabb99ff258561b15a574f2f3",
      "parents": [
        "d19ca30874f2ad343d054e0b5c0576744afeecd4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: rt-group: optimize dequeue_rt_stack\n\nNow that the group hierarchy can have an arbitrary depth the O(n^2) nature\nof RT task dequeues will really hurt. Optimize this by providing space to\nstore the tree path, so we can walk it the other way.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "18d95a2832c1392a2d63227a7a6d433cb9f2037e",
      "tree": "fa85b700aa3caac5b1309edd8e31d9b957957a83",
      "parents": [
        "1d3504fcf5606579d60b649d19f44b3871c1ddae"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: fair-group: SMP-nice for group scheduling\n\nImplement SMP nice support for the full group hierarchy.\n\nOn each load-balance action, compile a sched_domain wide view of the full\ntask_group tree. We compute the domain wide view when walking down the\nhierarchy, and readjust the weights when walking back up.\n\nAfter collecting and readjusting the domain wide view, we try to balance the\ntasks within the task_groups. The current approach is a naively balance each\ntask group until we\u0027ve moved the targeted amount of load.\n\nInspired by Srivatsa Vaddsgiri\u0027s previous code and Abhishek Chandra\u0027s H-SMP\npaper.\n\nXXX: there will be some numerical issues due to the limited nature of\n     SCHED_LOAD_SCALE wrt to representing a task_groups influence on the\n     total weight. When the tree is deep enough, or the task weight small\n     enough, we\u0027ll run out of bits.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Abhishek Chandra \u003cchandra@cs.umn.edu\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "354d60c2ff72d86627dfe2089d186824abf4bb8e",
      "tree": "10cea61ce7036448ed7246820c5575df2a61bb3b",
      "parents": [
        "ea736ed5d353d7a3aa1cf8ce4cf8d947bc353fb2"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval@linux.vnet.ibm.com",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "sched: mix tasks and groups\n\nThis patch allows tasks and groups to exist in the same cfs_rq. With this\nchange the CFS group scheduling follows a 1/(M+N) model from a 1/(1+N)\nfairness model where M tasks and N groups exist at the cfs_rq level.\n\n[a.p.zijlstra@chello.nl: rt bits and assorted fixes]\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd8ba7cd9be0192348c2836cb6645d9b2cd2bfd2",
      "tree": "3b4138c7b683c2168ac13be41aab74b49a6bcf1c",
      "parents": [
        "e0982e90cd1ecf59818b137386b7f63debded9cc"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Mar 26 14:23:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "sched: add new set_cpus_allowed_ptr function\n\nAdd a new function that accepts a pointer to the \"newly allowed cpus\"\ncpumask argument.\n\nint set_cpus_allowed_ptr(struct task_struct *p, const cpumask_t *new_mask)\n\nThe current set_cpus_allowed() function is modified to use the above\nbut this does not result in an ABI change.  And with some compiler\noptimization help, it may not introduce any additional overhead.\n\nAdditionally, to enforce the read only nature of the new_mask arg, the\n\"const\" property is migrated to sub-functions called by set_cpus_allowed.\nThis silences compiler warnings.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac086bc22997a2be24fc40fc8d46522fe7e03d11",
      "tree": "7a484ba13acbdf0fa98c896ce58e807b4b5b1af9",
      "parents": [
        "d0b27fa77854b149ad4af08b0fe47fe712a47ade"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:44:58 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:58 2008 +0200"
      },
      "message": "sched: rt-group: smp balancing\n\nCurrently the rt group scheduling does a per cpu runtime limit, however\nthe rt load balancer makes no guarantees about an equal spread of real-\ntime tasks, just that at any one time, the highest priority tasks run.\n\nSolve this by making the runtime limit a global property by borrowing\nexcessive runtime from the other cpus once the local limit runs out.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d0b27fa77854b149ad4af08b0fe47fe712a47ade",
      "tree": "2f4487c108a5132e8d52456567b4a67e78fbb4a6",
      "parents": [
        "57d3da2911787a101a384532f4519f9640bae883"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:44:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:57 2008 +0200"
      },
      "message": "sched: rt-group: synchonised bandwidth period\n\nVarious SMP balancing algorithms require that the bandwidth period\nrun in sync.\n\nPossible improvements are moving the rt_bandwidth thing into root_domain\nand keeping a span per rt_bandwidth which marks throttled cpus.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6fa46fa526f2cab9ce21fa5e39501553a40d196d",
      "tree": "5b89e31c030c1b5a780da7c73c031bc7df656a18",
      "parents": [
        "810b38179e9e4d4f57b4b733767bb08f8291a965"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 05 10:00:12 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 07 16:43:00 2008 +0100"
      },
      "message": "sched: balance RT task resched only on runqueue\n\nSripathi Kodi reported a crash in the -rt kernel:\n\n  https://bugzilla.redhat.com/show_bug.cgi?id\u003d435674\n\nthis is due to a place that can reschedule a task without holding\nthe tasks runqueue lock.  This was caused by the RT balancing code\nthat pulls RT tasks to the current run queue and will reschedule the\ncurrent task.\n\nThere\u0027s a slight chance that the pulling of the RT tasks will release\nthe current runqueue\u0027s lock and retake it (in the double_lock_balance).\nDuring this time that the runqueue is released, the current task can\nmigrate to another runqueue.\n\nIn the prio_changed_rt code, after the pull, if the current task is of\nlesser priority than one of the RT tasks pulled, resched_task is called\non the current task. If the current task had migrated in that small\nwindow, resched_task will be called without holding the runqueue lock\nfor the runqueue that the task is on.\n\nThis race condition also exists in the mainline kernel and this patch\nadds a check to make sure the task hasn\u0027t migrated before calling\nresched_task.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nTested-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "62fb185130e4d420f71a30ff59d8b16b74ef5d2b",
      "tree": "474c0824a5bf90950b0a430a11a52b358c9e1f31",
      "parents": [
        "976dde010e513a9c7c3117a32b7b015f84b37430"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 25 17:34:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 04 17:54:06 2008 +0100"
      },
      "message": "sched: revert load_balance_monitor() changes\n\nThe following commits cause a number of regressions:\n\n  commit 58e2d4ca581167c2a079f4ee02be2f0bc52e8729\n  Author: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\n  Date:   Fri Jan 25 21:08:00 2008 +0100\n  sched: group scheduling, change how cpu load is calculated\n\n  commit 6b2d7700266b9402e12824e11e0099ae6a4a6a79\n  Author: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\n  Date:   Fri Jan 25 21:08:00 2008 +0100\n  sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups\n\nNamely:\n - very frequent wakeups on SMP, reported by PowerTop users.\n - cacheline trashing on (large) SMP\n - some latencies larger than 500ms\n\nWhile there is a mergeable patch to fix the latter, the former issues\nare not fixable in a manner suitable for .25 (we\u0027re at -rc3 now).\n\nHence we revert them and try again in v2.6.26.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nTested-by: Alexey Zaytsev \u003calexey.zaytsev@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "052f1dc7eb02300b05170ae341ccd03b76207778",
      "tree": "f58630b7876ae9e4308c0577e36aa13318b7bcfc",
      "parents": [
        "9f0c1e560c43327b70998e6c702b2f01321130d9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 13 15:45:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 13 15:45:40 2008 +0100"
      },
      "message": "sched: rt-group: make rt groups scheduling configurable\n\nMake the rt group scheduler compile time configurable.\nKeep it experimental for now.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f0c1e560c43327b70998e6c702b2f01321130d9",
      "tree": "b2cc7ef5bb0dc9d7d2912de339bff3e0db3530c9",
      "parents": [
        "23b0fdfc9299b137bd126e9dc22f62a59dae546d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "message": "sched: rt-group: interface\n\nChange the rt_ratio interface to rt_runtime_us, to match rt_period_us.\nThis avoids picking a granularity for the ratio.\n\nExtend the /sys/kernel/uids/\u003cuid\u003e/ interface to allow setting\nthe group\u0027s rt_runtime.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "23b0fdfc9299b137bd126e9dc22f62a59dae546d",
      "tree": "22019172c555109b69a73da76561d99d7776c4f7",
      "parents": [
        "4cf5d77a6eefaa7a464bc34e8cb767356f10fd74"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "message": "sched: rt-group: deal with PI\n\nSteven mentioned the fun case where a lock holding task will be throttled.\n\nSimple fix: allow groups that have boosted tasks to run anyway.\n\nIf a runnable task in a throttled group gets boosted the dequeue/enqueue\ndone by rt_mutex_setprio() is enough to unthrottle the group.\n\nThis is ofcourse not quite correct. Two possible ways forward are:\n  - second prio array for boosted tasks\n  - boost to a prio ceiling (this would also work for deadline scheduling)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "326587b840785c60f5dc18557235a23bafefd620",
      "tree": "d96bfb249ca234298a4f2e40a56bce7041523ea6",
      "parents": [
        "e118adef232e637a8f091c1ded2fbf44fcf3ecc8"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "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: fix goto retry in pick_next_task_rt()\n\nlooking at it one more time:\n\n(1) it looks to me that there is no need to call\nsched_rt_ratio_exceeded() from pick_next_rt_entity()\n\n- [ for CONFIG_FAIR_GROUP_SCHED ] queues with rt_rq-\u003ert_throttled are\nnot within this \u0027tree-like hierarchy\u0027 (or whatever we should call it\n:-)\n\n- there is also no need to re-check \u0027rt_rq-\u003ert_time \u003e ratio\u0027 at this\npoint as \u0027rt_rq-\u003ert_time\u0027 couldn\u0027t have been increased since the last\ncall to update_curr_rt() (which obviously calls\nsched_rt_ratio_esceeded())\nwell, it might be that \u0027ratio\u0027 for this rt_rq has been re-configured\n(and the period over which this rt_rq was active has not yet been\nfinished)... but I don\u0027t think we should really take this into\naccount.\n\n(2) now pick_next_rt_entity() must never return NULL, so let\u0027s change\npick_next_task_rt() accordingly.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a52dd50091b6a6e710a1293db741028f8cc5aac",
      "tree": "ea2b361909e431c458c26208e501ea3cf10edd85",
      "parents": [
        "1020387f5f3b52929b387103cf976321981f8e26"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "message": "sched: rt-watchdog: fix .rlim_max \u003d RLIM_INFINITY\n\nRemove the curious logic to set it_sched_expires in the future. It useless\nbecause rt.timeout wouldn\u0027t be incremented anyway.\n\nExplicity check for RLIM_INFINITY as a test programm that had a 1s soft limit\nand a inf hard limit would SIGKILL at 1s. This is because RLIM_INFINITY+d-1\nis d-2.\n\nSigned-off-by: Peter Zijlsta \u003ca.p.zijlstra@chello.nl\u003e\nCC: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1020387f5f3b52929b387103cf976321981f8e26",
      "tree": "201f6c44cc09c57dc936cc804971d37178007687",
      "parents": [
        "37bb6cb4097e29ffee970065b74499cbf10603a3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:32 2008 +0100"
      },
      "message": "sched: rt-group: reduce rescheduling\n\nOnly reschedule if the new group has a higher prio task.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\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": "614ee1f61f667b02165c1ae0c1357048dc6d94a0",
      "tree": "0f2e6389d045a4046f2fed14f3c9527a95467ecb",
      "parents": [
        "6f505b16425a51270058e4a93441fe64de3dd435"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "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: pull_rt_task() cleanup\n\n\"goto out\" is an odd way to spell \"skip\".\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\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": "78f2c7db6068fd6ef75b8c120f04a388848eacb5",
      "tree": "994e8082a01c78e691bacb90c0f8368823c87767",
      "parents": [
        "fa717060f1ab7eb6570f2fb49136f838fc9195a9"
      ],
      "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_FIFO/SCHED_RR watchdog timer\n\nIntroduce a new rlimit that allows the user to set a runtime timeout on\nreal-time tasks their slice. Once this limit is exceeded the task will receive\nSIGXCPU.\n\nSo it measures runtime since the last sleep.\n\nInput and ideas by Thomas Gleixner and Lennart Poettering.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Lennart Poettering \u003cmzxreary@0pointer.de\u003e\nCC: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCC: Ulrich Drepper \u003cdrepper@redhat.com\u003e\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": "c49443c538c1bbf50eda27e4a3711e9fc15176b0",
      "tree": "8dece13f1f5c48422359c981a4ef8bba92136597",
      "parents": [
        "cdc8eb984ce47a7c90a049f45229f7b0d59ba781"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "message": "sched: remove some old cpuset logic\n\nWe had support for overlapping cpuset based rto logic in early\nprototypes that is no longer used, so remove it.\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": "cdc8eb984ce47a7c90a049f45229f7b0d59ba781",
      "tree": "cebcaf9d854b843a5381cae18cffa6fd836a20ab",
      "parents": [
        "cb46984504048db946cd551c261df4e70d59a8ea"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:23 2008 +0100"
      },
      "message": "sched: RT-balance, only adjust overload state when changing\n\nThe overload set/clears were originally idempotent when this logic was first\nimplemented.  But that is no longer true due to the addition of the atomic\ncounter and this logic was never updated to work properly with that change.\nSo only adjust the overload state if it is actually changing to avoid\ngetting out of sync.\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": "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": "bdd7c81b4973e72b670eff6b5725bab189b723d6",
      "tree": "5660b7ee8b2e9bc295053901112f70d5e784c183",
      "parents": [
        "637f50851b57a32f7ec67c50fc16f1601ab1a87a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "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: fix sched_rt.c:join/leave_domain\n\nfix build bug in sched_rt.c:join/leave_domain and make them only\nbe included on SMP builds.\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": "7f51f298204ec0528422cd9b23feac12612c5665",
      "tree": "542837841201a765114320042edbbd574010bd7a",
      "parents": [
        "80bf3171dcdf0f5d236e2e48afe2a95c7ce23879"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "message": "sched: clean up schedule_balance_rt()\n\nclean up schedule_balance_rt().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80bf3171dcdf0f5d236e2e48afe2a95c7ce23879",
      "tree": "91cc16d8b91fd669ef234ab231895779907c1a31",
      "parents": [
        "00597c3ed78e424bdafff123565c078d8b6088cf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:17 2008 +0100"
      },
      "message": "sched: clean up pull_rt_task()\n\nclean up pull_rt_task().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00597c3ed78e424bdafff123565c078d8b6088cf",
      "tree": "9aa1df064152008969f6fa6eacec7f2b15110f75",
      "parents": [
        "6e1938d3ad58c940ec4119d387dd92a787cb238c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "message": "sched: remove leftover debugging\n\nremove leftover debugging.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e1938d3ad58c940ec4119d387dd92a787cb238c",
      "tree": "c879b423cb18a7961fd99e577b2ef3dfc8539179",
      "parents": [
        "84de4274893691aa8c471a1f7336d51e555d23a0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:16 2008 +0100"
      },
      "message": "sched: remove rt_overload()\n\nremove rt_overload() - it\u0027s an unnecessary indirection.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "84de4274893691aa8c471a1f7336d51e555d23a0",
      "tree": "59f9a3029089d1f36adda93f96ba1ce2daa9cc76",
      "parents": [
        "deeeccd41bd94a9db133d7b923f9a7479a47305d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "message": "sched: clean up kernel/sched_rt.c\n\nclean up whitespace damage and missing comments in kernel/sched_rt.c.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "deeeccd41bd94a9db133d7b923f9a7479a47305d",
      "tree": "add251ffa08f134e60d1e174914d6e511105c173",
      "parents": [
        "4df64c0bfb7e0e260d10ebc005f7d0ba1308eed7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "message": "sched: clean up overlong line in kernel/sched_debug.c\n\nclean up overlong line in kernel/sched_debug.c.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4df64c0bfb7e0e260d10ebc005f7d0ba1308eed7",
      "tree": "51ffd9e80f38e6c918e57f33373ac400bd403c53",
      "parents": [
        "79064fbf75796c4c6a53e40729dbe52f789a91fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:15 2008 +0100"
      },
      "message": "sched: clean up find_lock_lowest_rq()\n\nclean up find_lock_lowest_rq().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "79064fbf75796c4c6a53e40729dbe52f789a91fd",
      "tree": "a54667418d6623cd84c566544930c99c608a42f8",
      "parents": [
        "0d1311a536a0face6267e7346223f2e68b002018"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "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: clean up pick_next_highest_task_rt()\n\nclean up pick_next_highest_task_rt().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "610bf05645a7ac6ea104a474e328eeaaea148870",
      "tree": "fb0a1b2969e0cdfb466f362d0a3bd636b0ec5ba0",
      "parents": [
        "06f90dbd7610d51549004ea9c2ada337831eb292"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "message": "sched: RT-balance, optimize cpu search\n\nThis patch removes several cpumask operations by keeping track\nof the first of the CPUS that is of the lowest priority. When\nthe search for the lowest priority runqueue is completed, all\nthe bits up to the first CPU with the lowest priority runqueue\nis cleared.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "06f90dbd7610d51549004ea9c2ada337831eb292",
      "tree": "952ce91bf158cee7fc3df0553496be524bc38b78",
      "parents": [
        "17b3279b48835eb522d842eae16f541da3729c8a"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "message": "sched: RT-balance, optimize\n\nWe can cheaply track the number of bits set in the cpumask for the lowest\npriority CPUs.  Therefore, compute the mask\u0027s weight and use it to skip\nthe optimal domain search logic when there is only one CPU available.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "17b3279b48835eb522d842eae16f541da3729c8a",
      "tree": "c94c7da732fbefda4a938bb6479ebb3b6d8d0c82",
      "parents": [
        "e1f47d891c0f00769d6d40ac5740f943e998d089"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:13 2008 +0100"
      },
      "message": "sched: break out early if RT task cannot be migrated\n\nWe don\u0027t need to bother searching if the task cannot be migrated\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": "e1f47d891c0f00769d6d40ac5740f943e998d089",
      "tree": "ccf402b5b5a8377af811afb288c39e2e136f1700",
      "parents": [
        "a22d7fc187ed996b66d8439db27b2303f79a8e7b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.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: RT-balance, avoid overloading\n\nThis patch changes the searching for a run queue by a waking RT task\nto try to pick another runqueue if the currently running task\nis an RT task.\n\nThe reason is that RT tasks behave different than normal\ntasks. Preempting a normal task to run a RT task to keep\nits cache hot is fine, because the preempted non-RT task\nmay wait on that same runqueue to run again unless the\nmigration thread comes along and pulls it off.\n\nRT tasks behave differently. If one is preempted, it makes\nan active effort to continue to run. So by having a high\npriority task preempt a lower priority RT task, that lower\nRT task will then quickly try to run on another runqueue.\nThis will cause that lower RT task to replace its nice\nhot cache (and TLB) with a completely cold one. This is\nfor the hope that the new high priority RT task will keep\n its cache hot.\n\nRemeber that this high priority RT task was just woken up.\nSo it may likely have been sleeping for several milliseconds,\nand will end up with a cold cache anyway. RT tasks run till\nthey voluntarily stop, or are preempted by a higher priority\ntask. This means that it is unlikely that the woken RT task\nwill have a hot cache to wake up to. So pushing off a lower\nRT task is just killing its cache for no good reason.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\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": "6e1254d2c41215da27025add8900ed187bca121d",
      "tree": "f68081e3b87d44c20a1b2739cf0119d8624208b0",
      "parents": [
        "318e0893ce3f524ca045f9fd9dfd567c0a6f9446"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:11 2008 +0100"
      },
      "message": "sched: optimize RT affinity\n\nThe current code base assumes a relatively flat CPU/core topology and will\nroute RT tasks to any CPU fairly equally.  In the real world, there are\nvarious toplogies and affinities that govern where a task is best suited to\nrun with the smallest amount of overhead.  NUMA and multi-core CPUs are\nprime examples of topologies that can impact cache performance.\n\nFortunately, linux is already structured to represent these topologies via\nthe sched_domains interface.  So we change our RT router to consult a\ncombination of topology and affinity policy to best place tasks during\nmigration.\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": "318e0893ce3f524ca045f9fd9dfd567c0a6f9446",
      "tree": "94eb9b03fc51033e87bc222861a5906233abae67",
      "parents": [
        "2de0b4639f4b1b6bfe31f795e5855f041f177170"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "message": "sched: pre-route RT tasks on wakeup\n\nIn the original patch series that Steven Rostedt and I worked on together,\nwe both took different approaches to low-priority wakeup path.  I utilized\n\"pre-routing\" (push the task away to a less important RQ before activating)\napproach, while Steve utilized a \"post-routing\" approach.  The advantage of\nmy approach is that you avoid the overhead of a wasted activate/deactivate\ncycle and peripherally related burdens.  The advantage of Steve\u0027s method is\nthat it neatly solves an issue preventing a \"pull\" optimization from being\ndeployed.\n\nIn the end, we ended up deploying Steve\u0027s idea.  But it later dawned on me\nthat we could get the best of both worlds by deploying both ideas together,\nalbeit slightly modified.\n\nThe idea is simple:  Use a \"light-weight\" lookup for pre-routing, since we\nonly need to approximate a good home for the task.  And we also retain the\npost-routing push logic to clean up any inaccuracies caused by a condition\nof \"priority mistargeting\" caused by the lightweight lookup.  Most of the\ntime, the pre-routing should work and yield lower overhead.  In the cases\nwhere it doesnt, the post-router will bat cleanup.\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": "2de0b4639f4b1b6bfe31f795e5855f041f177170",
      "tree": "18f7647cb785e3aa450aacbb11150bea2da7ce22",
      "parents": [
        "07b4032c9e505e2a1fbe7703aff64a153c3249be"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "message": "sched: RT balancing: include current CPU\n\nIt doesn\u0027t hurt if we allow the current CPU to be included in the\nsearch.  We will just simply skip it later if the current CPU turns out\nto be the lowest.\n\nWe will use this later in the series\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": "07b4032c9e505e2a1fbe7703aff64a153c3249be",
      "tree": "8b797b9cf80bc4f683a75557ff85ff385544cd74",
      "parents": [
        "e7693a362ec84bb5b6fd441d8a8b4b9d568a7a0c"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:10 2008 +0100"
      },
      "message": "sched: break out search for RT tasks\n\nIsolate the search logic into a function so that it can be used later\nin places other than find_locked_lowest_rq().\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": "697f0a487f294e634a342764472b79375bb3158a",
      "tree": "edfee23b36eef33027368bf488a731d5373765aa",
      "parents": [
        "73fe6aae84400e2b475e2a1dc4e8592cd3ed6e69"
      ],
      "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: clean up this_rq use in kernel/sched_rt.c\n\n\"this_rq\" is normally used to denote the RQ on the current cpu\n(i.e. \"cpu_rq(this_cpu)\").  So clean up the usage of this_rq to be\nmore consistent with the rest of the code.\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": "c7a1e46aa9782a947cf2ed506245d43396dbf991",
      "tree": "1cbf3bc6173b57ea9819c1f0a761347c4285b107",
      "parents": [
        "4642dafdf93dc7d66ee33437b93a5e6b8cea20d2"
      ],
      "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: disable standard balancer for RT tasks\n\nSince we now take an active approach to load balancing, we don\u0027t need to\nbalance RT tasks via the normal task balancer. In fact, this code was\nfound to pull RT tasks away from CPUS that the active movement performed,\nresulting in large latencies.\n\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": "4fd29176b7cd24909f8ceba2105cb3ae2857b90c",
      "tree": "2d83445de1d500cd3794a73e6d9d35b44444e259",
      "parents": [
        "e8fa136262e1121288bb93befe2295928ffd240d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Jan 25 21:08:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:06 2008 +0100"
      },
      "message": "sched: add rt-overload tracking\n\nThis patch adds an RT overload accounting system. When a runqueue has\nmore than one RT task queued, it is marked as overloaded. That is that it\nis a candidate to have RT tasks pulled from it.\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": "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": "67e2be02328b9a61a9c799fbdd4ec94d7da0c323",
      "tree": "e351636bbe95a1677d21b2dfb07d1fdcca70b2f0",
      "parents": [
        "fbdcf18df73758b2e187ab94678b30cd5f6ff9f9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 20 15:01:17 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 20 15:01:17 2007 +0100"
      },
      "message": "sched: rt: account the cpu time during the tick\n\nRealtime tasks would not account their runtime during ticks. Which would lead\nto:\n\n        struct sched_param param \u003d { .sched_priority \u003d 10 };\n        pthread_setschedparam(pthread_self(), SCHED_FIFO, \u0026param);\n\n\twhile (1) ;\n\nNot showing up in top.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "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": "a4ec24b48ddef1e93f7578be53270f0b95ad666c",
      "tree": "cad14ba03ec8647761396e23e693328c5db40991",
      "parents": [
        "a9957449b08ab561a33e1e038df06843b8d8dd9f"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Mon Oct 15 17:00:13 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:13 2007 +0200"
      },
      "message": "sched: tidy up SCHED_RR\n\n- make timeslices of SCHED_RR tasks constant and not\ndependent on task\u0027s static_prio [1] ;\n- remove obsolete code (timeslice related bits);\n- make sched_rr_get_interval() return something more\nmeaningful [2] for SCHED_OTHER tasks.\n\n[1] according to the following link, it\u0027s not compliant with SUSv3\n(not sure though, what is the reference for us :-)\nhttp://lkml.org/lkml/2007/3/7/656\n\n[2] the interval is dynamic and can be depicted as follows \"should a\ntask be one of the runnable tasks at this particular moment, it would\nexpect to run for this interval of time before being re-scheduled by the\nscheduler tick\".\n(i.e. it\u0027s more precise if a task is runnable at the moment)\n\nyeah, this seems to require task_rq_lock/unlock() but this is not a hot\npath.\n\nresults:\n\n(SCHED_FIFO)\n\ndimm@earth:~/storage/prog$ sudo chrt -f 10 ./rr_interval \ntime_slice: 0 : 0\n\n(SCHED_RR)\n\ndimm@earth:~/storage/prog$ sudo chrt 10 ./rr_interval \ntime_slice: 0 : 99984800\n\n(SCHED_NORMAL)\n\ndimm@earth:~/storage/prog$ ./rr_interval \ntime_slice: 0 : 19996960\n\n(SCHED_NORMAL + a cpu_hog of similar \u0027weight\u0027 on the same CPU --- so should be a half of the previous result)\n\ndimm@earth:~/storage/prog$ taskset 1 ./rr_interval \ntime_slice: 0 : 9998480\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a9957449b08ab561a33e1e038df06843b8d8dd9f",
      "tree": "066272181b3d563f8029c99c8c5587d04597ffda",
      "parents": [
        "155bb293ae8387526e6e07d42b1691104e55d9a2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Mon Oct 15 17:00:13 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:13 2007 +0200"
      },
      "message": "sched: uninline scheduler\n\n* save ~300 bytes\n* activate_idle_task() was moved to avoid a warning\n\nbloat-o-meter output:\n\nadd/remove: 6/0 grow/shrink: 0/16 up/down: 438/-733 (-295)\t\t\u003c\u003d\u003d\u003d\nfunction                                     old     new   delta\n__enqueue_entity                               -     165    +165\nfinish_task_switch                             -     110    +110\nupdate_curr_rt                                 -      79     +79\n__load_balance_iterator                        -      32     +32\n__task_rq_unlock                               -      28     +28\nfind_process_by_pid                            -      24     +24\ndo_sched_setscheduler                        133     123     -10\nsys_sched_rr_get_interval                    176     165     -11\nsys_sched_getparam                           156     145     -11\nnormalize_rt_tasks                           482     470     -12\nsched_getaffinity                            112      99     -13\nsys_sched_getscheduler                        86      72     -14\nsched_setaffinity                            226     212     -14\nsched_setscheduler                           666     642     -24\nload_balance_start_fair                       33       9     -24\nload_balance_next_fair                        33       9     -24\ndequeue_task_rt                              133      67     -66\nput_prev_task_rt                              97      28     -69\nschedule_tail                                133      50     -83\nschedule                                     682     594     -88\nenqueue_entity                               499     366    -133\ntask_new_fair                                317     180    -137\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5522d5d5f70005faeffff3ffc0cfa8eec0155de4",
      "tree": "d05fc41d19b8a70102a0ad3ad7ed8f6fd2d1cf7d",
      "parents": [
        "b9fa3df33f9166daf81bfa8253d339f5a7726122"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:12 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:12 2007 +0200"
      },
      "message": "sched: mark scheduling classes as const\n\nmark scheduling classes as const. The speeds up the code\na bit and shrinks it:\n\n   text    data     bss     dec     hex filename\n  40027    4018     292   44337    ad31 sched.o.before\n  40190    3842     292   44324    ad24 sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "83b699ed20f5218580a1b7042064082e2e05f8c5",
      "tree": "544c42283f41065f22e96e02af0badb7ed70a371",
      "parents": [
        "edcb60a309769a5f6e7c9e76d7c98b34d1757448"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Mon Oct 15 17:00:08 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:08 2007 +0200"
      },
      "message": "sched: revert recent removal of set_curr_task()\n\nRevert removal of set_curr_task.\nUse put_prev_task/set_curr_task when changing groups/policies\n\nSigned-off-by: Srivatsa Vaddagiri \u003c vatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "f6b53205e17c8ca481c69ed579a35a650a4b481a",
      "tree": "d7820281757e3a2c7cfff7e38275261dcd077eab",
      "parents": [
        "4530d7ab0fb8d5056b68c376949e2d5c4db7817e"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Mon Oct 15 17:00:08 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:08 2007 +0200"
      },
      "message": "sched: rework enqueue/dequeue_entity() to get rid of set_curr_task()\n\nrework enqueue/dequeue_entity() to get rid of \nsched_class::set_curr_task(). This simplifies sched_setscheduler(), \nrt_mutex_setprio() and sched_move_tasks().\n\n   text    data     bss     dec     hex filename\n  24330    2734      20   27084    69cc sched.o.before\n  24233    2730      20   26983    6967 sched.o.after\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4530d7ab0fb8d5056b68c376949e2d5c4db7817e",
      "tree": "e5ba2d7fde1d56948c5517442a7e90815f96ef82",
      "parents": [
        "87fefa381ef27f46c1182622ea01eb9504cd2e24"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Mon Oct 15 17:00:08 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:08 2007 +0200"
      },
      "message": "sched: simplify sched_class::yield_task()\n\nthe \u0027p\u0027 (task_struct) parameter in the sched_class :: yield_task() is\nredundant as the caller is always the \u0027current\u0027. Get rid of it.\n\n   text    data     bss     dec     hex filename\n  24341    2734      20   27095    69d7 sched.o.before\n  24330    2734      20   27084    69cc sched.o.after\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "29f59db3a74b0bdf78a1f5b53ef773caa82692dc",
      "tree": "5ac877639bac41d3749d08b7f624bd13052e5ec6",
      "parents": [
        "119fe5e06800afc197781ebc8c2d8ca7d03497c8"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Mon Oct 15 17:00:07 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:07 2007 +0200"
      },
      "message": "sched: group-scheduler core\n\nAdd interface to control cpu bandwidth allocation to task-groups.\n\n(not yet configurable, due to missing CONFIG_CONTAINERS)\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n"
    },
    {
      "commit": "98fbc798533339be802c6dcd48c2293c712e87db",
      "tree": "14a5f3ba3ee5915e890a08c4c37216869700b756",
      "parents": [
        "deac4ee65af4befb66b542e4a782e63da93b51a0"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Fri Aug 24 20:39:10 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 24 20:39:10 2007 +0200"
      },
      "message": "sched: optimize task_tick_rt() a bit\n\nMitchell Erblich suggested a quality-of-implementation change to\nnot requeue SCHED_RR tasks if there\u0027s only a single task on the\nrunqueue, by checking for rq-\u003enr_running \u003d\u003d 1.\n\nprovide a more efficient implementation of that, to check that\nparticular RT priority-queue only.\n\n[ From: mingo@elte.hu ]\n\nAlso first requeue the task then set need_resched - results in slightly\nbetter machine-instruction ordering. Also clean up the code a bit.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31ee529cc2254e8b62880535ec8f21a4c5e1c091",
      "tree": "df9a19be47c3111d0e34ce9f13498b236733a850",
      "parents": [
        "ff95f3df54609d9d4b9572f8a67d09922a645043"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:49 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:49 2007 +0200"
      },
      "message": "sched: remove the \u0027u64 now\u0027 parameter from -\u003eput_prev_task()\n\nremove the \u0027u64 now\u0027 parameter from -\u003eput_prev_task().\n\n( identity transformation that causes no change in functionality. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb8d47240246e20f864f0724a23a7220cd1c59ac",
      "tree": "0c94ecb977355a2152655738bfcee6072c10f41e",
      "parents": [
        "f02231e51a280f1a0fee4d03ad8f50048e06cced"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "message": "sched: remove the \u0027u64 now\u0027 parameter from -\u003epick_next_task()\n\nremove the \u0027u64 now\u0027 parameter from -\u003epick_next_task().\n\n( identity transformation that causes no change in functionality. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f02231e51a280f1a0fee4d03ad8f50048e06cced",
      "tree": "becd8bf748828e3dfe34f73df11d260fd6300026",
      "parents": [
        "fd390f6a04f22fb457d6fd1855964f79536525de"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "message": "sched: remove the \u0027u64 now\u0027 parameter from -\u003edequeue_task()\n\nremove the \u0027u64 now\u0027 parameter from -\u003edequeue_task().\n\n( identity transformation that causes no change in functionality. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd390f6a04f22fb457d6fd1855964f79536525de",
      "tree": "753b2c9889a4127e6c4b4ea8d80bae972228a875",
      "parents": [
        "f1e14ef64d3e1bdcb3437f1e926fe5a7f861aa0a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "message": "sched: remove the \u0027u64 now\u0027 parameter from -\u003eenqueue_task()\n\nremove the \u0027u64 now\u0027 parameter from -\u003eenqueue_task().\n\n( identity transformation that causes no change in functionality. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f1e14ef64d3e1bdcb3437f1e926fe5a7f861aa0a",
      "tree": "144d499d871c94e81fc6c78e6828bae7e3424c21",
      "parents": [
        "ab6cde2692c76b88ea430aa188ea50303216a955"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:48 2007 +0200"
      },
      "message": "sched: remove the \u0027u64 now\u0027 parameter from update_curr_rt()\n\nremove the \u0027u64 now\u0027 parameter from update_curr_rt().\n\n( identity transformation that causes no change in functionality. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d281918d7c135c555d9cebcf73d4320efa8177dc",
      "tree": "e1230311df7cf4366438d49b2ad623a429c03d1c",
      "parents": [
        "eb59449400f1e5984509e502711141302a2867ab"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:47 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:47 2007 +0200"
      },
      "message": "sched: remove \u0027now\u0027 use from assignments\n\nchange all \u0027now\u0027 timestamp uses in assignments to rq-\u003eclock.\n\n( this is an identity transformation that causes no functionality change:\n  all such new rq-\u003eclock is necessarily preceded by an update_rq_clock()\n  call. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a4ac01c36e286dd1b9a1d5cd7422c5af51dc55f8",
      "tree": "0c275d58a4835a3d604d9cac4e1dd7c25714e150",
      "parents": [
        "aea25401c3347d9f3a64ebdc81043be246a9f631"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Thu Aug 09 11:16:46 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:46 2007 +0200"
      },
      "message": "sched: fix bug in balance_tasks()\n\nThere are two problems with balance_tasks() and how it used:\n\n1. The variables best_prio and best_prio_seen (inherited from the old\nmove_tasks()) were only required to handle problems caused by the\nactive/expired arrays, the order in which they were processed and the\npossibility that the task with the highest priority could be on either.\n  These issues are no longer present and the extra overhead associated\nwith their use is unnecessary (and possibly wrong).\n\n2. In the absence of CONFIG_FAIR_GROUP_SCHED being set, the same\nthis_best_prio variable needs to be used by all scheduling classes or\nthere is a risk of moving too much load.  E.g. if the highest priority\ntask on this at the beginning is a fairly low priority task and the rt\nclass migrates a task (during its turn) then that moved task becomes the\nnew highest priority task on this_rq but when the sched_fair class\ninitializes its copy of this_best_prio it will get the priority of the\noriginal highest priority task as, due to the run queue locks being\nheld, the reschedule triggered by pull_task() will not have taken place.\n  This could result in inappropriate overriding of skip_for_load and\nexcessive load being moved.\n\nThe attached patch addresses these problems by deleting all reference to\nbest_prio and best_prio_seen and making this_best_prio a reference\nparameter to the various functions involved.\n\nload_balance_fair() has also been modified so that this_best_prio is\nonly reset (in the loop) if CONFIG_FAIR_GROUP_SCHED is set.  This should\npreserve the effect of helping spread groups\u0027 higher priority tasks\naround the available CPUs while improving system performance when\nCONFIG_FAIR_GROUP_SCHED isn\u0027t set.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4301065920b0cbde3986519582347e883b166f3e",
      "tree": "415b8e3a2796709673015e100a3b5b28e556104a",
      "parents": [
        "f1a438d813d416fa9f4be4e6dbd10b54c5938d89"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Thu Aug 09 11:16:46 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 09 11:16:46 2007 +0200"
      },
      "message": "sched: simplify move_tasks()\n\nThe move_tasks() function is currently multiplexed with two distinct\ncapabilities:\n\n1. attempt to move a specified amount of weighted load from one run\nqueue to another; and\n2. attempt to move a specified number of tasks from one run queue to\nanother.\n\nThe first of these capabilities is used in two places, load_balance()\nand load_balance_idle(), and in both of these cases the return value of\nmove_tasks() is used purely to decide if tasks/load were moved and no\nnotice of the actual number of tasks moved is taken.\n\nThe second capability is used in exactly one place,\nactive_load_balance(), to attempt to move exactly one task and, as\nbefore, the return value is only used as an indicator of success or failure.\n\nThis multiplexing of sched_task() was introduced, by me, as part of the\nsmpnice patches and was motivated by the fact that the alternative, one\nfunction to move specified load and one to move a single task, would\nhave led to two functions of roughly the same complexity as the old\nmove_tasks() (or the new balance_tasks()).  However, the new modular\ndesign of the new CFS scheduler allows a simpler solution to be adopted\nand this patch addresses that solution by:\n\n1. adding a new function, move_one_task(), to be used by\nactive_load_balance(); and\n2. making move_tasks() a single purpose function that tries to move a\nspecified weighted load and returns 1 for success and 0 for failure.\n\nOne of the consequences of these changes is that neither move_one_task()\nor the new move_tasks() care how many tasks sched_class.load_balance()\nmoves and this enables its interface to be simplified by returning the\namount of load moved as its result and removing the load_moved pointer\nfrom the argument list.  This helps simplify the new move_tasks() and\nslightly reduces the amount of work done in each of\nsched_class.load_balance()\u0027s implementations.\n\nFurther simplification, e.g. changes to balance_tasks(), are possible\nbut (slightly) complicated by the special needs of load_balance_fair()\nso I\u0027ve left them to a later patch (if this one gets accepted).\n\nNB Since move_tasks() gets called with two run queue locks held even\nsmall reductions in overhead are worthwhile.\n\n[ mingo@elte.hu ]\n\nthis change also reduces code size nicely:\n\n   text    data     bss     dec     hex filename\n   39216    3618      24   42858    a76a sched.o.before\n   39173    3618      24   42815    a73f 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": "6cfb0d5d06bea2b8791f32145eae539d524e5f6c",
      "tree": "ec84e29c73833fac72f7307b7573410b2e60b291",
      "parents": [
        "8179ca23d513717cc5e3dc81a1ffe01af0955468"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 02 17:41:40 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 02 17:41:40 2007 +0200"
      },
      "message": "[PATCH] sched: reduce debug code\n\nmove the rest of the debugging/instrumentation code to under\nCONFIG_SCHEDSTATS too. This reduces code size and speeds code up:\n\n    text    data     bss     dec     hex filename\n   33044    4122      28   37194    914a sched.o.before\n   32708    4122      28   36858    8ffa sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cad60d93e18ba52b6f069b2edb031c89bf603b07",
      "tree": "dfe74c165e7607c233d223614ef400163c6ba44c",
      "parents": [
        "4e6f96f313561d86d248edf0eaff2336d8217e1b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 02 17:41:40 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 02 17:41:40 2007 +0200"
      },
      "message": "[PATCH] sched: -\u003etask_new cleanup\n\nmake sched_class.task_new \u003d\u003d NULL a \u0027default method\u0027, this\nallows the removal of task_rt_new.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bb44e5d1c6b3b748e0facf8f516b3162009feb27",
      "tree": "f09b7bfb5f5c71192ecdfbef82eda7c9a5bcc231",
      "parents": [
        "bf0f6f24a1ece8988b243aefe84ee613099a9245"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:58 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:58 2007 +0200"
      },
      "message": "sched: cfs core, kernel/sched_rt.c\n\nadd kernel/sched_rt.c: SCHED_FIFO/SCHED_RR support. The behavior\nand semantics of SCHED_FIFO/SCHED_RR tasks is unchanged.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
