)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "0a6d4e1dc9154c4376358663d74060d1e33d203e",
      "tree": "5e0b72984d249bc215a6cd52b12e7b1d27abc852",
      "parents": [
        "c59765042f53a79a7a65585042ff463b69cb248c",
        "1563513d34ed4b12ef32bc2adde4a53ce05701a1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 04:58:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 04:58:49 2009 +0100"
      },
      "message": "Merge branch \u0027sched/latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ghaskins/linux-2.6-hacks into sched/rt\n"
    },
    {
      "commit": "6ca09dfc9f180d038dcef93c167a833f43a8246f",
      "tree": "48cd4e6530a7523d7d14d2c18fa7d3bd2ef49a4e",
      "parents": [
        "730cf27246225d56ca1603b2f3c4fdbf882d4e51"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 18:08:45 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:00:09 2009 +0100"
      },
      "message": "sched: put back some stack hog changes that were undone in kernel/sched.c\n\nImpact: prevents panic from stack overflow on numa-capable machines.\n\nSome of the \"removal of stack hogs\" changes in kernel/sched.c by using\nnode_to_cpumask_ptr were undone by the early cpumask API updates, and\ncauses a panic due to stack overflow.  This patch undoes those changes\nby using cpumask_of_node() which returns a \u0027const struct cpumask *\u0027.\n\nIn addition, cpu_coregoup_map is replaced with cpu_coregroup_mask further\nreducing stack usage.  (Both of these updates removed 9 FIXME\u0027s!)\n\nAlso:\n   Pick up some remaining changes from the old \u0027cpumask_t\u0027 functions to\n   the new \u0027struct cpumask *\u0027 functions.\n\n   Optimize memory traffic by allocating each percpu local_cpu_mask on the\n   same node as the referring cpu.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7eb19553369c46cc1fa64caf120cbcab1b597f7c",
      "tree": "ef1a3beae706b9497c845d0a2557ceb4d2754998",
      "parents": [
        "6092848a2a23b660150a38bc06f59d75838d70c8",
        "8c384cdee3e04d6194a2c2b192b624754f990835"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 17:34:16 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:53:31 2009 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask\n\nConflicts:\n\tarch/x86/kernel/io_apic.c\n\tkernel/rcuclassic.c\n\tkernel/sched.c\n\tkernel/time/tick-sched.c\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n[ mingo@elte.hu: backmerged typo fix for io_apic.c ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1563513d34ed4b12ef32bc2adde4a53ce05701a1",
      "tree": "c8937f0dfd7998f3c9316beadc31c2b437b21157",
      "parents": [
        "917b627d4d981dc614519d7b34ea31a976b14e12"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "message": "RT: fix push_rt_task() to handle dequeue_pushable properly\n\nA panic was discovered by Chirag Jog where a BUG_ON sanity check\nin the new \"pushable_task\" logic would trigger a panic under\ncertain circumstances:\n\nhttp://lkml.org/lkml/2008/9/25/189\n\nGilles Carry discovered that the root cause was attributed to the\npushable_tasks list getting corrupted in the push_rt_task logic.\nThis was the result of a dropped rq lock in double_lock_balance\nallowing a task in the process of being pushed to potentially migrate\naway, and thus corrupt the pushable_tasks() list.\n\nI traced back the problem as introduced by the pushable_tasks patch\nthat went in recently.   There is a \"retry\" path in push_rt_task()\nthat actually had a compound conditional to decide whether to\nretry or exit.  I missed the meaning behind the rationale for the\nvirtual \"if(!task) goto out;\" portion of the compound statement and\nthus did not handle it properly.  The new pushable_tasks logic\nactually creates three distinct conditions:\n\n1) an untouched and unpushable task should be dequeued\n2) a migrated task where more pushable tasks remain should be retried\n3) a migrated task where no more pushable tasks exist should exit\n\nThe original logic mushed (1) and (3) together, resulting in the\nsystem dequeuing a migrated task (against an unlocked foreign run-queue\nnonetheless).\n\nTo fix this, we get rid of the notion of \"paranoid\" and we support the\nthree unique conditions properly.  The paranoid feature is no longer\nrelevant with the new pushable logic (since pushable naturally limits\nthe loop) anyway, so lets just remove it.\n\nReported-By: Chirag Jog \u003cchirag@linux.vnet.ibm.com\u003e\nFound-by: Gilles Carry \u003cgilles.carry@bull.net\u003e\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "917b627d4d981dc614519d7b34ea31a976b14e12",
      "tree": "edb1744bd3f943ee79ee4f6c995c48a28421504c",
      "parents": [
        "4075134e40804821f90866d7de56802e4dcecb1e"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:53 2008 -0500"
      },
      "message": "sched: create \"pushable_tasks\" list to limit pushing to one attempt\n\nThe RT scheduler employs a \"push/pull\" design to actively balance tasks\nwithin the system (on a per disjoint cpuset basis).  When a task is\nawoken, it is immediately determined if there are any lower priority\ncpus which should be preempted.  This is opposed to the way normal\nSCHED_OTHER tasks behave, which will wait for a periodic rebalancing\noperation to occur before spreading out load.\n\nWhen a particular RQ has more than 1 active RT task, it is said to\nbe in an \"overloaded\" state.  Once this occurs, the system enters\nthe active balancing mode, where it will try to push the task away,\nor persuade a different cpu to pull it over.  The system will stay\nin this state until the system falls back below the \u003c\u003d 1 queued RT\ntask per RQ.\n\nHowever, the current implementation suffers from a limitation in the\npush logic.  Once overloaded, all tasks (other than current) on the\nRQ are analyzed on every push operation, even if it was previously\nunpushable (due to affinity, etc).  Whats more, the operation stops\nat the first task that is unpushable and will not look at items\nlower in the queue.  This causes two problems:\n\n1) We can have the same tasks analyzed over and over again during each\n   push, which extends out the fast path in the scheduler for no\n   gain.  Consider a RQ that has dozens of tasks that are bound to a\n   core.  Each one of those tasks will be encountered and skipped\n   for each push operation while they are queued.\n\n2) There may be lower-priority tasks under the unpushable task that\n   could have been successfully pushed, but will never be considered\n   until either the unpushable task is cleared, or a pull operation\n   succeeds.  The net result is a potential latency source for mid\n   priority tasks.\n\nThis patch aims to rectify these two conditions by introducing a new\npriority sorted list: \"pushable_tasks\".  A task is added to the list\neach time a task is activated or preempted.  It is removed from the\nlist any time it is deactivated, made current, or fails to push.\n\nThis works because a task only needs to be attempted to push once.\nAfter an initial failure to push, the other cpus will eventually try to\npull the task when the conditions are proper.  This also solves the\nproblem that we don\u0027t completely analyze all tasks due to encountering\nan unpushable tasks.  Now every task will have a push attempted (when\nappropriate).\n\nThis reduces latency both by shorting the critical section of the\nrq-\u003elock for certain workloads, and by making sure the algorithm\nconsiders all eligible tasks in the system.\n\n[ rostedt: added a couple more BUG_ONs ]\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "967fc04671feea4dbf780c9e55a0bc8fcf68a14e",
      "tree": "223f2bb8c59138cc70fbb0e438ae27819ebe1a92",
      "parents": [
        "8f45e2b516201d1bf681e6026fa5276385def565"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:52 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:52 2008 -0500"
      },
      "message": "sched: add sched_class-\u003eneeds_post_schedule() member\n\nWe currently run class-\u003epost_schedule() outside of the rq-\u003elock, which\nmeans that we need to test for the need to post_schedule outside of\nthe lock to avoid a forced reacquistion.  This is currently not a problem\nas we only look at rq-\u003ert.overloaded.  However, we want to enhance this\ngoing forward to look at more state to reduce the need to post_schedule to\na bare minimum set.  Therefore, we introduce a new member-func called\nneeds_post_schedule() which tests for the post_schedule condtion without\nactually performing the work.  Therefore it is safe to call this\nfunction before the rq-\u003elock is released, because we are guaranteed not\nto drop the lock at an intermediate point (such as what post_schedule()\nmay do).\n\nWe will use this later in the series\n\n[ rostedt: removed paranoid BUG_ON ]\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "777c2f389e463428fd7e2871051a84d7fe84b172",
      "tree": "ba82f0105ba069ac6ba724f85f98144459e0c436",
      "parents": [
        "74ab8e4f6412c0b2d730fe5de28dc21de8b92c01"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "message": "sched: only try to push a task on wakeup if it is migratable\n\nThere is no sense in wasting time trying to push a task away that\ncannot move anywhere else.  We gain no benefit from trying to push\nother tasks at this point, so if the task being woken up is non\nmigratable, just skip the whole operation.  This reduces overhead\nin the wakeup path for certain tasks.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "74ab8e4f6412c0b2d730fe5de28dc21de8b92c01",
      "tree": "c1bce6a8e23fa58677de23989fa81bc1fcfc0118",
      "parents": [
        "a8728944efe23417e38bf22063f06d9d8ee21d59"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:50 2008 -0500"
      },
      "message": "sched: use highest_prio.next to optimize pull operations\n\nWe currently take the rq-\u003elock for every cpu in an overload state during\npull_rt_tasks().  However, we now have enough information via the\nhighest_prio.[curr|next] fields to determine if there is any tasks of\ninterest to warrant the overhead of the rq-\u003elock, before we actually take\nit.  So we use this information to reduce lock contention during the\npull for the case where the source-rq doesnt have tasks that preempt\nthe current task.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "a8728944efe23417e38bf22063f06d9d8ee21d59",
      "tree": "225f453912a50a4baf0fdbc578c31bd23d4780f6",
      "parents": [
        "e864c499d9e57805ae1f9e7ea404dd223759cd53"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "message": "sched: use highest_prio.curr for pull threshold\n\nhighest_prio.curr is actually a more accurate way to keep track of\nthe pull_rt_task() threshold since it is always up to date, even\nif the \"next\" task migrates during double_lock.  Therefore, stop\nlooking at the \"next\" task object and simply use the highest_prio.curr.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "e864c499d9e57805ae1f9e7ea404dd223759cd53",
      "tree": "26dcc691f414c2d0eee026ea0f4d9e0d9e0475a2",
      "parents": [
        "4d9842776a23e52ec4c60e0a79f5e1bbe91e463e"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "message": "sched: track the next-highest priority on each runqueue\n\nWe will use this later in the series to reduce the amount of rq-lock\ncontention during a pull operation\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "4d9842776a23e52ec4c60e0a79f5e1bbe91e463e",
      "tree": "fe628d0453c757297a84d43134e6f89153662c41",
      "parents": [
        "6092848a2a23b660150a38bc06f59d75838d70c8"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "committer": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Mon Dec 29 09:39:49 2008 -0500"
      },
      "message": "sched: cleanup inc/dec_rt_tasks\n\nMove some common definitions up to the function prologe to simplify the\nbody logic.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\n"
    },
    {
      "commit": "4e202284e6ac1695df3eb4a0e549ea78addfb663",
      "tree": "b455ebb51d9f94717f6fde06db6331cfe73e4714",
      "parents": [
        "826e08b0157c0ce8a80dfe3c0a6c5a1540dd0b1d",
        "80f40ee4a07530cc3acbc239a9299ec47025825b",
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 13:42:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 25 13:42:23 2008 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027; commit \u0027v2.6.28\u0027 into sched/core\n"
    },
    {
      "commit": "80f40ee4a07530cc3acbc239a9299ec47025825b",
      "tree": "3feb69ea882c314b518f53fd6eae9db634918003",
      "parents": [
        "1bda71282ded6a2e09a2db7c8884542fb46bfd4f"
      ],
      "author": {
        "name": "Bharata B Rao",
        "email": "bharata@linux.vnet.ibm.com",
        "time": "Mon Dec 15 11:56:48 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 21:39:14 2008 +0100"
      },
      "message": "sched: use RCU variant of list traversal in for_each_leaf_rt_rq()\n\nImpact: fix potential of rare crash\n\nfor_each_leaf_rt_rq() walks an RCU protected list (rq-\u003eleaf_rt_rq_list),\nbut doesn\u0027t use list_for_each_entry_rcu(). Fix this.\n\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45ab6b0c76d0e4cce5bd608ccf97b0f6b20f18df",
      "tree": "4d51c73533c386aee16fde1e74b5e3bc22eedc53",
      "parents": [
        "81444a799550214f549caf579cf65a0ca55e70b7",
        "d65bd5ecb2bd166cea4952a59b7e16cc3ad6ef6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 13:48:57 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 13:48:57 2008 +0100"
      },
      "message": "Merge branch \u0027sched/core\u0027 into cpus4096\n\nConflicts:\n\tinclude/linux/ftrace.h\n\tkernel/sched.c\n"
    },
    {
      "commit": "70574a996fc7a70c5586eb56bd92a544eccf18b6",
      "tree": "6c0fbb9a9e9b65817316d1765217478bb6c88cbf",
      "parents": [
        "f1860c34b3ed829ac774647f266abf1074cd58cd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Nov 28 22:08:00 2008 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 20:11:15 2008 +0100"
      },
      "message": "sched: move double_unlock_balance() higher\n\nMove double_lock_balance()/double_unlock_balance() higher to fix the following\nwith gcc-3.4.6:\n\n   CC      kernel/sched.o\n In file included from kernel/sched.c:1605:\n kernel/sched_rt.c: In function `find_lock_lowest_rq\u0027:\n kernel/sched_rt.c:914: sorry, unimplemented: inlining failed in call to \u0027double_unlock_balance\u0027: function body not available\n kernel/sched_rt.c:1077: sorry, unimplemented: called from here\n make[2]: *** [kernel/sched.o] Error 1\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "3d8cbdf8650f44d95333ca645d950832a0653f35"
}
