)]}'
{
  "log": [
    {
      "commit": "d652e1eb8e7b739fccbfb503a3da3e9f640fbf3d",
      "tree": "55ab77bad0cbb045eac0b84b80d63f88f1ae09e6",
      "parents": [
        "8f55cea410dbc56114bb71a3742032070c8108d0",
        "77852fea6e2442a0e654a9292060489895de18c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 19 18:19:48 2013 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"Main changes:\n\n   - scheduler side full-dynticks (user-space execution is undisturbed\n     and receives no timer IRQs) preparation changes that convert the\n     cputime accounting code to be full-dynticks ready, from Frederic\n     Weisbecker.\n\n   - Initial sched.h split-up changes, by Clark Williams\n\n   - select_idle_sibling() performance improvement by Mike Galbraith:\n\n        \" 1 tbench pair (worst case) in a 10 core + SMT package:\n\n          pre   15.22 MB/sec 1 procs\n          post 252.01 MB/sec 1 procs \"\n\n  - sched_rr_get_interval() ABI fix/change.  We think this detail is not\n    used by apps (so it\u0027s not an ABI in practice), but lets keep it\n    under observation.\n\n  - misc RT scheduling cleanups, optimizations\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)\n  sched/rt: Add \u003clinux/sched/rt.h\u003e header to \u003clinux/init_task.h\u003e\n  cputime: Remove irqsave from seqlock readers\n  sched, powerpc: Fix sched.h split-up build failure\n  cputime: Restore CPU_ACCOUNTING config defaults for PPC64\n  sched/rt: Move rt specific bits into new header file\n  sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice\n  sched: Move sched.h sysctl bits into separate header\n  sched: Fix signedness bug in yield_to()\n  sched: Fix select_idle_sibling() bouncing cow syndrome\n  sched/rt: Further simplify pick_rt_task()\n  sched/rt: Do not account zero delta_exec in update_curr_rt()\n  cputime: Safely read cputime of full dynticks CPUs\n  kvm: Prepare to add generic guest entry/exit callbacks\n  cputime: Use accessors to read task cputime stats\n  cputime: Allow dynamic switch between tick/virtual based cputime accounting\n  cputime: Generic on-demand virtual cputime accounting\n  cputime: Move default nsecs_to_cputime() to jiffies based cputime file\n  cputime: Librarize per nsecs resolution cputime definitions\n  cputime: Avoid multiplication overflow on utime scaling\n  context_tracking: Export context state for generic vtime\n  ...\n\nFix up conflict in kernel/context_tracking.c due to comment additions.\n"
    },
    {
      "commit": "ce0dbbbb30aee6a835511d5be446462388ba9eee",
      "tree": "c3d4d6f64a0fe7eec9283f4413d111a8d37d7053",
      "parents": [
        "cf4aebc292fac7f34f8345664320e9d4a42ca76c"
      ],
      "author": {
        "name": "Clark Williams",
        "email": "williams@redhat.com",
        "time": "Thu Feb 07 09:47:04 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Feb 07 20:51:07 2013 +0100"
      },
      "message": "sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice\n\nAdd a /proc/sys/kernel scheduler knob named\nsched_rr_timeslice_ms that allows global changing of the\nSCHED_RR timeslice value. User visable value is in milliseconds\nbut is stored as jiffies.  Setting to 0 (zero) resets to the\ndefault (currently 100ms).\n\nSigned-off-by: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20130207094704.13751796@riff.lan\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "60334caf37dc7c59120b21faa625534a6fffead0",
      "tree": "be8e95b454f5e24334a9b8e280ea4fe25f330d61",
      "parents": [
        "fc79e240be5aa379dd36a62158be5a5ee0e4aec7"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Thu Jan 31 18:56:17 2013 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Feb 03 19:54:58 2013 +0100"
      },
      "message": "sched/rt: Further simplify pick_rt_task()\n\nFunction next_prio() has been removed and pull_rt_task() is the\nonly user of pick_next_highest_task_rt() at the moment.\n\npull_rt_task is not interested in p-\u003enr_cpus_allowed, its only\ninterest is the fact that cpu is allowed to execute p. If\nnr_cpus_allowed \u003d\u003d 1, cpu !\u003d task_cpu(p) and cpu is allowed then\nit means that task p is in the middle of the migration\ntechniques; the task waits until it is moved by migration\nthread. So, lets pull it earlier.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: linux-rt-users \u003clinux-rt-users@vger.kernel.org\u003e\nLink: http://lkml.kernel.org/r/70871359644177@web16d.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "fc79e240be5aa379dd36a62158be5a5ee0e4aec7",
      "tree": "84e29ffa57509f586aff6a31ed0b0461f830fdaa",
      "parents": [
        "62188451f0d63add7ad0cd2a1ae269d600c1663d"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Wed Jan 30 16:50:36 2013 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 31 10:31:13 2013 +0100"
      },
      "message": "sched/rt: Do not account zero delta_exec in update_curr_rt()\n\nThere are several places of consecutive calls of\ndequeue_task_rt() and put_prev_task_rt() in the scheduler.\nFor example, function rt_mutex_setprio() does it.\n\nThe both calls lead to update_curr_rt(), the second of it\nreceives zeroed delta_exec. The only effective action in this\ncase is call of sched_rt_avg_update(), which can change\nrq-\u003eage_stamp and rq-\u003ert_avg. But it is possible in case of\n\"\"floating\"\" rq-\u003eclock. This fact is not reasonable to be\naccounted. Another actions do nothing.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: linux-rt-users \u003clinux-rt-users@vger.kernel.org\u003e\nLink: http://lkml.kernel.org/r/931541359550236@web1g.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "57d2aa00dcec67afa52478730f2b524521af14fb",
      "tree": "ee5ba553c8d22aaeb5c4ecf946d298ddb7d63fa0",
      "parents": [
        "16c8f1c72ece3871a6c93003cd888fc2d003a7eb"
      ],
      "author": {
        "name": "Ying Xue",
        "email": "ying.xue@windriver.com",
        "time": "Tue Jul 17 15:03:43 2012 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Jan 25 08:31:54 2013 +0100"
      },
      "message": "sched/rt: Avoid updating RT entry timeout twice within one tick period\n\nThe issue below was found in 2.6.34-rt rather than mainline rt\nkernel, but the issue still exists upstream as well.\n\nSo please let me describe how it was noticed on 2.6.34-rt:\n\nOn this version, each softirq has its own thread, it means there\nis at least one RT FIFO task per cpu. The priority of these\ntasks is set to 49 by default. If user launches an RT FIFO task\nwith priority lower than 49 of softirq RT tasks, it\u0027s possible\nthere are two RT FIFO tasks enqueued one cpu runqueue at one\nmoment. By current strategy of balancing RT tasks, when it comes\nto RT tasks, we really need to put them off to a CPU that they\ncan run on as soon as possible. Even if it means a bit of cache\nline flushing, we want RT tasks to be run with the least latency.\n\nWhen the user RT FIFO task which just launched before is\nrunning, the sched timer tick of the current cpu happens. In this\ntick period, the timeout value of the user RT task will be\nupdated once. Subsequently, we try to wake up one softirq RT\ntask on its local cpu. As the priority of current user RT task\nis lower than the softirq RT task, the current task will be\npreempted by the higher priority softirq RT task. Before\npreemption, we check to see if current can readily move to a\ndifferent cpu. If so, we will reschedule to allow the RT push logic\nto try to move current somewhere else. Whenever the woken\nsoftirq RT task runs, it first tries to migrate the user FIFO RT\ntask over to a cpu that is running a task of lesser priority. If\nmigration is done, it will send a reschedule request to the found\ncpu by IPI interrupt. Once the target cpu responds the IPI\ninterrupt, it will pick the migrated user RT task to preempt its\ncurrent task. When the user RT task is running on the new cpu,\nthe sched timer tick of the cpu fires. So it will tick the user\nRT task again. This also means the RT task timeout value will be\nupdated again. As the migration may be done in one tick period,\nit means the user RT task timeout value will be updated twice\nwithin one tick.\n\nIf we set a limit on the amount of cpu time for the user RT task\nby setrlimit(RLIMIT_RTTIME), the SIGXCPU signal should be posted\nupon reaching the soft limit.\n\nBut exactly when the SIGXCPU signal should be sent depends on the\nRT task timeout value. In fact the timeout mechanism of sending\nthe SIGXCPU signal assumes the RT task timeout is increased once\nevery tick.\n\nHowever, currently the timeout value may be added twice per\ntick. So it results in the SIGXCPU signal being sent earlier\nthan expected.\n\nTo solve this issue, we prevent the timeout value from increasing\ntwice within one tick time by remembering the jiffies value of\nlast updating the timeout. As long as the RT task\u0027s jiffies is\ndifferent with the global jiffies value, we allow its timeout to\nbe updated.\n\nSigned-off-by: Ying Xue \u003cying.xue@windriver.com\u003e\nSigned-off-by: Fan Du \u003cfan.du@windriver.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1342508623-2887-1-git-send-email-ying.xue@windriver.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "aa7f67304d1a03180f463258aa6f15a8b434e77d",
      "tree": "14c1f290447fb84483c0eeed81806835a07d73f8",
      "parents": [
        "ff7532ca2c631e7e96dcd305a967b610259dc0ea"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Mon Jan 14 11:55:31 2013 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Jan 25 08:20:47 2013 +0100"
      },
      "message": "sched/rt: Use root_domain of rt_rq not current processor\n\nWhen the system has multiple domains do_sched_rt_period_timer()\ncan run on any CPU and may iterate over all rt_rq in\ncpu_online_mask.  This means when balance_runtime() is run for a\ngiven rt_rq that rt_rq may be in a different rd than the current\nprocessor.  Thus if we use smp_processor_id() to get rd in\ndo_balance_runtime() we may borrow runtime from a rt_rq that is\nnot part of our rd.\n\nThis changes do_balance_runtime to get the rd from the passed in\nrt_rq ensuring that we borrow runtime only from the correct rd\nfor the given rt_rq.\n\nThis fixes a BUG at kernel/sched/rt.c:687! in __disable_runtime\nwhen we try reclaim runtime lent to other rt_rq but runtime has\nbeen lent to a rt_rq in another rd.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Mike Galbraith \u003cbitbucket@online.de\u003e\nCc: peterz@infradead.org\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1358186131-29494-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "1158ddb55416855fd17abe3214298f736f00426a",
      "tree": "493bc349d3e2b33b6c851ff72b2b15b7cc683ee8",
      "parents": [
        "a59f4e079d19464eebb9b06513a1d4f55fdae5ba"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Fri Nov 23 00:02:15 2012 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jan 24 17:14:30 2013 +0100"
      },
      "message": "sched/rt: Add reschedule check to switched_from_rt()\n\nReschedule rq-\u003ecurr if the first RT task has just been\npulled to the rq.\n\nSigned-off-by: Kirill V Tkhai \u003ctkhai@yandex.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tkhai Kirill \u003ctkhai@yandex.ru\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/118761353614535@web28f.yandex.ru\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f3e947867478af9a12b9956bcd000ac7613a8a95",
      "tree": "63fabb89439447e0f72c465e8b8d0852e9deff08",
      "parents": [
        "5ed4f1d96deee82ee92cd1ac1e0108c27e80e9b0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 12 11:22:00 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 16:52:04 2012 +0200"
      },
      "message": "sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW\n\nNow that the last architecture to use this has stopped doing so (ARM,\nthanks Catalin!) we can remove this complexity from the scheduler\ncore.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nLink: http://lkml.kernel.org/n/tip-g9p2a1w81xxbrze25v9zpzbf@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "a4c96ae319b8047f62dedbe1eac79e321c185749",
      "tree": "e93b18f6ca2d2a734962ee880d8e2cb7bd1e42b0",
      "parents": [
        "749c8814f08f12baa4a9c2812a7c6ede7d69507d"
      ],
      "author": {
        "name": "Peter Boonstoppel",
        "email": "pboonstoppel@nvidia.com",
        "time": "Thu Aug 09 15:34:47 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Sep 04 14:30:30 2012 +0200"
      },
      "message": "sched: Unthrottle rt runqueues in __disable_runtime()\n\nmigrate_tasks() uses _pick_next_task_rt() to get tasks from the\nreal-time runqueues to be migrated. When rt_rq is throttled\n_pick_next_task_rt() won\u0027t return anything, in which case\nmigrate_tasks() can\u0027t move all threads over and gets stuck in an\ninfinite loop.\n\nInstead unthrottle rt runqueues before migrating tasks.\n\nAdditionally: move unthrottle_offline_cfs_rqs() to rq_offline_fair()\n\nSigned-off-by: Peter Boonstoppel \u003cpboonstoppel@nvidia.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nLink: http://lkml.kernel.org/r/5FBF8E85CA34454794F0F7ECBA79798F379D3648B7@HQMAIL04.nvidia.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "e221d028bb08b47e624c5f0a31732c642db9d19a",
      "tree": "0bfe6324f58c7c27fcd7b3dafd749903ab598ecc",
      "parents": [
        "35cf4e50b16331def6cfcbee11e49270b6db07f5"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Aug 07 10:02:38 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 13 18:41:55 2012 +0200"
      },
      "message": "sched,rt: fix isolated CPUs leaving root_task_group indefinitely throttled\n\nRoot task group bandwidth replenishment must service all CPUs, regardless of\nwhere the timer was last started, and regardless of the isolation mechanism,\nlest \u0027Quoth the Raven, \"Nevermore\"\u0027 become rt scheduling policy.\n\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/1344326558.6968.25.camel@marge.simpson.net\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7f1b43936f0ecad14770634c021cf4a929aec74d",
      "tree": "ea200fcf70af41839e049c59a2dc922407e7495b",
      "parents": [
        "10717dcde10d09f9fcee53a12a4236af1a82b484"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 17 21:19:46 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Jun 06 16:52:26 2012 +0200"
      },
      "message": "sched/rt: Fix lockdep annotation within find_lock_lowest_rq()\n\nRoland Dreier reported spurious, hard to trigger lockdep warnings\nwithin the scheduler - without any real lockup.\n\nThis bit gives us the right clue:\n\n\u003e [89945.640512]  [\u003cffffffff8103fa1a\u003e] double_lock_balance+0x5a/0x90\n\u003e [89945.640568]  [\u003cffffffff8104c546\u003e] push_rt_task+0xc6/0x290\n\nif you look at that code you\u0027ll find the double_lock_balance() in\nquestion is the one in find_lock_lowest_rq() [yay for inlining].\n\nNow find_lock_lowest_rq() has a bug.. it fails to use\ndouble_unlock_balance() in one exit path, if this results in a retry in\npush_rt_task() we\u0027ll call double_lock_balance() again, at which point\nwe\u0027ll run into said lockdep confusion.\n\nReported-by: Roland Dreier \u003croland@kernel.org\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1337282386.4281.77.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "454c79999f7eaedcdf4c15c449e43902980cbdf5",
      "tree": "0da7f5fe6328283a2bf36648bc04e74028d5bfd8",
      "parents": [
        "29baa7478ba47d746e3625c91d3b2afbf46b4312"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 16 21:34:23 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 14:02:25 2012 +0200"
      },
      "message": "sched/rt: Fix SCHED_RR across cgroups\n\ntask_tick_rt() has an optimization to only reschedule SCHED_RR tasks\nif they were the only element on their rq.  However, with cgroups\na SCHED_RR task could be the only element on its per-cgroup rq but\nstill be competing with other SCHED_RR tasks in its parent\u0027s\ncgroup.  In this case, the SCHED_RR task in the child cgroup would\nnever yield at the end of its timeslice.  If the child cgroup\nrt_runtime_us was the same as the parent cgroup rt_runtime_us,\nthe task in the parent cgroup would starve completely.\n\nModify task_tick_rt() to check that the task is the only task on its\nrq, and that the each of the scheduling entities of its ancestors\nis also the only entity on its rq.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1337229266-15798-1-git-send-email-ccross@android.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "29baa7478ba47d746e3625c91d3b2afbf46b4312",
      "tree": "a902e53baab64d89c07561694d171c4f8f4d1843",
      "parents": [
        "b654f7de41b0e3903ee2b51d3b8db77fe52ce728"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Apr 23 12:11:21 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed May 30 14:02:25 2012 +0200"
      },
      "message": "sched: Move nr_cpus_allowed out of \u0027struct sched_rt_entity\u0027\n\nSince nr_cpus_allowed is used outside of sched/rt.c and wants to be\nused outside of there more, move it to a more natural site.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-kr61f02y9brwzkh6x53pdptm@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "4cbb62148cd686c2d3618861deb15eeb83744405",
      "tree": "ae20584f1375ee80a419d0cc60a7cde8c5cf9cea",
      "parents": [
        "668ce0ac707719d866af7e432e518af7b4c575ad",
        "8d3d5ada56a692d36a9d55858881147ec10cfeb6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Apr 14 15:12:00 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Apr 14 15:12:04 2012 +0200"
      },
      "message": "Merge branch \u0027tip/sched/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into sched/core\n\nPull a scheduler optimization commit from Steven Rostedt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "8d3d5ada56a692d36a9d55858881147ec10cfeb6",
      "tree": "ec5d41a8d596f247afb261d02d47485586098bdb",
      "parents": [
        "600e145882802d6ccbfe2c4aea243d97caeb91a9"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Wed Apr 11 09:06:04 2012 +0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Apr 12 16:59:37 2012 -0400"
      },
      "message": "sched_rt: Avoid unnecessary dequeue and enqueue of pushable tasks in set_cpus_allowed_rt()\n\nMigration status depends on a difference of weight from 0 and 1.\nIf weight \u003e 1 (\u003c\u003d 1) and old weight \u003c\u003d 1 (\u003e 1) then task becomes\npushable (or not pushable). We are not insterested in its exact\nvalues, is it 3 or 4, for example.\nNow if we are changing affinity from a set of 3 cpus to a set of 4, the-\ntask will be dequeued and enqueued sequentially without important\ndifference in comparison with initial state. The only difference is in\ninternal representation of plist queue of pushable tasks and the fact\nthat the task may won\u0027t be the first in a sequence of the same priority\ntasks. But it seems to me it gives nothing.\n\nLink: http://lkml.kernel.org/r/273741334120764@web83.yandex.ru\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Tkhai Kirill \u003ctkhai@yandex.ru\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1b028abc779b67b699daff55e27d2432f8d92666",
      "tree": "0b6deda71cb6ee5a17773716912665b0ad8ddabc",
      "parents": [
        "2baab4e90495ebc9826c93f79d74d6e60a828d24"
      ],
      "author": {
        "name": "Michael J Wang",
        "email": "mjwang@broadcom.com",
        "time": "Mon Mar 19 22:26:19 2012 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Mar 27 14:52:12 2012 +0200"
      },
      "message": "sched/rt: Improve pick_next_highest_task_rt()\n\nAvoid extra work by continuing on to the next rt_rq if the highest\nprio task in current rt_rq is the same priority as our candidate\ntask.\n\nMore detailed explanation:  if next is not NULL, then we have found a\ncandidate task, and its priority is next-\u003eprio.  Now we are looking\nfor an even higher priority task in the other rt_rq\u0027s.  idx is the\nhighest priority in the current candidate rt_rq.  In the current 3.3\ncode, if idx is equal to next-\u003eprio, we would start scanning the tasks\nin that rt_rq and replace the current candidate task with a task from\nthat rt_rq.  But the new task would only have a priority that is equal\nto our previous candidate task, so we have not advanced our goal of\nfinding a higher prio task.  So we should avoid the extra work by\ncontinuing on to the next rt_rq if idx is equal to next-\u003eprio.\n\nSigned-off-by: Michael J Wang \u003cmjwang@broadcom.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/2EF88150C0EF2C43A218742ED384C1BC0FC83D6B@IRVEXCHMB08.corp.ad.broadcom.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "3ccf3e8306156a28213adc720aba807e9a901ad5",
      "tree": "5b9db344b702299ea7eb53fbff3d0d74707d40ec",
      "parents": [
        "554cecaf733623b327eef9652b65965eb1081b81"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 27 10:47:00 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 12 20:43:16 2012 +0100"
      },
      "message": "printk/sched: Introduce special printk_sched() for those awkward moments\n\nThere\u0027s a few awkward printk()s inside of scheduler guts that people\nprefer to keep but really are rather deadlock prone. Fudge around it\nby storing the text in a per-cpu buffer and poll it using the existing\nprintk_tick() handler.\n\nThis will drop output when its more frequent than once a tick, however\nonly the affinity thing could possible go that fast and for that just\none should suffice to notify the admin he\u0027s done something silly..\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-wua3lmkt3dg8nfts66o6brne@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7abc63b1bd412f7655b62ef3e35c3c11c5134636",
      "tree": "c2a18d2b57d71d124ddb280d396df94b7110448f",
      "parents": [
        "42c62a589f1ccbf38a02cb732231f9c2fccc5ab0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Oct 18 22:03:48 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:28:02 2012 +0100"
      },
      "message": "sched/rt: Do not throttle when PI boosting\n\nWhen a runqueue has rt_runtime_us \u003d 0 then the only way it can\naccumulate rt_time is via PI boosting. That causes the runqueue\nto be throttled and replenishing does not change anything due to\nrt_runtime_us \u003d 0. So avoid that situation by clearing rt_time and\nskip the throttling alltogether.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n[ Changelog ]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/n/tip-7x70cypsotjb4jvcor3edctk@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "42c62a589f1ccbf38a02cb732231f9c2fccc5ab0",
      "tree": "80ba018cd3b581668f9c8dc75d52f9c2a9ee9f54",
      "parents": [
        "7e4d960993331e92567f0180e45322a93e6780ba"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Oct 18 22:03:48 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 01 10:28:01 2012 +0100"
      },
      "message": "sched/rt: Keep period timer ticking when rt throttling is active\n\nWhen a runqueue is throttled we cannot disable the period timer\nbecause that timer is the only way to undo the throttling.\n\nWe got stale throttling entries when a rq was throttled and then the\nglobal sysctl was disabled, which stopped the timer.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n[ Added changelog ]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/n/tip-nuj34q52p6ro7szapuz84i0v@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "de5bdff7a72acc281219be2b8edeeca1fd81c542",
      "tree": "6a528beb1852e2fd7d444b47e8b4cc6e6be31108",
      "parents": [
        "62f6536a630affe3176deb48554d27ee58b65077"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Thu Feb 16 14:52:21 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 12:28:29 2012 +0100"
      },
      "message": "sched: Make initial SCHED_RR timeslace DEF_TIMESLICE\n\nCurrent the initial SCHED_RR timeslice of init_task is HZ, which means\n1s, and is not same as the default SCHED_RR timeslice DEF_TIMESLICE.\n\nChange that initial timeslice to the DEF_TIMESLICE.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\n[ s/DEF_TIMESLICE/RR_TIMESLICE/g ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4F3C9995.3010800@ct.jp.nec.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb297a3e433dbdcf7ad81e0564e7b804c941ff0d",
      "tree": "1b6dde74b50fa074e7eec8bd6ef5adacff9b6ce1",
      "parents": [
        "b5740f4b2cb3503b436925eb2242bc3d75cd3dfe"
      ],
      "author": {
        "name": "Chanho Min",
        "email": "chanho0207@gmail.com",
        "time": "Thu Jan 05 20:00:19 2012 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 27 12:49:41 2012 +0100"
      },
      "message": "sched/rt: Fix task stack corruption under __ARCH_WANT_INTERRUPTS_ON_CTXSW\n\nThis issue happens under the following conditions:\n\n 1. preemption is off\n 2. __ARCH_WANT_INTERRUPTS_ON_CTXSW is defined\n 3. RT scheduling class\n 4. SMP system\n\nSequence is as follows:\n\n 1.suppose current task is A. start schedule()\n 2.task A is enqueued pushable task at the entry of schedule()\n   __schedule\n    prev \u003d rq-\u003ecurr;\n    ...\n    put_prev_task\n     put_prev_task_rt\n      enqueue_pushable_task\n 4.pick the task B as next task.\n   next \u003d pick_next_task(rq);\n 3.rq-\u003ecurr set to task B and context_switch is started.\n   rq-\u003ecurr \u003d next;\n 4.At the entry of context_swtich, release this cpu\u0027s rq-\u003elock.\n   context_switch\n    prepare_task_switch\n     prepare_lock_switch\n      raw_spin_unlock_irq(\u0026rq-\u003elock);\n 5.Shortly after rq-\u003elock is released, interrupt is occurred and start IRQ context\n 6.try_to_wake_up() which called by ISR acquires rq-\u003elock\n    try_to_wake_up\n     ttwu_remote\n      rq \u003d __task_rq_lock(p)\n      ttwu_do_wakeup(rq, p, wake_flags);\n        task_woken_rt\n 7.push_rt_task picks the task A which is enqueued before.\n   task_woken_rt\n    push_rt_tasks(rq)\n     next_task \u003d pick_next_pushable_task(rq)\n 8.At find_lock_lowest_rq(), If double_lock_balance() returns 0,\n   lowest_rq can be the remote rq.\n  (But,If preemption is on, double_lock_balance always return 1 and it\n   does\u0027t happen.)\n   push_rt_task\n    find_lock_lowest_rq\n     if (double_lock_balance(rq, lowest_rq))..\n 9.find_lock_lowest_rq return the available rq. task A is migrated to\n   the remote cpu/rq.\n   push_rt_task\n    ...\n    deactivate_task(rq, next_task, 0);\n    set_task_cpu(next_task, lowest_rq-\u003ecpu);\n    activate_task(lowest_rq, next_task, 0);\n 10. But, task A is on irq context at this cpu.\n     So, task A is scheduled by two cpus at the same time until restore from IRQ.\n     Task A\u0027s stack is corrupted.\n\nTo fix it, don\u0027t migrate an RT task if it\u0027s still running.\n\nSigned-off-by: Chanho Min \u003cchanho.min@lge.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/CAOAMb1BHA\u003d5fm7KTewYyke6u-8DP0iUuJMpgQw54vNeXFsGpoQ@mail.gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5b680fd61388abb9059fbc8e7a2f60f602bfce15",
      "tree": "9626e2d0f20d2eebcc415b5b29401890da7a6448",
      "parents": [
        "4d78a2239e393f09e0964a2f8da394cc91d75155"
      ],
      "author": {
        "name": "Shan Hai",
        "email": "haishan.bai@gmail.com",
        "time": "Tue Nov 29 11:03:56 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:28 2011 +0100"
      },
      "message": "sched/rt: Code cleanup, remove a redundant function call\n\nThe second call to sched_rt_period() is redundant, because the value of the\nrt_runtime was already read and it was protected by the -\u003ert_runtime_lock.\n\nSigned-off-by: Shan Hai \u003chaishan.bai@gmail.com\u003e\nReviewed-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1322535836-13590-2-git-send-email-haishan.bai@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "76854c7e8f3f4172fef091e78d88b3b751463ac6",
      "tree": "0560b17aaff5394ab93f86e08ec85e02b9de6aea",
      "parents": [
        "77e81365e0b7d7479fc444a21cea0cd4def70b45"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Tue Nov 22 15:18:24 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:51:26 2011 +0100"
      },
      "message": "sched: Use rt.nr_cpus_allowed to recover select_task_rq() cycles\n\nrt.nr_cpus_allowed is always available, use it to bail from select_task_rq()\nwhen only one cpu can be used, and saves some cycles for pinned tasks.\n\nSee the line marked with \u0027*\u0027 below:\n\n  # taskset -c 3 pipe-test\n\n   PerfTop:     997 irqs/sec  kernel:89.5%  exact:  0.0% [1000Hz cycles],  (all, CPU: 3)\n------------------------------------------------------------------------------------------------\n\n             Virgin                                    Patched\n             samples  pcnt function                    samples  pcnt function\n             _______ _____ ___________________________ _______ _____ ___________________________\n\n             2880.00 10.2% __schedule                  3136.00 11.3% __schedule\n             1634.00  5.8% pipe_read                   1615.00  5.8% pipe_read\n             1458.00  5.2% system_call                 1534.00  5.5% system_call\n             1382.00  4.9% _raw_spin_lock_irqsave      1412.00  5.1% _raw_spin_lock_irqsave\n             1202.00  4.3% pipe_write                  1255.00  4.5% copy_user_generic_string\n             1164.00  4.1% copy_user_generic_string    1241.00  4.5% __switch_to\n             1097.00  3.9% __switch_to                  929.00  3.3% mutex_lock\n              872.00  3.1% mutex_lock                   846.00  3.0% mutex_unlock\n              687.00  2.4% mutex_unlock                 804.00  2.9% pipe_write\n              682.00  2.4% native_sched_clock           713.00  2.6% native_sched_clock\n              643.00  2.3% system_call_after_swapgs     653.00  2.3% _raw_spin_unlock_irqrestore\n              617.00  2.2% sched_clock_local            633.00  2.3% fsnotify\n              612.00  2.2% fsnotify                     605.00  2.2% sched_clock_local\n              596.00  2.1% _raw_spin_unlock_irqrestore  593.00  2.1% system_call_after_swapgs\n              542.00  1.9% sysret_check                 559.00  2.0% sysret_check\n              467.00  1.7% fget_light                   472.00  1.7% fget_light\n              462.00  1.6% finish_task_switch           461.00  1.7% finish_task_switch\n              437.00  1.5% vfs_write                    442.00  1.6% vfs_write\n              431.00  1.5% do_sync_write                428.00  1.5% do_sync_write\n*             413.00  1.5% select_task_rq_fair          404.00  1.5% _raw_spin_lock_irq\n              386.00  1.4% update_curr                  402.00  1.4% update_curr\n              385.00  1.4% rw_verify_area               389.00  1.4% do_sync_read\n              377.00  1.3% _raw_spin_lock_irq           378.00  1.4% vfs_read\n              369.00  1.3% do_sync_read                 340.00  1.2% pipe_iov_copy_from_user\n              360.00  1.3% vfs_read                     316.00  1.1% __wake_up_sync_key\n              342.00  1.2% hrtick_start_fair            313.00  1.1% __wake_up_common\n\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/1321971504.6855.15.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "391e43da797a96aeb65410281891f6d0b0e9611c",
      "tree": "0ce6784525a5a8f75b377170cf1a7d60abccea29",
      "parents": [
        "029632fbb7b7c9d85063cc9eb470de6c54873df3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 15 17:14:39 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 17 12:20:22 2011 +0100"
      },
      "message": "sched: Move all scheduler bits into kernel/sched/\n\nThere\u0027s too many sched*.[ch] files in kernel/, give them their own\ndirectory.\n\n(No code changed, other than Makefile glue added.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "029632fbb7b7c9d85063cc9eb470de6c54873df3",
      "tree": "511303f0fa32f997c4b2f68364b032555b6a642e",
      "parents": [
        "60686317da05049385eae86e44c710cde535f95f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 25 10:00:11 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 17 12:20:19 2011 +0100"
      },
      "message": "sched: Make separate sched*.c translation units\n\nSince once needs to do something at conferences and fixing compile\nwarnings doesn\u0027t actually require much if any attention I decided\nto break up the sched.c #include \"*.c\" fest.\n\nThis further modularizes the scheduler code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-x0fcd3mnp8f9c99grcpewmhi@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60686317da05049385eae86e44c710cde535f95f",
      "tree": "2fa1ef4ae39cc9f5d0f873b6969b17ad9da69fae",
      "parents": [
        "a3e5d1091c1298ded486aba87c22fe90cb55ea6c"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sat Nov 12 18:07:57 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 16 08:48:27 2011 +0100"
      },
      "message": "sched: Fix comment for requeue_rt_entity\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1321117677-3282-1-git-send-email-richard@nod.at\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4a6184ce7a48c478dee0d8a9ed74c1fa35161858",
      "tree": "4b4b19673ade197de17614df11a2825410ca7baf",
      "parents": [
        "c6dc7f055d333ef35f397b8d7c3abcd1918bf8cb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 06 22:39:14 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 14 12:50:40 2011 +0100"
      },
      "message": "sched, rt: Provide means of disabling cross-cpu bandwidth sharing\n\nNormally the RT bandwidth scheme will share bandwidth across the\nentire root_domain. However sometimes its convenient to disable this\nsharing for debug purposes. Provide a simple feature switch to this\nend.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "0a6d4e1dc9154c4376358663d74060d1e33d203e"
}
