)]}'
{
  "log": [
    {
      "commit": "1c83437e80186832a9a48dbb6b8868d28e40e562",
      "tree": "5b9170301b6cca9980f019c52bee31c3cc84817c",
      "parents": [
        "4939602a2441306008c6dca38216b741d4e09a42"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Oct 05 13:32:34 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:47:04 2011 +0200"
      },
      "message": "sched: Warn on rt throttling\n\nThe default rt-throttling is a source of never ending questions. Warn\nonce when we go into throttling so folks have that info in dmesg.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1110051331480.18778@ionos\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4939602a2441306008c6dca38216b741d4e09a42",
      "tree": "e22218b6291c934944c8860dedb9f37ffd452ac4",
      "parents": [
        "fa17b507f142d37aeac322a95f6f7c6375f25601"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Sat Jun 25 15:45:46 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:47:00 2011 +0200"
      },
      "message": "sched: Unify the -\u003ecpus_allowed mask copy\n\nCurrently every sched_class::set_cpus_allowed() implementation has to\ncopy the cpumask into task_struct::cpus_allowed, this is pointless,\nput this copy in the generic code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/n/tip-jhl5s9fckd9ptw1fzbqqlrd3@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa17b507f142d37aeac322a95f6f7c6375f25601",
      "tree": "5ff8b9d7087175aca85dff3393932fe9b5497425",
      "parents": [
        "6eb57e0d65ebd99a71d435dc96d83e725752eef8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 16 12:23:22 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 06 12:46:56 2011 +0200"
      },
      "message": "sched: Wrap scheduler p-\u003ecpus_allowed access\n\nThis task is preparatory for the migrate_disable() implementation, but\nstands on its own and provides a cleanup.\n\nIt currently only converts those sites required for task-placement.\nKosaki-san once mentioned replacing cpus_allowed with a proper\ncpumask_t instead of the NR_CPUS sized array it currently is, that\nwould also require something like this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nLink: http://lkml.kernel.org/n/tip-e42skvaddos99psip0vce41o@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22f92bacbeea24b20e447444c28e7cad9f1ac3f8",
      "tree": "5c3f2346804a186aa2d954f078fd2f4d44bcc26e",
      "parents": [
        "557ab425429a5123d37f412ce3e6d6137cb621f8",
        "0f86267b79bc6e357b8606077c7f70239045ea9c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 11:08:16 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 04 11:09:08 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: pick up the latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3be209a8e22cedafc1b6945608b7bb8d9887ab61",
      "tree": "643b1083f8863cbdb45b7e2375368391f6bc3486",
      "parents": [
        "003f6c9df54970d8b19578d195b3e2b398cdbde2"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Mon Sep 12 09:28:04 2011 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 18 13:48:56 2011 +0200"
      },
      "message": "sched/rt: Migrate equal priority tasks to available CPUs\n\nCommit 43fa5460fe60dea5c610490a1d263415419c60f6 (\"sched: Try not to\nmigrate higher priority RT tasks\") also introduced a change in behavior\nwhich keeps RT tasks on the same CPU if there is an equal priority RT\ntask currently running even if there are empty CPUs available.\n\nThis can cause unnecessary wakeup latencies, and can prevent the\nscheduler from balancing all RT tasks across available CPUs.\n\nThis change causes an RT task to search for a new CPU if an equal\npriority RT task is already running on wakeup.  Lower priority tasks\nwill still have to wait on higher priority tasks, but the system should\nstill balance out because there is always the possibility that if there\nare both a high and low priority RT tasks on a given CPU that the high\npriority task could wakeup while the low priority task is running and\nforce it to search for a better runqueue.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org # 37+\nLink: http://lkml.kernel.org/r/1315837684-18733-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "953bfcd10e6f3697233e8e5128c611d275da39c1",
      "tree": "a3ca8136bb9e992bb40945c5eee2a8dcc0fd0b57",
      "parents": [
        "5710f15b52664ae0bfa60a66d75464769d297b2b"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Jul 21 09:43:27 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:01:13 2011 +0200"
      },
      "message": "sched: Implement hierarchical task accounting for SCHED_OTHER\n\nIntroduce hierarchical task accounting for the group scheduling case in CFS, as\nwell as promoting the responsibility for maintaining rq-\u003enr_running to the\nscheduling classes.\n\nThe primary motivation for this is that with scheduling classes supporting\nbandwidth throttling it is possible for entities participating in throttled\nsub-trees to not have root visible changes in rq-\u003enr_running across activate\nand de-activate operations.  This in turn leads to incorrect idle and\nweight-per-task load balance decisions.\n\nThis also allows us to make a small fixlet to the fastpath in pick_next_task()\nunder group scheduling.\n\nNote: this issue also exists with the existing sched_rt throttling mechanism.\nThis patch does not address that.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110721184756.878333391@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5181f4a46afd99e5e85c639b189e43e0a42b53df",
      "tree": "a9adeec7cbfccf118e4c9317e48999e02b01cdd1",
      "parents": [
        "c37495fd0f64fc139b5a07d242bcb485174d1206"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 16 21:55:23 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:55 2011 +0200"
      },
      "message": "sched: Use pushable_tasks to determine next highest prio\n\nHillf Danton proposed a patch (see link) that cleaned up the\nsched_rt code that calculates the priority of the next highest priority\ntask to be used in finding run queues to pull from.\n\nHis patch removed the calculating of the next prio to just use the current\nprio when deteriming if we should examine a run queue to pull from. The problem\nwith his patch was that it caused more false checks. Because we check a run\nqueue for pushable tasks if the current priority of that run queue is higher\nin priority than the task about to run on our run queue. But after grabbing\nthe locks and doing the real check, we find that there may not be a task\nthat has a higher prio task to pull. Thus the locks were taken with nothing to\ndo.\n\nI added some trace_printks() to record when and how many times the run queue\nlocks were taken to check for pullable tasks, compared to how many times we\npulled a task.\n\nWith the current method, it was:\n\n  3806 locks taken vs 2812 pulled tasks\n\nWith Hillf\u0027s patch:\n\n  6728 locks taken vs 2804 pulled tasks\n\nThe number of times locks were taken to pull a task went up almost double with\nno more success rate.\n\nBut his patch did get me thinking. When we look at the priority of the highest\ntask to consider taking the locks to do a pull, a failure to pull can be one\nof the following: (in order of most likely)\n\n o RT task was pushed off already between the check and taking the lock\n o Waiting RT task can not be migrated\n o RT task\u0027s CPU affinity does not include the target run queue\u0027s CPU\n o RT task\u0027s priority changed between the check and taking the lock\n\nAnd with Hillf\u0027s patch, the thing that caused most of the failures, is\nthe RT task to pull was not at the right priority to pull (not greater than\nthe current RT task priority on the target run queue).\n\nMost of the above cases we can\u0027t help. But the current method does not check\nif the next highest prio RT task can be migrated or not, and if it can not,\nwe still grab the locks to do the test (we don\u0027t find out about this fact until\nafter we have the locks). I thought about this case, and realized that the\npushable task plist that is maintained only holds RT tasks that can migrate.\nIf we move the calculating of the next highest prio task from the inc/dec_rt_task()\nfunctions into the queuing of the pushable tasks, then we only measure the\npriorities of those tasks that we push, and we get this basically for free.\n\nNot only does this patch make the code a little more efficient, it cleans it\nup and makes it a little simpler.\n\nThanks to Hillf Danton for inspiring me on this patch.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nLink: http://lkml.kernel.org/r/BANLkTimQ67180HxCx5vgMqumqw1EkFh3qg@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c37495fd0f64fc139b5a07d242bcb485174d1206",
      "tree": "0b60964cdb549e5e455d560aa4397102a666a617",
      "parents": [
        "1812a643ccbfeb61a00a7f0d7219606e63d8815b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 16 21:55:22 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:52 2011 +0200"
      },
      "message": "sched: Balance RT tasks when forked as well\n\nWhen a new task is woken, the code to balance the RT task is currently\nskipped in the select_task_rq() call. But it will be pushed if the rq\nis currently overloaded with RT tasks anyway. The issue is that we\nalready queued the task, and if it does get pushed, it will have to\nbe dequeued and requeued on the new run queue. The advantage with\npushing it first is that we avoid this requeuing as we are pushing it\noff before the task is ever queued.\n\nSee commit 318e0893ce3f524 (\"sched: pre-route RT tasks on wakeup\")\nfor more details.\n\nThe return of select_task_rq() when it is not a wake up has also been\nchanged to return task_cpu() instead of smp_processor_id(). This is more\nof a sanity because the current only other user of select_task_rq()\nbesides wake ups, is an exec, where task_cpu() should also be the same\nas smp_processor_id(). But if it is used for other purposes, lets keep\nthe task on the same CPU. Why would we mant to migrate it to the current\nCPU?\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20110617015919.832743148@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1812a643ccbfeb61a00a7f0d7219606e63d8815b",
      "tree": "874b7db2d6382e32160127b7e880007b9c8e7c87",
      "parents": [
        "311e800e16f63d909136a64ed17ca353a160be59"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:21 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:50 2011 +0200"
      },
      "message": "sched: Remove resetting exec_start in put_prev_task_rt()\n\nThere\u0027s no reason to clean the exec_start in put_prev_task_rt() as it is reset\nwhen the task gets back to the run queue. This saves us doing a store() in the\nfast path.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nLink: http://lkml.kernel.org/r/BANLkTimqWD\u003dq6YnSDi-v9y\u003dLMWecgEzEWg@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "311e800e16f63d909136a64ed17ca353a160be59",
      "tree": "c5d65afd1b0abd748ad50dd15bb81434fce9a17a",
      "parents": [
        "0835471697255b415edcefd6b1e25b6c034439f2"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:20 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:48 2011 +0200"
      },
      "message": "sched, rt: Fix rq-\u003ert.pushable_tasks bug in push_rt_task()\n\nDo not call dequeue_pushable_task() when failing to push an eligible\ntask, as it remains pushable, merely not at this particular moment.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Mike Galbraith \u003cmgalbraith@gmx.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1306895385.4791.26.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "67d955383ab2ef8866c494c14156a4f3d29e441c",
      "tree": "3b18abcc6ccc8c7d4001319d41fb1af6c2971377",
      "parents": [
        "c350a04efd1c89cd256b2abc8f07a21d0d53ff24"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Thu Jun 16 21:55:18 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 14 12:00:45 2011 +0200"
      },
      "message": "sched: Remove noop in next_prio()\n\nWhen computing the next priority for a given run-queue, the check for\nRT priority of the task determined by the pick_next_highest_task_rt()\nfunction could be removed, since only RT tasks are returned by the\nfunction.\n\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTimxmWiof9s5AvS3v_0X+sMiE\u003d0x5g@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c09ab0d257317f97e8629a3d0c8713d6dd9de4c",
      "tree": "81562207cd4b6f6579275d61ea92a7d7b6bbd9ef",
      "parents": [
        "307bf9803f25a8a3f53c1012110fb74e2f893eb0"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Tue Jun 28 10:51:31 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:39:08 2011 +0200"
      },
      "message": "sched: Skip autogroup when looking for all rt sched groups\n\nSince commit ec514c48 (\"sched: Fix rt_rq runtime leakage bug\")\n\u0027cat /proc/sched_debug\u0027 will print data of root_task_group.rt_rq\nmultiple times.\n\nThis is because autogroup does not have its own rt group, instead\nrt group of autogroup is linked to root_task_group.\n\nSo skip it when we are looking for all rt sched groups, and it\nwill also save some noop operation against root_task_group when\n__disable_runtime()/__enable_runtime().\n\n-v2: Based on Cheng Xu\u0027s idea which uses less code.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Cheng Xu \u003cchengxu@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/BANLkTi\u003d87P3RoTF_UEtamNfc_XGxQXE__Q@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "36b2e922b5acd291051fab25bc7535274ce49532",
      "tree": "ef4cdd6894075bb419cc31625b037f2b9212962f",
      "parents": [
        "e197f094b7da7d94812492cfcd706d143f1020e5",
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:34:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:34:24 2011 +0200"
      },
      "message": "Merge commit \u0027v3.0-rc5\u0027 into sched/core\n\nMerge reason: Move to a (much) newer base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0da938c44921cfb690283d3b0c9c48a10375db2c",
      "tree": "7e9374a3ed16a4118f2f5d600067c471aaa80c70",
      "parents": [
        "8dd0de8be31b4b966d17750a0b10df2f575c91ac"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 18:36:25 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 11:44:48 2011 +0200"
      },
      "message": "sched: Check if lowest_mask is initialized in find_lowest_rq()\n\nOn system boot up, the lowest_mask is initialized with an\nearly_initcall(). But RT tasks may wake up on other\nearly_initcall() callers before the lowest_mask is initialized,\ncausing a system crash.\n\nCommit \"d72bce0e67 rcu: Cure load woes\" was the first commit\nto wake up RT tasks in early init. Before this commit this bug\nshould not happen.\n\nReported-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.824872966@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8dd0de8be31b4b966d17750a0b10df2f575c91ac",
      "tree": "991b9dddf6ef092f94bba5af7609c13c8d7b113c",
      "parents": [
        "2c53b436a30867eb6b47dd7bab23ba638d1fb0d2"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jun 14 18:36:24 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 09:50:32 2011 +0200"
      },
      "message": "sched: Fix need_resched() when checking peempt\n\nThe RT preempt check tests the wrong task if NEED_RESCHED is\nset. It currently checks the local CPU task. It is supposed to\ncheck the task that is running on the runqueue we are about to\nwake another task on.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.450239027@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e197f094b7da7d94812492cfcd706d143f1020e5",
      "tree": "c9f3394ce9ff51dd325708f7b14f4115ed60b944",
      "parents": [
        "f339b9dc1f03591761d5d930800db24bc0eda1e1",
        "e69c634190dc724ef2d845ace8d783031d3e492e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 03 10:27:47 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 03 10:27:47 2011 +0200"
      },
      "message": "Merge branch \u0027unlikely/sched\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into sched/urgent\n"
    },
    {
      "commit": "cd4ae6adf8b1c21d88e83ed56afeeef97b28f356",
      "tree": "7a0625d20d135deb1e8c142fc13da6b4eaa6ea6c",
      "parents": [
        "dc7acbb2518f250050179c8581a972df3b6a24f1"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Fri Apr 22 18:53:54 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:54 2011 +0200"
      },
      "message": "sched: More sched_domain iterations fixes\n\nsched_domain iterations needs to be protected by rcu_read_lock() now,\nthis patch adds another two places which needs the rcu lock, which is\nspotted by following suspicious rcu_dereference_check() usage warnings.\n\nkernel/sched_rt.c:1244 invoked rcu_dereference_check() without protection!\nkernel/sched_stats.h:41 invoked rcu_dereference_check() without protection!\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1303469634-11678-1-git-send-email-dfeng@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80fe02b5daf176f99d3afc8f6c9dc9dece019836",
      "tree": "970b90d56870e1b87b4c8efff7ec31fc454445a7",
      "parents": [
        "df48d8716eab9608fe93924e4ae06ff110e8674f",
        "db670dac49b5423b39b5e523d28fe32045d71b10",
        "ec514c487c3d4b652943da7b0afbc094eee08cfa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 17:41:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 17:41:22 2011 -0700"
      },
      "message": "Merge branches \u0027sched-core-for-linus\u0027 and \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (60 commits)\n  sched: Fix and optimise calculation of the weight-inverse\n  sched: Avoid going ahead if -\u003ecpus_allowed is not changed\n  sched, rt: Update rq clock when unthrottling of an otherwise idle CPU\n  sched: Remove unused parameters from sched_fork() and wake_up_new_task()\n  sched: Shorten the construction of the span cpu mask of sched domain\n  sched: Wrap the \u0027cfs_rq-\u003enr_spread_over\u0027 field with CONFIG_SCHED_DEBUG\n  sched: Remove unused \u0027this_best_prio arg\u0027 from balance_tasks()\n  sched: Remove noop in alloc_rt_sched_group()\n  sched: Get rid of lock_depth\n  sched: Remove obsolete comment from scheduler_tick()\n  sched: Fix sched_domain iterations vs. RCU\n  sched: Next buddy hint on sleep and preempt path\n  sched: Make set_*_buddy() work on non-task entities\n  sched: Remove need_migrate_task()\n  sched: Move the second half of ttwu() to the remote cpu\n  sched: Restructure ttwu() some more\n  sched: Rename ttwu_post_activation() to ttwu_do_wakeup()\n  sched: Remove rq argument from ttwu_stat()\n  sched: Remove rq-\u003elock from the first half of ttwu()\n  sched: Drop rq-\u003elock from sched_exec()\n  ...\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Fix rt_rq runtime leakage bug\n"
    },
    {
      "commit": "61eadef6a9bde9ea62fda724a9cb501ce9bc925a",
      "tree": "52ffdd4251e921681f086ec6c4e14ad6e5f9472d",
      "parents": [
        "3e51e3edfd81bfd9853ad7de91167e4ce33d0fe7"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Apr 29 08:36:50 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 16 11:01:17 2011 +0200"
      },
      "message": "sched, rt: Update rq clock when unthrottling of an otherwise idle CPU\n\nIf an RT task is awakened while it\u0027s rt_rq is throttled, the time between\nwakeup/enqueue and unthrottle/selection may be accounted as rt_time\nif the CPU is idle.  Set rq-\u003eskip_clock_update negative upon throttle\nrelease to tell put_prev_task() that we need a clock update.\n\nReported-by: Thomas Giesel \u003cskoe@directbox.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1304059010.7472.1.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec514c487c3d4b652943da7b0afbc094eee08cfa",
      "tree": "d6766fd9a3f6eec2816a8191cf02f14564ba7473",
      "parents": [
        "bd1a643e10eb8782b36b47c3602300319dd2fb00"
      ],
      "author": {
        "name": "Cheng Xu",
        "email": "chengxu@linux.vnet.ibm.com",
        "time": "Sat May 14 14:20:02 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 16 11:00:54 2011 +0200"
      },
      "message": "sched: Fix rt_rq runtime leakage bug\n\nThis patch is to fix the real-time scheduler bug reported at:\n\n  https://lkml.org/lkml/2011/4/26/13\n\nThat is, when running multiple real-time threads on every logical CPUs\nand then turning off one CPU, the kernel will bug at function\n__disable_runtime().\n\nFunction __disable_runtime() bugs and reports leakage of rt_rq runtime.\nThe root cause is __disable_runtime() assumes it iterates through all\nthe existing rt_rq\u0027s while walking rq-\u003eleaf_rt_rq_list, which actually\ncontains only runnable rt_rq\u0027s. This problem also applies to\n__enable_runtime() and print_rt_stats().\n\nThe patch is based on above analysis, appears to fix the problem, but is\nonly lightly tested.\n\nReported-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Cheng Xu \u003cchengxu@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4DCE1F12.6040609@linux.vnet.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7608dec2ce2004c234339bef8c8074e5e601d0e9",
      "tree": "a855754a4fa3de6fe0d287c9d94d58d7bd6e8978",
      "parents": [
        "013fdb8086acaae5f8eb96f9ad48fcd98882ac46"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:46 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:36 2011 +0200"
      },
      "message": "sched: Drop the rq argument to sched_class::select_task_rq()\n\nIn preparation of calling select_task_rq() without rq-\u003elock held, drop\nthe dependency on the rq argument.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110405152729.031077745@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd2f4419b4cbe8fe90796df9617c355762afd6a4",
      "tree": "9eefa7f46c7163f00adb416ff4b9db97653d2665",
      "parents": [
        "d7c01d27ab767a30d672d1fd657aa8336ebdcbca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Apr 05 17:23:44 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 14 08:52:35 2011 +0200"
      },
      "message": "sched: Provide p-\u003eon_rq\n\nProvide a generic p-\u003eon_rq because the p-\u003ese.on_rq semantics are\nunfavourable for lockless wakeups but needed for sched_fair.\n\nIn particular, p-\u003eon_rq is only cleared when we actually dequeue the\ntask in schedule() and not on any random dequeue as done by things\nlike __migrate_task() and __sched_setscheduler().\n\nThis also allows us to remove p-\u003ese usage from !sched_fair code.\n\nReviewed-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110405152728.949545047@chello.nl\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "e0a92c17470775cd85bac52f5372ccc3dc58254a",
      "tree": "9339da8754084bed50b941b018706b75482025cb",
      "parents": [
        "544b4a1f309d18f40969dbab7e08bafd136b2f55",
        "0c3b9168017cbad2c4af3dd65ec93fe646eeaa62"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 11:12:24 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 11:12:26 2011 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nMerge reason: Add fixes before applying dependent patches.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0c3b9168017cbad2c4af3dd65ec93fe646eeaa62",
      "tree": "98ae84f8060a62bc95ab3734b345fa87d0688a16",
      "parents": [
        "b65a0e0c84cf489bfa00d6aa6c48abc5a237100f"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Mar 03 17:04:35 2011 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 04 11:03:18 2011 +0100"
      },
      "message": "sched: Fix sched rt group scheduling when hierachy is enabled\n\nThe current sched rt code is broken when it comes to hierarchical\nscheduling, this patch fixes two problems\n\n1. It adds redundant enqueuing (harmless) when it finds a queue\n   has tasks enqueued, but it has no run time and it is not\n   throttled.\n\n2. The most important change is in sched_rt_rq_enqueue/dequeue.\n   The code just picks the rt_rq belonging to the current cpu\n   on which the period timer runs, the patch fixes it, so that\n   the correct rt_se is enqueued/dequeued.\n\nTested with a simple hierarchy\n\n/c/d, c and d assigned similar runtimes of 50,000 and a while\n1 loop runs within \"d\". Both c and d get throttled, without\nthe patch, the task just stops running and never runs (depends\non where the sched_rt b/w timer runs). With the patch, the\ntask is throttled and runs as expected.\n\n[ bharata, suggestions on how to pick the rt_se belong to the\n  rt_rq and correct cpu ]\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c20110303113435.GA2868@balbir.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48fa4b8ecf683f5e411303553da9e186e8b8406e",
      "tree": "76cec4aa8cca18a44b1bd6e5be68c462a0e66d5f",
      "parents": [
        "d95f412200652694e63e64bfd49f0ae274a54479",
        "85e2efbb1db9a18d218006706d6e4fbeb0216213"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 13:31:51 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 13:31:55 2011 +0100"
      },
      "message": "Merge commit \u0027v2.6.38-rc5\u0027 into sched/core\n\nMerge reason: Pick up upstream fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "06c3bc655697b19521901f9254eb0bbb2c67e7e8",
      "tree": "f712a3359f9a3a73652bb3316e0281f26f48c1ab",
      "parents": [
        "1e1dbb259c79b38a542c1c4c00fd8dfe936b183b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 02 13:19:48 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 03 12:21:33 2011 +0100"
      },
      "message": "sched: Fix update_curr_rt()\n\ncpu_stopper_thread()\n  migration_cpu_stop()\n    __migrate_task()\n      deactivate_task()\n        dequeue_task()\n          dequeue_task_rq()\n            update_curr_rt()\n\nWill call update_curr_rt() on rq-\u003ecurr, which at that time is\nrq-\u003estop. The problem is that rq-\u003estop.prio matches an RT prio and\nthus falsely assumes its a rt_sched_class task.\n\nReported-Debuged-Tested-Acked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nCc: stable@kernel.org # .37\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da7a735e51f9622eb3e1672594d4a41da01d7e4f",
      "tree": "27623dcd39c52a80b79e0ee86ab426fc9c7e2b46",
      "parents": [
        "a8941d7ec81678fb69aea7183338175f112f3e0d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jan 17 17:03:27 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:33:22 2011 +0100"
      },
      "message": "sched: Fix switch_from_fair()\n\nWhen a task is taken out of the fair class we must ensure the vruntime\nis properly normalized because when we put it back in it will assume\nto be normalized.\n\nThe case that goes wrong is when changing away from the fair class\nwhile sleeping. Sleeping tasks have non-normalized vruntime in order\nto make sleeper-fairness work. So treat the switch away from fair as a\nwakeup and preserve the relative vruntime.\n\nAlso update sysrq-n to call the -\u003eswitch_{to,from} methods.\n\nReported-by: Onkalo Samu \u003csamu.p.onkalo@nokia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e54a2c036d8c47195f094af1628834f4c55844a",
      "tree": "b9a2b381becf13e620ba794e81bbd81022d93904",
      "parents": [
        "33c3d6c61debcc0d295fe65521cfbc45409936c7"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 06 11:28:30 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 13 19:55:15 2010 -0500"
      },
      "message": "sched: Change pick_next_task_rt from unlikely to likely\n\nThe if (unlikely(!rt_rq-\u003ert_nr_running)) test in pick_next_task_rt()\ntests if there is another rt task ready to run. If so, then pick it.\n\nIn most systems, only one RT task runs at a time most of the time.\nRunning the branch unlikely annotator profiler on a system doing average\nwork \"running firefox, evolution, xchat, distcc builds, etc\", it showed the\nfollowing:\n\n correct incorrect  %        Function                  File              Line\n ------- ---------  -        --------                  ----              ----\n  324344 135104992  99 _pick_next_task_rt             sched_rt.c           1064\n\n99% of the time the condition is true. When an RT task schedules out,\nit is unlikely that another RT task is waiting to run on that same run queue.\n\nSimply remove the unlikely() condition.\n\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc:Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "33c3d6c61debcc0d295fe65521cfbc45409936c7",
      "tree": "c45c932a3229f288a70cdd7d7dde6a8a01e4db48",
      "parents": [
        "6313e3c21743cc88bb5bd8aa72948ee1e83937b6"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Tue Feb 09 14:43:59 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Dec 13 15:02:46 2010 -0500"
      },
      "message": "sched: Cleanup pre_schedule_rt\n\nSince [commit 9a897c5a:\nsched: RT-balance, replace hooks with pre/post schedule and wakeup methods]\nwe must call pre_schedule_rt if prev is rt task.\nSo condition rt_task(prev) is always true and the \u0027unlikely\u0027 declaration is\nsimply incorrect.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3d4b47b4b040c9d77dd68104cfc1055d89a55afd",
      "tree": "a4b39b5d7c89a319b81543c1b26778d6220e772b",
      "parents": [
        "2069dd75c7d0f49355939e5586daf5a9ab216db7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 15 15:47:01 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:47 2010 +0100"
      },
      "message": "sched: Implement on-demand (active) cfs_rq list\n\nMake certain load-balance actions scale per number of active cgroups\ninstead of the number of existing cgroups.\n\nThis makes wakeup/sleep paths more expensive, but is a win for systems\nwhere the vast majority of existing cgroups are idle.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101115234937.666535048@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "305e6835e05513406fa12820e40e4a8ecb63743c",
      "tree": "8b43703e27d26f4a7e743a99459e0b465cd1e5e1",
      "parents": [
        "e82b8e4ea4f3dffe6e7939f90e78da675fcc450e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:21 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:26 2010 +0200"
      },
      "message": "sched: Do not account irq time to current task\n\nScheduler accounts both softirq and interrupt processing times to the\ncurrently running task. This means, if the interrupt processing was\nfor some other task in the system, then the current task ends up being\npenalized as it gets shorter runtime than otherwise.\n\nChange sched task accounting to acoount only actual task time from\ncurrently running task. Now update_curr(), modifies the delta_exec to\ndepend on rq-\u003eclock_task.\n\nNote that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can\nextend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats\nfor later.\n\nThis change will impact scheduling behavior in interrupt heavy conditions.\n\nTested on a 4-way system with eth0 handled by CPU 2 and a network heavy\ntask (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2\nspending 75%+ of its time in irq processing. CPU 3 spending around 35%\ntime running nc task.\n\nNow, if I run another CPU intensive task on CPU 2, without this change\n/proc/\u003cpid\u003e/schedstat shows 100% of time accounted to this task. With this\nchange, it rightly shows less than 25% accounted to this task as remaining\ntime is actually spent on irq processing.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-7-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4924627423d5e286136ad2520f5be536345ae590",
      "tree": "0ad0151d0a359edb89d99fb5c5c1dfebd64e5a14",
      "parents": [
        "864616ee6785d9fac7a2cd80c01a2da89579f2e4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Oct 17 21:46:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:56 2010 +0200"
      },
      "message": "sched: Unindent labels\n\nLabels should be on column 0.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3bc211cfe7d5fe94b310480d78e00bea96fbf2a",
      "tree": "e968fb5c22fec33cc912cb40745583b4253703d6",
      "parents": [
        "43fa5460fe60dea5c610490a1d263415419c60f6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Sep 20 22:40:04 2010 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 21 13:57:12 2010 +0200"
      },
      "message": "sched: Give CPU bound RT tasks preference\n\nIf a high priority task is waking up on a CPU that is running a\nlower priority task that is bound to a CPU, see if we can move the\nhigh RT task to another CPU first. Note, if all other CPUs are\nrunning higher priority tasks than the CPU bounded current task,\nthen it will be preempted regardless.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nLKML-Reference: \u003c20100921024138.888922071@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43fa5460fe60dea5c610490a1d263415419c60f6",
      "tree": "209ef446b1529ad537382a03a799833e2daddd2a",
      "parents": [
        "58b26c4c025778c09c7a1438ff185080e11b7d0a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Sep 20 22:40:03 2010 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 21 13:57:12 2010 +0200"
      },
      "message": "sched: Try not to migrate higher priority RT tasks\n\nWhen first working on the RT scheduler design, we concentrated on\nkeeping all CPUs running RT tasks instead of having multiple RT\ntasks on a single CPU waiting for the migration thread to move\nthem. Instead we take a more proactive stance and push or pull RT\ntasks from one CPU to another on wakeup or scheduling.\n\nWhen an RT task wakes up on a CPU that is running another RT task,\ninstead of preempting it and killing the cache of the running RT\ntask, we look to see if we can migrate the RT task that is waking\nup, even if the RT task waking up is of higher priority.\n\nThis may sound a bit odd, but RT tasks should be limited in\nmigration by the user anyway. But in practice, people do not do\nthis, which causes high prio RT tasks to bounce around the CPUs.\nThis becomes even worse when we have priority inheritance, because\na high prio task can block on a lower prio task and boost its\npriority. When the lower prio task wakes up the high prio task, if\nit happens to be on the same CPU it will migrate off of it.\n\nBut in reality, the above does not happen much either, because the\nwake up of the lower prio task, which has already been boosted, if\nit was on the same CPU as the higher prio task, it would then\nmigrate off of it. But anyway, we do not want to migrate them\neither.\n\nTo examine the scheduling, I created a test program and examined it\nunder kernelshark. The test program created CPU * 2 threads, where\neach thread had a different priority. The program takes different\noptions. The options used in this change log was to have priority\ninheritance mutexes or not.\n\nAll threads did the following loop:\n\nstatic void grab_lock(long id, int iter, int l)\n{\n\tftrace_write(\"thread %ld iter %d, taking lock %d\\n\",\n\t\t     id, iter, l);\n\tpthread_mutex_lock(\u0026locks[l]);\n\tftrace_write(\"thread %ld iter %d, took lock %d\\n\",\n\t\t     id, iter, l);\n\tbusy_loop(nr_tasks - id);\n\tftrace_write(\"thread %ld iter %d, unlock lock %d\\n\",\n\t\t     id, iter, l);\n\tpthread_mutex_unlock(\u0026locks[l]);\n}\n\nvoid *start_task(void *id)\n{\n\t[...]\n\twhile (!done) {\n\t\tfor (l \u003d 0; l \u003c nr_locks; l++) {\n\t\t\tgrab_lock(id, i, l);\n\t\t\tftrace_write(\"thread %ld iter %d sleeping\\n\",\n\t\t\t\t     id, i);\n\t\t\tms_sleep(id);\n\t\t}\n\t\ti++;\n\t}\n\t[...]\n}\n\nThe busy_loop(ms) keeps the CPU spinning for ms milliseconds. The\nms_sleep(ms) sleeps for ms milliseconds. The ftrace_write() writes\nto the ftrace buffer to help analyze via ftrace.\n\nThe higher the id, the higher the prio, the shorter it does the\nbusy loop, but the longer it spins. This is usually the case with\nRT tasks, the lower priority tasks usually run longer than higher\npriority tasks.\n\nAt the end of the test, it records the number of loops each thread\ntook, as well as the number of voluntary preemptions, non-voluntary\npreemptions, and number of migrations each thread took, taking the\ninformation from /proc/$$/sched and /proc/$$/status.\n\nRunning this on a 4 CPU processor, the results without changes to\nthe kernel looked like this:\n\nTask        vol    nonvol   migrated     iterations\n----        ---    ------   --------     ----------\n  0:         53      3220       1470             98\n  1:        562       773        724             98\n  2:        752       933       1375             98\n  3:        749        39        697             98\n  4:        758         5        515             98\n  5:        764         2        679             99\n  6:        761         2        535             99\n  7:        757         3        346             99\n\ntotal:     5156       4977      6341            787\n\nEach thread regardless of priority migrated a few hundred times.\nThe higher priority tasks, were a little better but still took\nquite an impact.\n\nBy letting higher priority tasks bump the lower prio task from the\nCPU, things changed a bit:\n\nTask        vol    nonvol   migrated     iterations\n----        ---    ------   --------     ----------\n  0:         37      2835       1937             98\n  1:        666      1821       1865             98\n  2:        654      1003       1385             98\n  3:        664       635        973             99\n  4:        698       197        352             99\n  5:        703       101        159             99\n  6:        708         1         75             99\n  7:        713         1          2             99\n\ntotal:     4843       6594      6748            789\n\nThe total # of migrations did not change (several runs showed the\ndifference all within the noise). But we now see a dramatic\nimprovement to the higher priority tasks. (kernelshark showed that\nthe watchdog timer bumped the highest priority task to give it the\n2 count. This was actually consistent with every run).\n\nNotice that the # of iterations did not change either.\n\nThe above was with priority inheritance mutexes. That is, when the\nhigher prority task blocked on a lower priority task, the lower\npriority task would inherit the higher priority task (which shows\nwhy task 6 was bumped so many times). When not using priority\ninheritance mutexes, the current kernel shows this:\n\nTask        vol    nonvol   migrated     iterations\n----        ---    ------   --------     ----------\n  0:         56      3101       1892             95\n  1:        594       713        937             95\n  2:        625       188        618             95\n  3:        628         4        491             96\n  4:        640         7        468             96\n  5:        631         2        501             96\n  6:        641         1        466             96\n  7:        643         2        497             96\n\ntotal:     4458       4018      5870            765\n\nNot much changed with or without priority inheritance mutexes. But\nif we let the high priority task bump lower priority tasks on\nwakeup we see:\n\nTask        vol    nonvol   migrated     iterations\n----        ---    ------   --------     ----------\n  0:        115      3439       2782             98\n  1:        633      1354       1583             99\n  2:        652       919       1218             99\n  3:        645       713        934             99\n  4:        690         3          3             99\n  5:        694         1          4             99\n  6:        720         3          4             99\n  7:        747         0          1            100\n\nWhich shows a even bigger change. The big difference between task 3\nand task 4 is because we have only 4 CPUs on the machine, causing\nthe 4 highest prio tasks to always have preference.\n\nAlthough I did not measure cache misses, and I\u0027m sure there would\nbe little to measure since the test was not data intensive, I could\nimagine large improvements for higher priority tasks when dealing\nwith lower priority tasks. Thus, I\u0027m satisfied with making the\nchange and agreeing with what Gregory Haskins argued a few years\nago when we first had this discussion.\n\nOne final note. All tasks in the above tests were RT tasks. Any RT\ntask will always preempt a non RT task that is running on the CPU\nthe RT task wants to run on.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nLKML-Reference: \u003c20100921024138.605460343@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c32b4fce799d3a6157df9048d03e429956c58818",
      "tree": "b9f3064e19516f70888c9f0ab66e735b1bec05c2",
      "parents": [
        "a44702e8858a071aa0f2365113ea4a2e51c8b575"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jun 11 01:09:48 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:56 2010 +0200"
      },
      "message": "sched: task_tick_rt: Remove the obsolete -\u003esignal !\u003d NULL check\n\nRemove the obsolete -\u003esignal !\u003d NULL check in watchdog().\nSince ea6d290c -\u003esignal can\u0027t be NULL.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100610230948.GA25911@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "371fd7e7a56a5c136d31aa980011bd2f131c3ef5",
      "tree": "cf52014018e8258acd8bcfd486d855f098a02c03",
      "parents": [
        "cc87f76a601d2d256118f7bab15e35254356ae21"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 16:38:48 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:05 2010 +0200"
      },
      "message": "sched: Add enqueue/dequeue flags\n\nIn order to reduce the dependency on TASK_WAKING rework the enqueue\ninterface to support a proper flags field.\n\nReplace the int wakeup, bool head arguments with an int flags argument\nand create the following flags:\n\n  ENQUEUE_WAKEUP - the enqueue is a wakeup of a sleeping task,\n  ENQUEUE_WAKING - the enqueue has relative vruntime due to\n                   having sched_class::task_waking() called,\n  ENQUEUE_HEAD - the waking task should be places on the head\n                 of the priority queue (where appropriate).\n\nFor symmetry also convert sched_class::dequeue() to a flags scheme.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0017d735092844118bef006696a750a0e4ef6ebd",
      "tree": "8ed1540aaeb63da726f93da12950a8eaa0e0a3e0",
      "parents": [
        "9084bb8246ea935b98320554229e2f371f7f52fa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 18:34:10 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:03 2010 +0200"
      },
      "message": "sched: Fix TASK_WAKING vs fork deadlock\n\nOleg noticed a few races with the TASK_WAKING usage on fork.\n\n - since TASK_WAKING is basically a spinlock, it should be IRQ safe\n - since we set TASK_WAKING (*) without holding rq-\u003elock it could\n   be there still is a rq-\u003elock holder, thereby not actually\n   providing full serialization.\n\n(*) in fact we clear PF_STARTING, which in effect enables TASK_WAKING.\n\nCure the second issue by not setting TASK_WAKING in sched_fork(), but\nonly temporarily in wake_up_new_task() while calling select_task_rq().\n\nCure the first by holding rq-\u003elock around the select_task_rq() call,\nthis will disable IRQs, this however requires that we push down the\nrq-\u003elock release into select_task_rq_fair()\u0027s cgroup stuff.\n\nBecause select_task_rq_fair() still needs to drop the rq-\u003elock we\ncannot fully get rid of TASK_WAKING.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c9494727cf293ae2ec66af57547a3e79c724fec2",
      "tree": "44ae197b64fa7530ee695a90ad31326dda06f1e1",
      "parents": [
        "6427462bfa50f50dc6c088c07037264fcc73eca1",
        "42be79e37e264557f12860fa4cc84b4de3685954"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:02:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:03:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update to latest upstream\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80a186074e72e2cd61f6716d90cf32ce54981a56",
      "tree": "c5f75a83498df0ea2109067b797ec7986479dda0",
      "parents": [
        "15c989d4d14b82f43cae7efc6a7794cdd556f274",
        "3d07467b7aa91623b31d7b5888a123a2c8c8e9cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:46:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:46:18 2010 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Fix pick_next_highest_task_rt() for cgroups\n  sched: Cleanup: remove unused variable in try_to_wake_up()\n  x86: Fix sched_clock_cpu for systems with unsynchronized TSC\n"
    },
    {
      "commit": "41acab8851a0408c1d5ad6c21a07456f88b54d40",
      "tree": "28b23b930571c1f6dfd5c4e8129a2a7ea2056307",
      "parents": [
        "3d07467b7aa91623b31d7b5888a123a2c8c8e9cc"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Mar 10 23:37:45 2010 -0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 15:22:28 2010 +0100"
      },
      "message": "sched: Implement group scheduler statistics in one struct\n\nPut all statistic fields of sched_entity in one struct, sched_statistics,\nand embed it into sched_entity.\n\nThis change allows to memset the sched_statistics to 0 when needed (for\ninstance when forking), avoiding bugs of non initialized fields.\n\nSigned-off-by: Lucas De Marchi \u003clucas.de.marchi@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268275065-18542-1-git-send-email-lucas.de.marchi@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3d07467b7aa91623b31d7b5888a123a2c8c8e9cc",
      "tree": "f7acd28870838db783146b3c87f1d56bd1c42ef2",
      "parents": [
        "ab3b3aa5dd01b3aaa6b15caee113b21b1b6520c4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 10 17:07:24 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 15:21:50 2010 +0100"
      },
      "message": "sched: Fix pick_next_highest_task_rt() for cgroups\n\nSince pick_next_highest_task_rt() already iterates all the cgroups and\nis really only interested in tasks, skip over the !task entries.\n\nReported-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "78d7d407b62a021e6d2e8dc24c0b90e390ab58a1",
      "tree": "8c1074b84db4b977bad6802a3701e0113c0a7739",
      "parents": [
        "d4bb527438b4181cd3c564ae04dd344c381283a1"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Fri Mar 05 13:42:54 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:33 2010 -0800"
      },
      "message": "kernel core: use helpers for rlimits\n\nMake sure compiler won\u0027t do weird things with limits.  E.g.  fetching them\ntwice may return 2 different values after writable limits are implemented.\n\nI.e.  either use rlimit helpers added in commit 3e10e716abf3 (\"resource:\nadd helpers for fetching rlimits\") or ACCESS_ONCE if not applicable.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74b7eb5885415ed41d012f432398d1b697115b5f",
      "tree": "2014e5d505c797dce846c0193a9362003cac3bbd",
      "parents": [
        "4a461c85b643258e305eb5a3aced34009db2f818"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Fri Jan 29 14:57:52 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 04 09:57:32 2010 +0100"
      },
      "message": "sched: Change usage of rt_rq-\u003ert_se to rt_rq-\u003etg-\u003ert_se[cpu]\n\nThis is the first step to remove rt_rq member rt_se because it have the\nsame meaning with tg-\u003ert_se[cpu]. And the latter style is also used by\nthe fair scheduling class.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c2674af741001282257r28c97a92o9f90cf16fe8d3d84@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37dad3fce97f01e5149d69de0833d8452c0e862e",
      "tree": "b61b32fd56301211e06c4ff8d7d72a08eb7af182",
      "parents": [
        "ea87bb7853168434f4a82426dd1ea8421f9e604d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 20 20:59:01 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jan 22 18:09:59 2010 +0100"
      },
      "message": "sched: Implement head queueing for sched_rt\n\nThe ability of enqueueing a task to the head of a SCHED_FIFO priority\nlist is required to fix some violations of POSIX scheduling policy.\n\nImplement the functionality in sched_rt.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nTested-by: Carsten Emde \u003ccbe@osadl.org\u003e\nTested-by: Mathias Weber \u003cmathias.weber.mw1@roche.com\u003e\nLKML-Reference: \u003c20100120171629.772169931@linutronix.de\u003e\n"
    },
    {
      "commit": "ea87bb7853168434f4a82426dd1ea8421f9e604d",
      "tree": "fcadec9b0fd1c57e4d1b625e2492c13c852972f1",
      "parents": [
        "7c9414385ebfdd87cc542d4e7e3bb0dbb2d3ce25"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 20 20:58:57 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jan 22 18:09:59 2010 +0100"
      },
      "message": "sched: Extend enqueue_task to allow head queueing\n\nThe ability of enqueueing a task to the head of a SCHED_FIFO priority\nlist is required to fix some violations of POSIX scheduling policy.\n\nExtend the related functions with a \"head\" argument.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nTested-by: Carsten Emde \u003ccbe@osadl.org\u003e\nTested-by: Mathias Weber \u003cmathias.weber.mw1@roche.com\u003e\nLKML-Reference: \u003c20100120171629.734886007@linutronix.de\u003e\n\n"
    },
    {
      "commit": "3d45fd804a95055ecab5b3eed81f5ab2dbb047a2",
      "tree": "3ac7d2dbe75c4e406864b7d8c895f9318f308575",
      "parents": [
        "1e3c88bdeb1260edc341e45c9fb8efd182a5c511"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Dec 17 17:12:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 21 13:40:09 2010 +0100"
      },
      "message": "sched: Remove the sched_class load_balance methods\n\nTake out the sched_class methods for load-balancing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d686f4564f3fc7c6e678852919e48ad331d276b",
      "tree": "642c214879c1e1e5fbadc88c33ad47fe67a94433",
      "parents": [
        "d894837f23f491aa7ed167aae767fc07cfe6e6e6"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Wed Jan 13 20:21:52 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 17 08:09:45 2010 +0100"
      },
      "message": "sched: Don\u0027t expose local functions\n\nkernel/sched: don\u0027t expose local functions\n\nThe get_rr_interval_* functions are all class methods of\nstruct sched_class. They are not exported so make them\nstatic.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c201001132021.53253.hartleys@visionengravers.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "efbbd05a595343a413964ad85a2ad359b7b7efbd",
      "tree": "c1bf0d86134187e127a00067b50b0684c2988860",
      "parents": [
        "881232b70b195768a71cd74ff4b4e8ab9502997b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 16 18:04:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 19:01:58 2009 +0100"
      },
      "message": "sched: Add pre and post wakeup hooks\n\nAs will be apparent in the next patch, we need a pre wakeup hook\nfor sched_fair task migration, hence rename the post wakeup hook\nand one pre wakeup.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091216170518.114746117@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0986b11b12ad2baed338385f79fd0dec58a23fc6",
      "tree": "36bdf3985704f87f0c278a35e53470f6248419e2",
      "parents": [
        "05fa785cf80c9b7c0254c3056037147aed3ea16b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 15:32:06 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "sched: Convert rt_runtime_lock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05fa785cf80c9b7c0254c3056037147aed3ea16b",
      "tree": "3d5c69d449b9240dc6d1005dddf344e467de4f34",
      "parents": [
        "a26724591edba5acc528d41f3906a972590e8f54"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 14:28:38 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "sched: Convert rq-\u003elock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n"
    },
    {
      "commit": "dba091b9e3522b9d32fc9975e48d3b69633b45f0",
      "tree": "91549e3921971b6d0074fd34c29223b593381c8a",
      "parents": [
        "3160568371da441b7f2fb57f2f1225404207e8f2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 09 09:32:03 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 09 10:01:07 2009 +0100"
      },
      "message": "sched: Protect sched_rr_get_param() access to task-\u003esched_class\n\nsched_rr_get_param calls\ntask-\u003esched_class-\u003eget_rr_interval(task) without protection\nagainst a concurrent sched_setscheduler() call which modifies\ntask-\u003esched_class.\n\nSerialize the access with task_rq_lock(task) and hand the rq\npointer into get_rr_interval() as it\u0027s needed at least in the\nsched_fair implementation.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.0912090930120.3089@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2c880630438f80b474378d5487b511b07665051",
      "tree": "0f35b58cd657a3b50e03a93a12367ab82bd569ef",
      "parents": [
        "45a5c8bad827ebb9c9798becc15bce2e804d49e0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 03 14:53:15 2009 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 04 13:16:38 2009 +0100"
      },
      "message": "cpumask: Simplify sched_rt.c\n\nfind_lowest_rq() wants to call pick_optimal_cpu() on the\nintersection of sched_domain_span(sd) and lowest_mask.  Rather\nthan doing a cpus_and into a temporary, we can open-code it.\n\nThis actually makes the code slightly clearer, IMHO.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c200911031453.15350.rusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1",
      "tree": "54c0c8dc201122483bdd7e8975103b07f6afd34b",
      "parents": [
        "cb5fd13f1178dee4302646b2890d884c380160e1"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Mon Sep 21 01:31:53 2009 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 09:53:55 2009 +0200"
      },
      "message": "sched: Simplify sys_sched_rr_get_interval() system call\n\nBy removing the need for it to know details of scheduling classes.\n\nThis allows PlugSched to define orthogonal scheduling classes.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c06d1b89ee15a0eef82d7.1253496713@mudlark.pw.nest\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d47872146398dbede13223299fe1cb368ebc781",
      "tree": "c472424ecbabdb8136e2b93f49f75af9414f03f3",
      "parents": [
        "0763a660a84220cc3900fd32abdd7ad109e2278d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:55:44 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:30 2009 +0200"
      },
      "message": "sched: Rename sync arguments\n\nIn order to extend the functions to have more than 1 flag (sync),\nrename the argument to flags, and explicitly define a WF_ space for\nindividual flags.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0763a660a84220cc3900fd32abdd7ad109e2278d",
      "tree": "1b745884fb79627e05c026ee5bfb115b1f722db8",
      "parents": [
        "8e6598af3f35629c37249a610cf13e73f70db279"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 14 19:37:39 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:51:29 2009 +0200"
      },
      "message": "sched: Rename select_task_rq() argument\n\nIn order to be able to rename the sync argument, we need to rename\nthe current flag argument.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f3edc1b1ead6d9bd45a85c551f44eff8fe76b9f",
      "tree": "46f987010ca017be945831b76d8ea846f1ba8fc9",
      "parents": [
        "aaee1203ca52b9db799433c33c9bffc33cdf8909"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 10 13:42:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 15 16:01:04 2009 +0200"
      },
      "message": "sched: Hook sched_balance_self() into sched_class::select_task_rq()\n\nRather ugly patch to fully place the sched_balance_self() code\ninside the fair class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9e9250bc78e7f6342517214c0178a529807964b",
      "tree": "9466a437ccfa93b200f4ee434fe807dd6b5fc050",
      "parents": [
        "ab29230e673c646292c90c8b9d378b9562145af0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 01 10:34:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 04 10:09:55 2009 +0200"
      },
      "message": "sched: Scale down cpu_power due to RT tasks\n\nKeep an average on the amount of time spend on RT tasks and use\nthat fraction to scale down the cpu_power for regular tasks.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nLKML-Reference: \u003c20090901083826.287778431@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bcf08df3b23b3d13bf8c4ad6bd744a6ad30015fb",
      "tree": "c3c37cfa34a15c05a37bbacc7b67a2ffc19bc856",
      "parents": [
        "693525e3bea25cf2ee6cf2b862ba7c148e891df2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 12:11:10 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 15:15:51 2009 +0200"
      },
      "message": "sched: Fix cpupri build on !CONFIG_SMP\n\nThis build bug:\n\n In file included from kernel/sched.c:1765:\n kernel/sched_rt.c: In function ‘has_pushable_tasks’:\n kernel/sched_rt.c:1069: error: ‘struct rt_rq’ has no member named ‘pushable_tasks’\n kernel/sched_rt.c: In function ‘pick_next_task_rt’:\n kernel/sched_rt.c:1084: error: ‘struct rq’ has no member named ‘post_schedule’\n\nTriggers because both pushable_tasks and post_schedule are\nSMP-only fields.\n\nMove pushable_tasks() to the SMP section and #ifdef the post_schedule use.\n\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090729150422.17691.55590.stgit@dev.haskins.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f48894fcc89ddec62e1762f73a0825793e59e91",
      "tree": "63b071af185d7049c854cbf4d000949968236bac",
      "parents": [
        "00aec93d10a051ea64f83eff75d4065a19508ea6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 12:25:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:26:14 2009 +0200"
      },
      "message": "sched: Add debug check to task_of()\n\nA frequent mistake appears to be to call task_of() on a\nscheduler entity that is not actually a task, which can result\nin a wild pointer.\n\nAdd a check to catch these mistakes.\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00aec93d10a051ea64f83eff75d4065a19508ea6",
      "tree": "010148caeaf4d4b36188ba15828343aa6c74efc9",
      "parents": [
        "3f029d3c6d62068d59301d90c18dbde8ee402107"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Thu Jul 30 10:57:23 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:26:12 2009 +0200"
      },
      "message": "sched: Fully integrate cpus_active_map and root-domain code\n\nReflect \"active\" cpus in the rq-\u003erd-\u003eonline field, instead of\nthe online_map.\n\nThe motivation is that things that use the root-domain code\n(such as cpupri) only care about cpus classified as \"active\"\nanyway. By synchronizing the root-domain state with the active\nmap, we allow several optimizations.\n\nFor instance, we can remove an extra cpumask_and from the\nscheduler hotpath by utilizing rq-\u003erd-\u003eonline (since it is now\na cached version of cpu_active_map \u0026 rq-\u003erd-\u003espan).\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090730145723.25226.24493.stgit@dev.haskins.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f029d3c6d62068d59301d90c18dbde8ee402107",
      "tree": "c9c4e49bc0c8b919a81bf428180b9cffedbef389",
      "parents": [
        "c3a2ae3d93c0f10d29c071f599764d00b8de00cb"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Jul 29 11:08:47 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 14:26:10 2009 +0200"
      },
      "message": "sched: Enhance the pre/post scheduling logic\n\nWe currently have an explicit \"needs_post\" vtable method which\nreturns a stack variable for whether we should later run\npost-schedule.  This leads to an awkward exchange of the\nvariable as it bubbles back up out of the context switch. Peter\nZijlstra observed that this information could be stored in the\nrun-queue itself instead of handled on the stack.\n\nTherefore, we revert to the method of having context_switch\nreturn void, and update an internal rq-\u003epost_schedule variable\nwhen we require further processing.\n\nIn addition, we fix a race condition where we try to access\ncurrent-\u003esched_class without holding the rq-\u003elock.  This is\ntechnically racy, as the sched-class could change out from\nunder us.  Instead, we reference the per-rq post_schedule\nvariable with the runqueue unlocked, but with preemption\ndisabled to see if we need to reacquire the rq-\u003elock.\n\nFinally, we clean the code up slightly by removing the #ifdef\nCONFIG_SMP conditionals from the schedule() call, and implement\nsome inline helper functions instead.\n\nThis patch passes checkpatch, and rt-migrate.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090729150422.17691.55590.stgit@dev.haskins.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a1ba4d8ba9f06a397e97cbd67a93ee306860b40a",
      "tree": "f0e0f92a2c0763f8ec162c2b0e2abc389075b207",
      "parents": [
        "d4ec36bac3de39b7e10ec8f42fbdd20d9a9ed753"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Apr 01 18:40:15 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 10:43:29 2009 +0200"
      },
      "message": "sched_rt: Fix overload bug on rt group scheduling\n\nFixes an easily triggerable BUG() when setting process affinities.\n\nMake sure to count the number of migratable tasks in the same place:\nthe root rt_rq. Otherwise the number doesn\u0027t make sense and we\u0027ll hit\nthe BUG in set_cpus_allowed_rt().\n\nAlso, make sure we only count tasks, not groups (this is probably\nalready taken care of by the fact that rt_se-\u003enr_cpus_allowed will be 0\nfor groups, but be more explicit)\n\nTested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: stable@kernel.org\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nLKML-Reference: \u003c1247067476.9777.57.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eaa958402ea40851097d051f52ba1bb7a885efe9",
      "tree": "9187f59ff0ee6ac138b5c81a2212bc10f46d04a5",
      "parents": [
        "0281b5dc0350cbf6dd21ed558a33cccce77abc02"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Sat Jun 06 14:51:36 2009 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jun 09 22:30:27 2009 +0930"
      },
      "message": "cpumask: alloc zeroed cpumask for static cpumask_var_ts\n\nThese are defined as static cpumask_var_t so if MAXSMP is not used,\nthey are cleared already.  Avoid surprises when MAXSMP is enabled.\n\nSigned-off-by: Yinghai Lu \u003cyinghai.lu@kernel.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5af8c4e0fac9838428bd718040b664043a05f37c",
      "tree": "75a01d98ed244db45fe3c734c4a81c1a3d92ac37",
      "parents": [
        "46e0bb9c12f4bab539736f1714cbf16600f681ec",
        "577c9c456f0e1371cbade38eaf91ae8e8a308555"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 17:25:42 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 17:26:00 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.30-rc1\u0027 into sched/urgent\n\nMerge reason: update to latest upstream to queue up fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "13b8bd0a5713bdf05659019badd7c0407984ece1",
      "tree": "378950741dd647b672a2b3e61988725b52557f2d",
      "parents": [
        "a18b83b7ef3c98cd8b4bb885e4a649a8f30fb7b0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Mar 25 15:01:22 2009 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 13:24:51 2009 +0200"
      },
      "message": "sched_rt: don\u0027t allocate cpumask in fastpath\n\nImpact: cleanup\n\nAs pointed out by Steven Rostedt.  Since the arg in question is\nunused, we simply change cpupri_find() to accept NULL.\n\nReported-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c200903251501.22664.rusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "140573d33b703194b7e1893711e78b7f546cca7c",
      "tree": "8e215102e7c5222013df84ceed8b961728d2db91",
      "parents": [
        "34cb61359b503d7aff6447acb037a5efd6ce93b2",
        "ceacc2c1c85ac498ca4cf297bdfe5b4aaa9fd0e0",
        "483b4ee60edbefdfbff0dd538fb81f368d9e7c0d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 08 20:12:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 08 20:12:46 2009 +0100"
      },
      "message": "Merge branches \u0027sched/rt\u0027 and \u0027sched/urgent\u0027 into sched/core\n"
    },
    {
      "commit": "3d398703ef06fd97b4c28c86b580546d5b57e7b7",
      "tree": "8d0d22c32d4610392af39a8184e38971554e7e5b",
      "parents": [
        "a571bbeafbcc501d9989fbce1cddcd810bd51d71"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jan 31 23:21:24 2009 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 01 10:49:52 2009 +0100"
      },
      "message": "sched_rt: don\u0027t use first_cpu on cpumask created with cpumask_and\n\ncpumask_and() only initializes nr_cpu_ids bits, so the (deprecated)\nfirst_cpu() might find one of those uninitialized bits if nr_cpu_ids\nis less than NR_CPUS (as it can be for CONFIG_CPUMASK_OFFSTACK).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ceacc2c1c85ac498ca4cf297bdfe5b4aaa9fd0e0",
      "tree": "4bac6a3e5544d90da1ee9437845120204d4bb382",
      "parents": [
        "398a153b16b09a68739928d4502455db9725ac86"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jan 16 14:46:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 16 15:01:31 2009 +0100"
      },
      "message": "sched: make plist a library facility\n\nIngo Molnar wrote:\n\n\u003e here\u0027s a new build failure with tip/sched/rt:\n\u003e\n\u003e   LD      .tmp_vmlinux1\n\u003e kernel/built-in.o: In function `set_curr_task_rt\u0027:\n\u003e sched.c:(.text+0x3675): undefined reference to `plist_del\u0027\n\u003e kernel/built-in.o: In function `pick_next_task_rt\u0027:\n\u003e sched.c:(.text+0x37ce): undefined reference to `plist_del\u0027\n\u003e kernel/built-in.o: In function `enqueue_pushable_task\u0027:\n\u003e sched.c:(.text+0x381c): undefined reference to `plist_del\u0027\n\nEliminate the plist library kconfig and make it available\nunconditionally.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "398a153b16b09a68739928d4502455db9725ac86",
      "tree": "3a584f77d92c49ac8e5a047fd120607c3b5f9727",
      "parents": [
        "b07430ac37103218b5c1e542490a1b98e6deb3d6"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Jan 14 09:10:04 2009 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Jan 14 09:10:04 2009 -0500"
      },
      "message": "sched: fix build error in kernel/sched_rt.c when RT_GROUP_SCHED \u0026\u0026 !SMP\n\nIngo found a build error in the scheduler when RT_GROUP_SCHED was\nenabled, but SMP was not.  This patch rearranges the code such\nthat it is a little more streamlined and compiles under all permutations\nof SMP, UP and RT_GROUP_SCHED.  It was boot tested on my 4-way x86_64\nand it still passes preempt-test.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "b07430ac37103218b5c1e542490a1b98e6deb3d6",
      "tree": "044c638594e5d04939e99ef24ad837e2121daf21",
      "parents": [
        "0a6d4e1dc9154c4376358663d74060d1e33d203e"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Jan 14 08:55:39 2009 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Jan 14 08:55:39 2009 -0500"
      },
      "message": "sched: de CPP-ify the scheduler code\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "d38b223c86db3162dc85b5a1997ac8a210e1660b",
      "tree": "3e232926a5fce47e910e4356e833be43b7b03592",
      "parents": [
        "c90e785be2fd9dfaef1f030d0314e44052553736"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Sat Jan 10 21:58:11 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 19:13:22 2009 +0100"
      },
      "message": "cpumask: reduce stack usage in find_lowest_rq\n\nImpact: reduce stack usage, cleanup\n\nUse a cpumask_var_t in find_lowest_rq() and clean up other old\ncpumask_t calls.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "0a6d4e1dc9154c4376358663d74060d1e33d203e",
      "tree": "5e0b72984d249bc215a6cd52b12e7b1d27abc852",
      "parents": [
        "c59765042f53a79a7a65585042ff463b69cb248c",
        "1563513d34ed4b12ef32bc2adde4a53ce05701a1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 04:58:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 04:58:49 2009 +0100"
      },
      "message": "Merge branch \u0027sched/latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ghaskins/linux-2.6-hacks into sched/rt\n"
    },
    {
      "commit": "6ca09dfc9f180d038dcef93c167a833f43a8246f",
      "tree": "48cd4e6530a7523d7d14d2c18fa7d3bd2ef49a4e",
      "parents": [
        "730cf27246225d56ca1603b2f3c4fdbf882d4e51"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 18:08:45 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:00:09 2009 +0100"
      },
      "message": "sched: put back some stack hog changes that were undone in kernel/sched.c\n\nImpact: prevents panic from stack overflow on numa-capable machines.\n\nSome of the \"removal of stack hogs\" changes in kernel/sched.c by using\nnode_to_cpumask_ptr were undone by the early cpumask API updates, and\ncauses a panic due to stack overflow.  This patch undoes those changes\nby using cpumask_of_node() which returns a \u0027const struct cpumask *\u0027.\n\nIn addition, cpu_coregoup_map is replaced with cpu_coregroup_mask further\nreducing stack usage.  (Both of these updates removed 9 FIXME\u0027s!)\n\nAlso:\n   Pick up some remaining changes from the old \u0027cpumask_t\u0027 functions to\n   the new \u0027struct cpumask *\u0027 functions.\n\n   Optimize memory traffic by allocating each percpu local_cpu_mask on the\n   same node as the referring cpu.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7eb19553369c46cc1fa64caf120cbcab1b597f7c",
      "tree": "ef1a3beae706b9497c845d0a2557ceb4d2754998",
      "parents": [
        "6092848a2a23b660150a38bc06f59d75838d70c8",
        "8c384cdee3e04d6194a2c2b192b624754f990835"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 17:34:16 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:53:31 2009 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask\n\nConflicts:\n\tarch/x86/kernel/io_apic.c\n\tkernel/rcuclassic.c\n\tkernel/sched.c\n\tkernel/time/tick-sched.c\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n[ mingo@elte.hu: backmerged typo fix for io_apic.c ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1563513d34ed4b12ef32bc2adde4a53ce05701a1",
      "tree": "c8937f0dfd7998f3c9316beadc31c2b437b21157",
      "parents": [
        "917b627d4d981dc614519d7b34ea31a976b14e12"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "message": "RT: fix push_rt_task() to handle dequeue_pushable properly\n\nA panic was discovered by Chirag Jog where a BUG_ON sanity check\nin the new \"pushable_task\" logic would trigger a panic under\ncertain circumstances:\n\nhttp://lkml.org/lkml/2008/9/25/189\n\nGilles Carry discovered that the root cause was attributed to the\npushable_tasks list getting corrupted in the push_rt_task logic.\nThis was the result of a dropped rq lock in double_lock_balance\nallowing a task in the process of being pushed to potentially migrate\naway, and thus corrupt the pushable_tasks() list.\n\nI traced back the problem as introduced by the pushable_tasks patch\nthat went in recently.   There is a \"retry\" path in push_rt_task()\nthat actually had a compound conditional to decide whether to\nretry or exit.  I missed the meaning behind the rationale for the\nvirtual \"if(!task) goto out;\" portion of the compound statement and\nthus did not handle it properly.  The new pushable_tasks logic\nactually creates three distinct conditions:\n\n1) an untouched and unpushable task should be dequeued\n2) a migrated task where more pushable tasks remain should be retried\n3) a migrated task where no more pushable tasks exist should exit\n\nThe original logic mushed (1) and (3) together, resulting in the\nsystem dequeuing a migrated task (against an unlocked foreign run-queue\nnonetheless).\n\nTo fix this, we get rid of the notion of \"paranoid\" and we support the\nthree unique conditions properly.  The paranoid feature is no longer\nrelevant with the new pushable logic (since pushable naturally limits\nthe loop) anyway, so lets just remove it.\n\nReported-By: Chirag Jog \u003cchirag@linux.vnet.ibm.com\u003e\nFound-by: Gilles Carry \u003cgilles.carry@bull.net\u003e\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "917b627d4d981dc614519d7b34ea31a976b14e12",
      "tree": "edb1744bd3f943ee79ee4f6c995c48a28421504c",
      "parents": [
        "4075134e40804821f90866d7de56802e4dcecb1e"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "message": "sched: create \"pushable_tasks\" list to limit pushing to one attempt\n\nThe RT scheduler employs a \"push/pull\" design to actively balance tasks\nwithin the system (on a per disjoint cpuset basis).  When a task is\nawoken, it is immediately determined if there are any lower priority\ncpus which should be preempted.  This is opposed to the way normal\nSCHED_OTHER tasks behave, which will wait for a periodic rebalancing\noperation to occur before spreading out load.\n\nWhen a particular RQ has more than 1 active RT task, it is said to\nbe in an \"overloaded\" state.  Once this occurs, the system enters\nthe active balancing mode, where it will try to push the task away,\nor persuade a different cpu to pull it over.  The system will stay\nin this state until the system falls back below the \u003c\u003d 1 queued RT\ntask per RQ.\n\nHowever, the current implementation suffers from a limitation in the\npush logic.  Once overloaded, all tasks (other than current) on the\nRQ are analyzed on every push operation, even if it was previously\nunpushable (due to affinity, etc).  Whats more, the operation stops\nat the first task that is unpushable and will not look at items\nlower in the queue.  This causes two problems:\n\n1) We can have the same tasks analyzed over and over again during each\n   push, which extends out the fast path in the scheduler for no\n   gain.  Consider a RQ that has dozens of tasks that are bound to a\n   core.  Each one of those tasks will be encountered and skipped\n   for each push operation while they are queued.\n\n2) There may be lower-priority tasks under the unpushable task that\n   could have been successfully pushed, but will never be considered\n   until either the unpushable task is cleared, or a pull operation\n   succeeds.  The net result is a potential latency source for mid\n   priority tasks.\n\nThis patch aims to rectify these two conditions by introducing a new\npriority sorted list: \"pushable_tasks\".  A task is added to the list\neach time a task is activated or preempted.  It is removed from the\nlist any time it is deactivated, made current, or fails to push.\n\nThis works because a task only needs to be attempted to push once.\nAfter an initial failure to push, the other cpus will eventually try to\npull the task when the conditions are proper.  This also solves the\nproblem that we don\u0027t completely analyze all tasks due to encountering\nan unpushable tasks.  Now every task will have a push attempted (when\nappropriate).\n\nThis reduces latency both by shorting the critical section of the\nrq-\u003elock for certain workloads, and by making sure the algorithm\nconsiders all eligible tasks in the system.\n\n[ rostedt: added a couple more BUG_ONs ]\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "967fc04671feea4dbf780c9e55a0bc8fcf68a14e",
      "tree": "223f2bb8c59138cc70fbb0e438ae27819ebe1a92",
      "parents": [
        "8f45e2b516201d1bf681e6026fa5276385def565"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:52 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:52 2008 -0500"
      },
      "message": "sched: add sched_class-\u003eneeds_post_schedule() member\n\nWe currently run class-\u003epost_schedule() outside of the rq-\u003elock, which\nmeans that we need to test for the need to post_schedule outside of\nthe lock to avoid a forced reacquistion.  This is currently not a problem\nas we only look at rq-\u003ert.overloaded.  However, we want to enhance this\ngoing forward to look at more state to reduce the need to post_schedule to\na bare minimum set.  Therefore, we introduce a new member-func called\nneeds_post_schedule() which tests for the post_schedule condtion without\nactually performing the work.  Therefore it is safe to call this\nfunction before the rq-\u003elock is released, because we are guaranteed not\nto drop the lock at an intermediate point (such as what post_schedule()\nmay do).\n\nWe will use this later in the series\n\n[ rostedt: removed paranoid BUG_ON ]\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "777c2f389e463428fd7e2871051a84d7fe84b172",
      "tree": "ba82f0105ba069ac6ba724f85f98144459e0c436",
      "parents": [
        "74ab8e4f6412c0b2d730fe5de28dc21de8b92c01"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "message": "sched: only try to push a task on wakeup if it is migratable\n\nThere is no sense in wasting time trying to push a task away that\ncannot move anywhere else.  We gain no benefit from trying to push\nother tasks at this point, so if the task being woken up is non\nmigratable, just skip the whole operation.  This reduces overhead\nin the wakeup path for certain tasks.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "74ab8e4f6412c0b2d730fe5de28dc21de8b92c01",
      "tree": "c1bce6a8e23fa58677de23989fa81bc1fcfc0118",
      "parents": [
        "a8728944efe23417e38bf22063f06d9d8ee21d59"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "message": "sched: use highest_prio.next to optimize pull operations\n\nWe currently take the rq-\u003elock for every cpu in an overload state during\npull_rt_tasks().  However, we now have enough information via the\nhighest_prio.[curr|next] fields to determine if there is any tasks of\ninterest to warrant the overhead of the rq-\u003elock, before we actually take\nit.  So we use this information to reduce lock contention during the\npull for the case where the source-rq doesnt have tasks that preempt\nthe current task.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "a8728944efe23417e38bf22063f06d9d8ee21d59",
      "tree": "225f453912a50a4baf0fdbc578c31bd23d4780f6",
      "parents": [
        "e864c499d9e57805ae1f9e7ea404dd223759cd53"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "message": "sched: use highest_prio.curr for pull threshold\n\nhighest_prio.curr is actually a more accurate way to keep track of\nthe pull_rt_task() threshold since it is always up to date, even\nif the \"next\" task migrates during double_lock.  Therefore, stop\nlooking at the \"next\" task object and simply use the highest_prio.curr.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "e864c499d9e57805ae1f9e7ea404dd223759cd53",
      "tree": "26dcc691f414c2d0eee026ea0f4d9e0d9e0475a2",
      "parents": [
        "4d9842776a23e52ec4c60e0a79f5e1bbe91e463e"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "message": "sched: track the next-highest priority on each runqueue\n\nWe will use this later in the series to reduce the amount of rq-lock\ncontention during a pull operation\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "4d9842776a23e52ec4c60e0a79f5e1bbe91e463e",
      "tree": "fe628d0453c757297a84d43134e6f89153662c41",
      "parents": [
        "6092848a2a23b660150a38bc06f59d75838d70c8"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "message": "sched: cleanup inc/dec_rt_tasks\n\nMove some common definitions up to the function prologe to simplify the\nbody logic.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "4e202284e6ac1695df3eb4a0e549ea78addfb663",
      "tree": "b455ebb51d9f94717f6fde06db6331cfe73e4714",
      "parents": [
        "826e08b0157c0ce8a80dfe3c0a6c5a1540dd0b1d",
        "80f40ee4a07530cc3acbc239a9299ec47025825b",
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 13:42:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 13:42:23 2008 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027; commit \u0027v2.6.28\u0027 into sched/core\n"
    },
    {
      "commit": "80f40ee4a07530cc3acbc239a9299ec47025825b",
      "tree": "3feb69ea882c314b518f53fd6eae9db634918003",
      "parents": [
        "1bda71282ded6a2e09a2db7c8884542fb46bfd4f"
      ],
      "author": {
        "name": "Bharata B Rao",
        "email": "bharata@linux.vnet.ibm.com",
        "time": "Mon Dec 15 11:56:48 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 21:39:14 2008 +0100"
      },
      "message": "sched: use RCU variant of list traversal in for_each_leaf_rt_rq()\n\nImpact: fix potential of rare crash\n\nfor_each_leaf_rt_rq() walks an RCU protected list (rq-\u003eleaf_rt_rq_list),\nbut doesn\u0027t use list_for_each_entry_rcu(). Fix this.\n\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45ab6b0c76d0e4cce5bd608ccf97b0f6b20f18df",
      "tree": "4d51c73533c386aee16fde1e74b5e3bc22eedc53",
      "parents": [
        "81444a799550214f549caf579cf65a0ca55e70b7",
        "d65bd5ecb2bd166cea4952a59b7e16cc3ad6ef6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 13:48:57 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 13:48:57 2008 +0100"
      },
      "message": "Merge branch \u0027sched/core\u0027 into cpus4096\n\nConflicts:\n\tinclude/linux/ftrace.h\n\tkernel/sched.c\n"
    },
    {
      "commit": "70574a996fc7a70c5586eb56bd92a544eccf18b6",
      "tree": "6c0fbb9a9e9b65817316d1765217478bb6c88cbf",
      "parents": [
        "f1860c34b3ed829ac774647f266abf1074cd58cd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Nov 28 22:08:00 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 20:11:15 2008 +0100"
      },
      "message": "sched: move double_unlock_balance() higher\n\nMove double_lock_balance()/double_unlock_balance() higher to fix the following\nwith gcc-3.4.6:\n\n   CC      kernel/sched.o\n In file included from kernel/sched.c:1605:\n kernel/sched_rt.c: In function `find_lock_lowest_rq\u0027:\n kernel/sched_rt.c:914: sorry, unimplemented: inlining failed in call to \u0027double_unlock_balance\u0027: function body not available\n kernel/sched_rt.c:1077: sorry, unimplemented: called from here\n make[2]: *** [kernel/sched.o] Error 1\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3d8cbdf8650f44d95333ca645d950832a0653f35",
      "tree": "ca87cd72ee7c7365a10224f4240e5eea41fab85f",
      "parents": [
        "bf4d83f66476086c6b50dc52aac00d71ad70494e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 09:58:41 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 07:58:28 2008 +0100"
      },
      "message": "sched: convert local_cpu_mask to cpumask_var_t, fix\n\nImpact: build fix for !CONFIG_SMP\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "96f874e26428ab5d2db681c100210c254775e154",
      "tree": "e18a6f0629ef17f2344f3691c8df4692ccb875fa",
      "parents": [
        "0e3900e6d3b04c44737ebc505604dcd8ed30e354"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:14 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:52:42 2008 +0100"
      },
      "message": "sched: convert remaining old-style cpumask operators\n\nImpact: Trivial API conversion\n\n  NR_CPUS -\u003e nr_cpu_ids\n  cpumask_t -\u003e struct cpumask\n  sizeof(cpumask_t) -\u003e cpumask_size()\n  cpumask_a \u003d cpumask_b -\u003e cpumask_copy(\u0026cpumask_a, \u0026cpumask_b)\n\n  cpu_set() -\u003e cpumask_set_cpu()\n  first_cpu() -\u003e cpumask_first()\n  cpumask_of_cpu() -\u003e cpumask_of()\n  cpus_* -\u003e cpumask_*\n\nThere are some FIXMEs where we all archs to complete infrastructure\n(patches have been sent):\n\n  cpu_coregroup_map -\u003e cpu_coregroup_mask\n  node_to_cpumask* -\u003e cpumask_of_node\n\nThere is also one FIXME where we pass an array of cpumasks to\npartition_sched_domains(): this implies knowing the definition of\n\u0027struct cpumask\u0027 and the size of a cpumask.  This will be fixed in a\nfuture patch.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0e3900e6d3b04c44737ebc505604dcd8ed30e354",
      "tree": "1c791c57282972db3181d4fb1e7c98c5948f96c2",
      "parents": [
        "24600ce89a819a8f2fb4fd69fd777218a82ade20"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:13 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:52:35 2008 +0100"
      },
      "message": "sched: convert local_cpu_mask to cpumask_var_t.\n\nImpact: (future) size reduction for large NR_CPUS.\n\nDynamically allocating cpumasks (when CONFIG_CPUMASK_OFFSTACK) saves\nspace for small nr_cpu_ids but big CONFIG_NR_CPUS.  cpumask_var_t\nis just a struct cpumask for !CONFIG_CPUMASK_OFFSTACK.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24600ce89a819a8f2fb4fd69fd777218a82ade20",
      "tree": "01a0e82bb6396b6f5de6300bd30d34e4fb0c76e7",
      "parents": [
        "68e74568fbe5854952355e942acca51f138096d9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:13 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:52:28 2008 +0100"
      },
      "message": "sched: convert check_preempt_equal_prio to cpumask_var_t.\n\nImpact: stack reduction for large NR_CPUS\n\nDynamically allocating cpumasks (when CONFIG_CPUMASK_OFFSTACK) saves\nstack space.\n\nWe simply return if the allocation fails: since we don\u0027t use it we\ncould just pass NULL to cpupri_find and have it handle that.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c6c4927b22a3514c6660f0e72c78716226bd3cc8",
      "tree": "ee7fc9031eb14ac1c9d2f0732950b4faae2b6245",
      "parents": [
        "6a7b3dc3440f7b5a9b67594af01ed562cdeb41e4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:05 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:51:18 2008 +0100"
      },
      "message": "sched: convert struct root_domain to cpumask_var_t.\n\nImpact: (future) size reduction for large NR_CPUS.\n\nDynamically allocating cpumasks (when CONFIG_CPUMASK_OFFSTACK) saves\nspace for small nr_cpu_ids but big CONFIG_NR_CPUS.  cpumask_var_t\nis just a struct cpumask for !CONFIG_CPUMASK_OFFSTACK.\n\ndef_root_domain is static, and so its masks are initialized with\nalloc_bootmem_cpumask_var.  After that, alloc_cpumask_var is used.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "758b2cdc6f6a22c702bd8f2344382fb1270b2161",
      "tree": "270aec3d0f6235c1519c16e8dc8148f195e133db",
      "parents": [
        "1e5ce4f4a755ee498bd9217dae26143afa0d8f31"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Nov 25 02:35:04 2008 +1030"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:50:45 2008 +0100"
      },
      "message": "sched: wrap sched_group and sched_domain cpumask accesses.\n\nImpact: trivial wrap of member accesses\n\nThis eases the transition in the next patch.\n\nWe also get rid of a temporary cpumask in find_idlest_cpu() thanks to\nfor_each_cpu_and, and sched_balance_self() due to getting weight before\nsetting sd to NULL.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf7f8690e864c6fe11e77202dd847fa60f483418",
      "tree": "9f0e3cca10a550698c3761c3ee5de6496ecf1e78",
      "parents": [
        "e113a745f693af196c8081b328bf42def086989b"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Wed Nov 05 18:57:14 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 22:12:09 2008 +0100"
      },
      "message": "sched, lockdep: inline double_unlock_balance()\n\nWe have a test case which measures the variation in the amount of time\nneeded to perform a fixed amount of work on the preempt_rt kernel. We\nstarted seeing deterioration in it\u0027s performance recently. The test\nshould never take more than 10 microseconds, but we started 5-10%\nfailure rate.\n\nUsing elimination method, we traced the problem to commit\n1b12bbc747560ea68bcc132c3d05699e52271da0 (lockdep: re-annotate\nscheduler runqueues).\n\nWhen LOCKDEP is disabled, this patch only adds an additional function\ncall to double_unlock_balance(). Hence I inlined double_unlock_balance()\nand the problem went away. Here is a patch to make this change.\n\nSigned-off-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": "e113a745f693af196c8081b328bf42def086989b",
      "tree": "70d0576dfebdd0207093372b70115776f03bc16e",
      "parents": [
        "45beca08dd8b6d6a65c5ffd730af2eac7a2c7a03"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Fri Oct 31 08:03:41 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 11:29:00 2008 +0100"
      },
      "message": "sched/rt: small optimization to update_curr_rt()\n\nImpact: micro-optimization to SCHED_FIFO/RR scheduling\n\nA very minor improvement, but might it be better to check sched_rt_runtime(rt_rq)\nbefore taking the rt_runtime_lock?\n\nPeter Zijlstra observes:\n\n\u003e Yes, I think its ok to do so.\n\u003e\n\u003e Like pointed out in the other thread, there are two races:\n\u003e\n\u003e  - sched_rt_runtime() going to RUNTIME_INF, and that will be handled\n\u003e    properly by sched_rt_runtime_exceeded()\n\u003e\n\u003e  - sched_rt_runtime() going to !RUNTIME_INF, and here we can miss an\n\u003e    accounting cycle, but I don\u0027t think that is something to worry too\n\u003e    much about.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n--\n\n kernel/sched_rt.c |    4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n"
    },
    {
      "commit": "8c82a17e9c924c0e9f13e75e4c2f6bca19a4b516",
      "tree": "d535f46a917e14e90deccb29ad00aac016ad18dd",
      "parents": [
        "4ce72a2c063a7fa8e42a9435440ae3364115a58d",
        "57f8f7b60db6f1ed2c6918ab9230c4623a9dbe37"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:48:46 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:48:46 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.28-rc1\u0027 into sched/urgent\n"
    },
    {
      "commit": "4ce72a2c063a7fa8e42a9435440ae3364115a58d",
      "tree": "427b25960945524a205c7d8ed20ed5f02325175e",
      "parents": [
        "0c4b83da58ec2e96ce9c44c211d6eac5f9dae478"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 22 15:25:26 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 22 10:01:52 2008 +0200"
      },
      "message": "sched: add CONFIG_SMP consistency\n\na patch from Henrik Austad did this:\n\n\u003e\u003e Do not declare select_task_rq as part of sched_class when CONFIG_SMP is\n\u003e\u003e not set.\n\nPeter observed:\n\n\u003e While a proper cleanup, could you do it by re-arranging the methods so\n\u003e as to not create an additional ifdef?\n\nDo not declare select_task_rq and some other methods as part of sched_class\nwhen CONFIG_SMP is not set.\n\nAlso gather those methods to avoid CONFIG_SMP mess.\n\nIdea-by: Henrik Austad \u003chenrik.austad@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Henrik Austad \u003chenrik@austad.us\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c465a76af658b443075d6efee1c3131257643020",
      "tree": "63c28c9fab02dedec7f03cee4a3ef7fe4dc1c072",
      "parents": [
        "2d42244ae71d6c7b0884b5664cf2eda30fb2ae68",
        "1b02469088ac7a13d7e622b618b7410d0f1ce5ec",
        "fb02fbc14d17837b4b7b02dbb36142c16a7bf208",
        "d40e944c25fb4642adb2a4c580a48218a9f3f824",
        "1508487e7f16d992ad23cabd3712563ff912f413",
        "322acf6585f3c4e82ee32a246b0483ca0f6ad3f4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/debug\u0027 into v28-timers-for-linus\n"
    },
    {
      "commit": "f6121f4f8708195e88cbdf8dd8d171b226b3f858",
      "tree": "81d44c76e74e8ebdf6fdf7469b4825ee18f8e864",
      "parents": [
        "64b9e0294d24a4204232e13e01630b0690e48d61"
      ],
      "author": {
        "name": "Dario Faggioli",
        "email": "raistlin@linux.it",
        "time": "Fri Oct 03 17:40:46 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 04 14:31:54 2008 +0200"
      },
      "message": "sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq\n\nWhile working on the new version of the code for SCHED_SPORADIC I\nnoticed something strange in the present throttling mechanism. More\nspecifically in the throttling timer handler in sched_rt.c\n(do_sched_rt_period_timer()) and in rt_rq_enqueue().\n\nThe problem is that, when unthrottling a runqueue, rt_rq_enqueue() only\nasks for rescheduling if the runqueue has a sched_entity associated to\nit (i.e., rt_rq-\u003ert_se !\u003d NULL).\nNow, if the runqueue is the root rq (which has a rt_se \u003d NULL)\nrescheduling does not take place, and it is delayed to some undefined\ninstant in the future.\n\nThis imply some random bandwidth usage by the RT tasks under throttling.\nFor instance, setting rt_runtime_us/rt_period_us \u003d 950ms/1000ms an RT\ntask will get less than 95%. In our tests we got something varying\nbetween 70% to 95%.\nUsing smaller time values, e.g., 95ms/100ms, things are even worse, and\nI can see values also going down to 20-25%!!\n\nThe tests we performed are simply running \u0027yes\u0027 as a SCHED_FIFO task,\nand checking the CPU usage with top, but we can investigate thoroughly\nif you think it is needed.\n\nThings go much better, for us, with the attached patch... Don\u0027t know if\nit is the best approach, but it solved the issue for us.\n\nSigned-off-by: Dario Faggioli \u003craistlin@linux.it\u003e\nSigned-off-by: Michael Trimarchi \u003ctrimarchimichael@yahoo.it\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "78333cdd0e472180743d35988e576d6ecc6f6ddb"
}
