)]}'
{
  "log": [
    {
      "commit": "b50f60ceeef2e38e529737c0260d9543939915ad",
      "tree": "608880dd1c9d1751eceea9f21f7f1d2898ea917f",
      "parents": [
        "a04b61d3dc68857dcc81a5761268c96056742fb2"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun Jul 30 03:03:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:41 2006 -0700"
      },
      "message": "[PATCH] pi-futex: missing pi_waiters plist initialization\n\nInitialize init task\u0027s pi_waiters plist.  Otherwise cpu hotplug of cpu 0\nmight crash, since rt_mutex_getprio() accesses an uninitialized list head.\n\ncall chain which led to crash:\n\ntake_cpu_down\nsched_idle_next\n__setscheduler\nrt_mutex_getprio\n\nUsing PLIST_HEAD_INIT in the INIT_TASK macro doesn\u0027t work unfortunately,\nsince the pi_waiters member is only conditionally present.\n\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d7d253548cffdce80f4e03664686e9ccb1b0ed7",
      "tree": "08771f36c2506e39f9adfc0bb09e4a574ce196dd",
      "parents": [
        "6ea24f9ad18c65cc179593b5cc2a88cdadf8cc0c"
      ],
      "author": {
        "name": "Jim Houston",
        "email": "jim.houston@ccur.com",
        "time": "Sun Jul 30 03:03:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:40 2006 -0700"
      },
      "message": "[PATCH] fix cond_resched() fix\n\nIn cond_resched_lock() it calls __resched_legal() before dropping the spin\nlock.  __resched_legal() will always finds the preempt_count non-zero and\nwill prevent the call to __cond_resched().\n\nThe attached patch adds a parameter to __resched_legal() with the expected\npreempt_count value.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f712c0c7e1796f92e45e4de144e247816d974b8f",
      "tree": "eb830b95b462b09f1263ce004e28b724bbbf2eff",
      "parents": [
        "b6ff50833ad43a8ebd9b16bf53c334f7aaf33c41"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Sun Jul 30 03:02:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:36 2006 -0700"
      },
      "message": "[PATCH] sched: build_sched_domains() fix\n\nUse the correct groups while initializing sched groups power for\nallnodes_domain.  This fixes the crash observed while creating exclusive\ncpusets.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nReported-and-tested-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52f17b6c2bd443e7806a161e9d10a983650db01d",
      "tree": "67f9a8964a3ac78091cefcd7baf8935175a0a003",
      "parents": [
        "0ff922452df86f3e9a2c6f705c4588ec62d096a7"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 14 00:24:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: cpu delay collection via schedstats\n\nMake the task-related schedstats functions callable by delay accounting even\nif schedstats collection isn\u0027t turned on.  This removes the dependency of\ndelay accounting on schedstats.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ff922452df86f3e9a2c6f705c4588ec62d096a7",
      "tree": "ac84041bfb63f12d0e2db733c46b2cd2438b4882",
      "parents": [
        "ca74e92b4698276b6696f15a801759f50944f387"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: sync block I/O and swapin delay collection\n\nUnlike earlier iterations of the delay accounting patches, now delays are only\ncollected for the actual I/O waits rather than try and cover the delays seen\nin I/O submission paths.\n\nAccount separately for block I/O delays incurred as a result of swapin page\nfaults whose frequency can be affected by the task/process\u0027 rss limit.  Hence\nswapin delays can act as feedback for rss limit changes independent of I/O\npriority changes.\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a5f5e488ceee9e08df3dff3f01b12fafc9e7e68",
      "tree": "12ebd936831e797780b9cf716cc7aaf337b25141",
      "parents": [
        "2e8f7a3128bb8fac8351a994f1fc325717899308"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 14 00:24:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:55 2006 -0700"
      },
      "message": "[PATCH] lockdep: core, fix rq-lock handling on __ARCH_WANT_UNLOCKED_CTXSW\n\nOn platforms that have __ARCH_WANT_UNLOCKED_CTXSW set and want to implement\nlock validator support there\u0027s a bug in rq-\u003elock handling: in this case we\ndont \u0027carry over\u0027 the runqueue lock into another task - but still we did a\nspinlock_release() of it.  Fix this by making the spinlock_release() in\ncontext_switch() dependent on !__ARCH_WANT_UNLOCKED_CTXSW.\n\n(Reported by Ralf Baechle on MIPS, which has __ARCH_WANT_UNLOCKED_CTXSW.\nThis fixes a lockdep-internal BUG message on such platforms.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ed6e34f88a0d896a6f889b00693cae0fadacfd0",
      "tree": "1f1d488c62fe577fca19fea9bec3f8567faf7a10",
      "parents": [
        "0a565f7919cfb3d3df2c97d45751cbb83d858f97"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@rhlx01.fht-esslingen.de",
        "time": "Mon Jul 10 04:43:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:13 2006 -0700"
      },
      "message": "[PATCH] small kernel/sched.c cleanup\n\n- constify and optimize stat_nam (thanks to Michael Tokarev!)\n- spelling and comment fixes\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a565f7919cfb3d3df2c97d45751cbb83d858f97",
      "tree": "cc1294f43b1e14dbc5a69a9624b69a48eec78bd1",
      "parents": [
        "e45b3b6af09dab2a28a7c88b340d0bcdd173e068"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Mon Jul 10 04:43:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:13 2006 -0700"
      },
      "message": "[PATCH] sched: fix bug in __migrate_task()\n\nProblem:\n\nIn the function __migrate_task(), deactivate_task() followed by\nactivate_task() is used to move the task from one run queue to\nanother.  This has two undesirable effects:\n\n1. The task\u0027s priority is recalculated. (Nowhere else in the\nscheduler code is the priority recalculated for a change of CPU.)\n\n2. The task\u0027s time stamp is set to the current time.  At the very least,\nthis makes the adjustment of the time stamp before the call to\ndeactivate_task() redundant but I believe the problem is more serious\nas the time stamp now holds the time of the queue change instead of\nthe time at which the task was woken.  In addition, unless dest_rq is\nthe same queue as \"current\" is on the time stamp could be inaccurate\ndue to inter CPU drift.\n\nSolution:\n\nReplace the call to activate_task() with one to __activate_task().\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70b97a7f0b19cf1f2619deb5cc41e8b78c591aa7",
      "tree": "619683f95396f26048c1818735818d53a3c0233e",
      "parents": [
        "36c8b586896f60cb91a4fd526233190b34316baf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, convert sched.c-internal typedefs to struct\n\nconvert:\n\n - runqueue_t to \u0027struct rq\u0027\n - prio_array_t to \u0027struct prio_array\u0027\n - migration_req_t to \u0027struct migration_req\u0027\n\nI was the one who added these but they are both against the kernel coding\nstyle and also were used inconsistently at places.  So just get rid of them at\nonce, now that we are flushing the scheduler patch-queue anyway.\n\nConversion was mostly scripted, the result was reviewed and all secondary\nwhitespace and style impact (if any) was fixed up by hand.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36c8b586896f60cb91a4fd526233190b34316baf",
      "tree": "003246e1e676de33703daa979b3e3109ca202a89",
      "parents": [
        "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, remove task_t, convert to struct task_struct\n\ncleanup: remove task_t and convert all the uses to struct task_struct. I\nintroduced it for the scheduler anno and it was a mistake.\n\nConversion was mostly scripted, the result was reviewed and all\nsecondary whitespace and style impact (if any) was fixed up by hand.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5",
      "tree": "c827ac2ad2bba931753b8213123f059bcf773534",
      "parents": [
        "829035fd709119d9def124a6d40b94d317573e6f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:10 2006 -0700"
      },
      "message": "[PATCH] sched: clean up fallout of recent changes\n\nClean up some of the impact of recent (and not so recent) scheduler\nchanges:\n\n - turning macros into nice inline functions\n - sanitizing and unifying variable definitions\n - whitespace, style consistency, 80-lines, comment correctness, spelling\n   and curly braces police\n\nDue to the macro hell and variable placement simplifications there\u0027s even 26\nbytes of .text saved:\n\n   text    data     bss     dec     hex filename\n  25510    4153     192   29855    749f sched.o.before\n  25484    4153     192   29829    7485 sched.o.after\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fcb993712f231a4faea8393513d1276170679107",
      "tree": "c92cf94cd5e705192c69b3cb712e4b6c8346f477",
      "parents": [
        "d730e882a15c38de02b63a063be636b2ff9e9ed1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:07 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate scheduler runqueue locks\n\nTeach per-CPU runqueue locks and recursive locking code to the lock validator.\n Has no effect on non-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a25d5debff2daee280e83e09d8c25d67c26a972",
      "tree": "3bccfef9acb66fc62863bfd6c16493c5e8c8e394",
      "parents": [
        "4ea2176dfa714882e88180b474e4cbcd888b70af"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:04 2006 -0700"
      },
      "message": "[PATCH] lockdep: prove spinlock rwlock locking correctness\n\nUse the lock validator framework to prove spinlock and rwlock locking\ncorrectness.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de30a2b355ea85350ca2f58f3b9bf4e5bc007986",
      "tree": "0bef670aff65614b3c78ca13b20307355b8221d5",
      "parents": [
        "5bdc9b447c0076f494a56fdcd93ee8c5e78a2afd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:03 2006 -0700"
      },
      "message": "[PATCH] lockdep: irqtrace subsystem, core\n\nAccurate hard-IRQ-flags and softirq-flags state tracing.\n\nThis allows us to attach extra functionality to IRQ flags on/off\nevents (such as trace-on/off).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a11b49a805665e13a56aa067afaf81d43ec1514",
      "tree": "bf499956e3f67d1211d68ab1e2eb76645f453dfb",
      "parents": [
        "fb7e42413a098cc45b3adf858da290033af62bae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: better lock debugging\n\nGeneric lock debugging:\n\n - generalized lock debugging framework. For example, a bug in one lock\n   subsystem turns off debugging in all lock subsystems.\n\n - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from\n   the mutex/rtmutex debugging code: it caused way too much prototype\n   hackery, and lockdep will give the same information anyway.\n\n - ability to do silent tests\n\n - check lock freeing in vfree too.\n\n - more finegrained debugging options, to allow distributions to\n   turn off more expensive debugging features.\n\nThere\u0027s no separate \u0027held mutexes\u0027 list anymore - but there\u0027s a \u0027held locks\u0027\nstack within lockdep, which unifies deadlock detection across all lock\nclasses.  (this is independent of the lockdep validation stuff - lockdep first\nchecks whether we are holding a lock already)\n\nHere are the current debugging options:\n\nCONFIG_DEBUG_MUTEXES\u003dy\nCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\nwhich do:\n\n config DEBUG_MUTEXES\n          bool \"Mutex debugging, basic checks\"\n\n config DEBUG_LOCK_ALLOC\n         bool \"Detect incorrect freeing of live mutexes\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7b384043e27bed4f23b108481b99c518dd01a01",
      "tree": "52f944bf39d3a7b329f4e38d619d7949e35510a0",
      "parents": [
        "92fe15a3d24fa53e7e961c549c488d0bb642d895"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 30 01:56:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:38 2006 -0700"
      },
      "message": "[PATCH] cond_resched() fix\n\nFix a bug identified by Zou Nan hai \u003cnanhai.zou@intel.com\u003e:\n\nIf the system is in state SYSTEM_BOOTING, and need_resched() is true,\ncond_resched() returns true even though it didn\u0027t reschedule.  Consequently\nneed_resched() remains true and JBD locks up.\n\nFix that by teaching cond_resched() to only return true if it really did call\nschedule().\n\ncond_resched_lock() and cond_resched_softirq() have a problem too.  If we\u0027re\nin SYSTEM_BOOTING state and need_resched() is true, these functions will drop\nthe lock and will then try to call schedule(), but the SYSTEM_BOOTING state\nwill prevent schedule() from being called.  So on return, need_resched() will\nstill be true, but cond_resched_lock() has to return 1 to tell the caller that\nthe lock was dropped.  The caller will probably lock up.\n\nBottom line: if these functions dropped the lock, they _must_ call schedule()\nto clear need_resched().   Make it so.\n\nAlso, uninline __cond_resched().  It\u0027s largeish, and slowpath.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "95e02ca9bb5324360e7dea1ea1c563036d84a5e6",
      "tree": "0336dd808abe113b42f53a8f700d50ea6ba674ff",
      "parents": [
        "0bafd214e4ba55dc1fb81a3031d0249292f1bc05"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 27 02:55:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] rtmutex: Propagate priority settings into PI lock chains\n\nWhen the priority of a task, which is blocked on a lock, changes we must\npropagate this change into the PI lock chain.  Therefor the chain walk code\nis changed to get rid of the references to current to avoid false positives\nin the deadlock detector, as setscheduler might be called by a task which\nholds the lock on which the task whose priority is changed is blocked.\n\nAlso add some comments about the get/put_task_struct usage to avoid\nconfusion.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e74c69f46d93d29eea0ad8647863d1c6488f0f55",
      "tree": "5537d5a60eec3985de11cad4476ed95025051721",
      "parents": [
        "a1583d3e83cae1c58870602efc6328c34b644c01"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 27 02:55:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] Drop tasklist lock in do_sched_setscheduler\n\nThere is no need to hold tasklist_lock across the setscheduler call, when\nwe pin the task structure with get_task_struct().  Interrupts are disabled\nin setscheduler anyway and the permission checks do not need interrupts\ndisabled.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b29739f902ee76a05493fb7d2303490fc75364f4",
      "tree": "1bf48dfb74752a7ef24a2a4a74c45da0aaec754b",
      "parents": [
        "77ba89c5cf28d5d98a3cae17f67a3e42b102cc25"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: scheduler support for pi\n\nAdd framework to boost/unboost the priority of RT tasks.\n\nThis consists of:\n\n - caching the \u0027normal\u0027 priority in -\u003enormal_prio\n - providing a functions to set/get the priority of the task\n - make sched_setscheduler() aware of boosting\n\nThe effective_prio() cleanups also fix a priority-calculation bug pointed out\nby Andrey Gelman, in set_user_nice().\n\nhas_rt_policy() fix: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Andrey Gelman \u003cagelman@012.net.il\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66e5393a78b3fcca63e7748e38221dcca61c4aab",
      "tree": "57c5408e8e5596863f4abbe1c822bb0c1c7ff059",
      "parents": [
        "9fea80e4d984d411aa188baa31225c273ebe0fe6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 27 02:54:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] BUG() if setscheduler is called from interrupt context\n\nThomas Gleixner is adding the call to a rtmutex function in setscheduler.\nThis call grabs a spin_lock that is not always protected by interrupts\ndisabled.  So this means that setscheduler cant be called from interrupt\ncontext.\n\nTo prevent this from happening in the future, this patch adds a\nBUG_ON(in_interrupt()) in that function.  (Thanks to akpm \u003caka.  Andrew\nMorton\u003e for this suggestion).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9fea80e4d984d411aa188baa31225c273ebe0fe6",
      "tree": "da48ffcb1b5a502d72645e55ade9c6588e784cd4",
      "parents": [
        "5c45bf279d378d436ce45825c0f136696c7b6109"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Jun 27 02:54:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched: uninline task_rq_lock()\n\nSaves 543 bytes from sched.o (gcc 3.3.3).\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c45bf279d378d436ce45825c0f136696c7b6109",
      "tree": "80e2fcf4866b84fccb787562e1a83b16f4bc8850",
      "parents": [
        "369381694ddcf03f1de403501c8b97099b5109ec"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Tue Jun 27 02:54:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched: mc/smt power savings sched policy\n\nsysfs entries \u0027sched_mc_power_savings\u0027 and \u0027sched_smt_power_savings\u0027 in\n/sys/devices/system/cpu/ control the MC/SMT power savings policy for the\nscheduler.\n\nBased on the values (1-enable, 0-disable) for these controls, sched groups\ncpu power will be determined for different domains.  When power savings\npolicy is enabled and under light load conditions, scheduler will minimize\nthe physical packages/cpu cores carrying the load and thus conserving\npower(with a perf impact based on the workload characteristics...  see OLS\n2005 CMP kernel scheduler paper for more details..)\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "369381694ddcf03f1de403501c8b97099b5109ec",
      "tree": "3945620740cc1687c8487356bf4be90394695702",
      "parents": [
        "15f0b676a482fb4067cfe25de417c417dda3440a"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domai: Allocate sched_group structures dynamically\n\nAs explained here:\n\thttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114327539012323\u0026w\u003d2\n\nthere is a problem with sharing sched_group structures between two\nseparate sched_group structures for different sched_domains.\n\nThe patch has been tested and found to avoid the kernel lockup problem\ndescribed in above URL.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "15f0b676a482fb4067cfe25de417c417dda3440a",
      "tree": "29426196953a41d9cca0d81d501e76514ce820b2",
      "parents": [
        "d3a5aa9858cc9cecc3aadac7311d376c7c9e101a"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domai: Use kmalloc_node\n\nThe sched group structures used to represent various nodes need to be\nallocated from respective nodes (as suggested here also:\n\n\thttp://uwsg.ucs.indiana.edu/hypermail/linux/kernel/0603.3/0051.html)\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d3a5aa9858cc9cecc3aadac7311d376c7c9e101a",
      "tree": "2d753b1cfacdfe399aaa39c30d5f94623bc728e4",
      "parents": [
        "51888ca25a03125e742ef84d4ddfd74e139707a0"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domai: Don\u0027t use GFP_ATOMIC\n\nReplace GFP_ATOMIC allocation for sched_group_nodes with GFP_KERNEL based\nallocation.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "51888ca25a03125e742ef84d4ddfd74e139707a0",
      "tree": "b15e50f3b67f6e2b94b783fce603d4a1f54a8189",
      "parents": [
        "615052dc3bf96278a843a64d3d1eea03532028c3"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domain: handle kmalloc failure\n\nTry to handle mem allocation failures in build_sched_domains by bailing out\nand cleaning up thus-far allocated memory.  The patch has a direct consequence\nthat we disable load balancing completely (even at sibling level) upon *any*\nmemory allocation failure.\n\n[Lee.Schermerhorn@hp.com: bugfix]\nSigned-off-by: Srivatsa Vaddagir \u003cvatsa@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "615052dc3bf96278a843a64d3d1eea03532028c3",
      "tree": "e7d5c61bd244e5fbde4ada9ae2ef1ebe7923fb53",
      "parents": [
        "50ddd96917e4548b3813bfb5dd6f97f052b652bd"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Tue Jun 27 02:54:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: Avoid unnecessarily moving highest priority task move_tasks()\n\nProblem:\n\nTo help distribute high priority tasks evenly across the available CPUs\nmove_tasks() does not, under some circumstances, skip tasks whose load\nweight is bigger than the designated amount.  Because the highest priority\ntask on the busiest queue may be on the expired array it may be moved as a\nresult of this mechanism.  Apart from not being the most desirable way to\nredistribute the high priority tasks (we\u0027d rather move the second highest\npriority task), there is a risk that this could set up a loop with this\ntask bouncing backwards and forwards between the two queues.  (This latter\npossibility can be demonstrated by running a nice\u003d\u003d-20 CPU bound task on an\notherwise quiet 2 CPU system.)\n\nSolution:\n\nModify the mechanism so that it does not override skip for the highest\npriority task on the CPU.  Of course, if there are more than one tasks at\nthe highest priority then it will allow the override for one of them as\nthis is a desirable redistribution of high priority tasks.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "50ddd96917e4548b3813bfb5dd6f97f052b652bd",
      "tree": "f8e62672b35ebdefee048e042a54e8ceaeab0cf0",
      "parents": [
        "2dd73a4f09beacadde827a032cf15fd8b1fa3d48"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Tue Jun 27 02:54:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: modify move_tasks() to improve load balancing outcomes\n\nProblem:\n\nThe move_tasks() function is designed to move UP TO the amount of load it\nis asked to move and in doing this it skips over tasks looking for ones\nwhose load weights are less than or equal to the remaining load to be\nmoved.  This is (in general) a good thing but it has the unfortunate result\nof breaking one of the original load balancer\u0027s good points: namely, that\n(within the limits imposed by the active/expired array model and the fact\nthe expired is processed first) it moves high priority tasks before low\npriority ones and this means there\u0027s a good chance (see active/expired\nproblem for why it\u0027s only a chance) that the highest priority task on the\nqueue but not actually on the CPU will be moved to the other CPU where (as\na high priority task) it may preempt the current task.\n\nSolution:\n\nModify move_tasks() so that high priority tasks are not skipped when moving\nthem will make them the highest priority task on their new run queue.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2dd73a4f09beacadde827a032cf15fd8b1fa3d48",
      "tree": "f81752d44e68240231518d6a3f05ac9ff6410a2d",
      "parents": [
        "efc30814a88bdbe2bfe4ac94de2eb089ad80bee3"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Tue Jun 27 02:54:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: implement smpnice\n\nProblem:\n\nThe introduction of separate run queues per CPU has brought with it \"nice\"\nenforcement problems that are best described by a simple example.\n\nFor the sake of argument suppose that on a single CPU machine with a\nnice\u003d\u003d19 hard spinner and a nice\u003d\u003d0 hard spinner running that the nice\u003d\u003d0\ntask gets 95% of the CPU and the nice\u003d\u003d19 task gets 5% of the CPU.  Now\nsuppose that there is a system with 2 CPUs and 2 nice\u003d\u003d19 hard spinners and\n2 nice\u003d\u003d0 hard spinners running.  The user of this system would be entitled\nto expect that the nice\u003d\u003d0 tasks each get 95% of a CPU and the nice\u003d\u003d19\ntasks only get 5% each.  However, whether this expectation is met is pretty\nmuch down to luck as there are four equally likely distributions of the\ntasks to the CPUs that the load balancing code will consider to be balanced\nwith loads of 2.0 for each CPU.  Two of these distributions involve one\nnice\u003d\u003d0 and one nice\u003d\u003d19 task per CPU and in these circumstances the users\nexpectations will be met.  The other two distributions both involve both\nnice\u003d\u003d0 tasks being on one CPU and both nice\u003d\u003d19 being on the other CPU and\neach task will get 50% of a CPU and the user\u0027s expectations will not be\nmet.\n\nSolution:\n\nThe solution to this problem that is implemented in the attached patch is\nto use weighted loads when determining if the system is balanced and, when\nan imbalance is detected, to move an amount of weighted load between run\nqueues (as opposed to a number of tasks) to restore the balance.  Once\nagain, the easiest way to explain why both of these measures are necessary\nis to use a simple example.  Suppose that (in a slight variation of the\nabove example) that we have a two CPU system with 4 nice\u003d\u003d0 and 4 nice\u003d19\nhard spinning tasks running and that the 4 nice\u003d\u003d0 tasks are on one CPU and\nthe 4 nice\u003d\u003d19 tasks are on the other CPU.  The weighted loads for the two\nCPUs would be 4.0 and 0.2 respectively and the load balancing code would\nmove 2 tasks resulting in one CPU with a load of 2.0 and the other with\nload of 2.2.  If this was considered to be a big enough imbalance to\njustify moving a task and that task was moved using the current\nmove_tasks() then it would move the highest priority task that it found and\nthis would result in one CPU with a load of 3.0 and the other with a load\nof 1.2 which would result in the movement of a task in the opposite\ndirection and so on -- infinite loop.  If, on the other hand, an amount of\nload to be moved is calculated from the imbalance (in this case 0.1) and\nmove_tasks() skips tasks until it find ones whose contributions to the\nweighted load are less than this amount it would move two of the nice\u003d\u003d19\ntasks resulting in a system with 2 nice\u003d\u003d0 and 2 nice\u003d19 on each CPU with\nloads of 2.1 for each CPU.\n\nOne of the advantages of this mechanism is that on a system where all tasks\nhave nice\u003d\u003d0 the load balancing calculations would be mathematically\nidentical to the current load balancing code.\n\nNotes:\n\nstruct task_struct:\n\nhas a new field load_weight which (in a trade off of space for speed)\nstores the contribution that this task makes to a CPU\u0027s weighted load when\nit is runnable.\n\nstruct runqueue:\n\nhas a new field raw_weighted_load which is the sum of the load_weight\nvalues for the currently runnable tasks on this run queue.  This field\nalways needs to be updated when nr_running is updated so two new inline\nfunctions inc_nr_running() and dec_nr_running() have been created to make\nsure that this happens.  This also offers a convenient way to optimize away\nthis part of the smpnice mechanism when CONFIG_SMP is not defined.\n\nint try_to_wake_up():\n\nin this function the value SCHED_LOAD_BALANCE is used to represent the load\ncontribution of a single task in various calculations in the code that\ndecides which CPU to put the waking task on.  While this would be a valid\non a system where the nice values for the runnable tasks were distributed\nevenly around zero it will lead to anomalous load balancing if the\ndistribution is skewed in either direction.  To overcome this problem\nSCHED_LOAD_SCALE has been replaced by the load_weight for the relevant task\nor by the average load_weight per task for the queue in question (as\nappropriate).\n\nint move_tasks():\n\nThe modifications to this function were complicated by the fact that\nactive_load_balance() uses it to move exactly one task without checking\nwhether an imbalance actually exists.  This precluded the simple\noverloading of max_nr_move with max_load_move and necessitated the addition\nof the latter as an extra argument to the function.  The internal\nimplementation is then modified to move up to max_nr_move tasks and\nmax_load_move of weighted load.  This slightly complicates the code where\nmove_tasks() is called and if ever active_load_balance() is changed to not\nuse move_tasks() the implementation of move_tasks() should be simplified\naccordingly.\n\nstruct sched_group *find_busiest_group():\n\nSimilar to try_to_wake_up(), there are places in this function where\nSCHED_LOAD_SCALE is used to represent the load contribution of a single\ntask and the same issues are created.  A similar solution is adopted except\nthat it is now the average per task contribution to a group\u0027s load (as\nopposed to a run queue) that is required.  As this value is not directly\navailable from the group it is calculated on the fly as the queues in the\ngroups are visited when determining the busiest group.\n\nA key change to this function is that it is no longer to scale down\n*imbalance on exit as move_tasks() uses the load in its scaled form.\n\nvoid set_user_nice():\n\nhas been modified to update the task\u0027s load_weight field when it\u0027s nice\nvalue and also to ensure that its run queue\u0027s raw_weighted_load field is\nupdated if it was runnable.\n\nFrom: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\n\nWith smpnice, sched groups with highest priority tasks can mask the imbalance\nbetween the other sched groups with in the same domain.  This patch fixes some\nof the listed down scenarios by not considering the sched groups which are\nlightly loaded.\n\na) on a simple 4-way MP system, if we have one high priority and 4 normal\n   priority tasks, with smpnice we would like to see the high priority task\n   scheduled on one cpu, two other cpus getting one normal task each and the\n   fourth cpu getting the remaining two normal tasks.  but with current\n   smpnice extra normal priority task keeps jumping from one cpu to another\n   cpu having the normal priority task.  This is because of the\n   busiest_has_loaded_cpus, nr_loaded_cpus logic..  We are not including the\n   cpu with high priority task in max_load calculations but including that in\n   total and avg_load calcuations..  leading to max_load \u003c avg_load and load\n   balance between cpus running normal priority tasks(2 Vs 1) will always show\n   imbalanace as one normal priority and the extra normal priority task will\n   keep moving from one cpu to another cpu having normal priority task..\n\nb) 4-way system with HT (8 logical processors).  Package-P0 T0 has a\n   highest priority task, T1 is idle.  Package-P1 Both T0 and T1 have 1 normal\n   priority task each..  P2 and P3 are idle.  With this patch, one of the\n   normal priority tasks on P1 will be moved to P2 or P3..\n\nc) With the current weighted smp nice calculations, it doesn\u0027t always make\n   sense to look at the highest weighted runqueue in the busy group..\n   Consider a load balance scenario on a DP with HT system, with Package-0\n   containing one high priority and one low priority, Package-1 containing one\n   low priority(with other thread being idle)..  Package-1 thinks that it need\n   to take the low priority thread from Package-0.  And find_busiest_queue()\n   returns the cpu thread with highest priority task..  And ultimately(with\n   help of active load balance) we move high priority task to Package-1.  And\n   same continues with Package-0 now, moving high priority task from package-1\n   to package-0..  Even without the presence of active load balance, load\n   balance will fail to balance the above scenario..  Fix find_busiest_queue\n   to use \"imbalance\" when it is lightly loaded.\n\n[kernel@kolivas.org: sched: store weighted load on up]\n[kernel@kolivas.org: sched: add discrete weighted cpu load function]\n[suresh.b.siddha@intel.com: sched: remove dead code]\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.com.au\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "efc30814a88bdbe2bfe4ac94de2eb089ad80bee3",
      "tree": "1134d7ccda13c09cf426af0524c13633292eac5b",
      "parents": [
        "cc94abfcbc9fed0048365ce1fb8dc81353408bf8"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Tue Jun 27 02:54:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: CPU hotplug race vs. set_cpus_allowed()\n\nThere is a race between set_cpus_allowed() and move_task_off_dead_cpu().\n__migrate_task() doesn\u0027t report any err code, so task can be left on its\nrunqueue if its cpus_allowed mask changed so that dest_cpu is not longer a\npossible target.  Also, chaning cpus_allowed mask requires rq-\u003elock being\nheld.\n\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nAcked-By: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc94abfcbc9fed0048365ce1fb8dc81353408bf8",
      "tree": "d7e40f7a9e710f220f1bf5f7514ac7eba2fc70c2",
      "parents": [
        "72d2854d4ebf5faf086ebccb2ed575c6b68a05dc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 27 02:54:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] unnecessary long index i in sched\n\nUnless we expect to have more than 2G CPUs, there\u0027s no reason to have \u0027i\u0027\nas a long long here.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72d2854d4ebf5faf086ebccb2ed575c6b68a05dc",
      "tree": "2a0b00a32a810b76ff29bde7d269998561408f8b",
      "parents": [
        "d444886e149a8413159da8b43ada2bc287e69b0c"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Jun 27 02:54:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: fix interactive ceiling code\n\nThe relationship between INTERACTIVE_SLEEP and the ceiling is not perfect\nand not explicit enough.  The sleep boost is not supposed to be any larger\nthan without this code and the comment is not clear enough about what\nexactly it does, just the reason it does it.  Fix it.\n\nThere is a ceiling to the priority beyond which tasks that only ever sleep\nfor very long periods cannot surpass.  Fix it.\n\nPrevent the on-runqueue bonus logic from defeating the idle sleep logic.\n\nOpportunity to micro-optimise.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d444886e149a8413159da8b43ada2bc287e69b0c",
      "tree": "aa977a3b4e2a045df964b5ca2a9cddf50f978b85",
      "parents": [
        "c96d145e71c5c84601322d85748512e09d7b325f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 27 02:54:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: simplify bitmap definition\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c96d145e71c5c84601322d85748512e09d7b325f",
      "tree": "4762f8aa4c970295a33afbc4ee506c72d7216073",
      "parents": [
        "7a8e2a5ea4cf43c0edd6db56a156549edb0eee98"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Tue Jun 27 02:54:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: fix smt nice lock contention and optimization\n\nInitial report and lock contention fix from Chris Mason:\n\nRecent benchmarks showed some performance regressions between 2.6.16 and\n2.6.5.  We tracked down one of the regressions to lock contention in\nschedule heavy workloads (~70,000 context switches per second)\n\nkernel/sched.c:dependent_sleeper() was responsible for most of the lock\ncontention, hammering on the run queue locks.  The patch below is more of a\ndiscussion point than a suggested fix (although it does reduce lock\ncontention significantly).  The dependent_sleeper code looks very expensive\nto me, especially for using a spinlock to bounce control between two\ndifferent siblings in the same cpu.\n\nIt is further optimized:\n\n* perform dependent_sleeper check after next task is determined\n* convert wake_sleeping_dependent to use trylock\n* skip smt runqueue check if trylock fails\n* optimize double_rq_lock now that smt nice is converted to trylock\n* early exit in searching first SD_SHARE_CPUPOWER domain\n* speedup fast path of dependent_sleeper\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "26c2143b63b8078d08d562733716de142927e17a",
      "tree": "6a2add2bca5bffbd33a0465fd934fffa34a695e9",
      "parents": [
        "74b85f3790aa2550c617fe14439482e13e615fa0"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: make cpu_notifier related notifier calls __cpuinit only\n\nMake notifier_calls associated with cpu_notifier as __cpuinit.\n\n__cpuinit makes sure that the function is init time only unless\nCONFIG_HOTPLUG_CPU is defined.\n\n[akpm@osdl.org: section fix]\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "054cc8a2d808822dadf488a61729e3e550f114c4",
      "tree": "da7e5ecce06d1898263da9b47714b0b0fa972397",
      "parents": [
        "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17\n\nThis patch reverts notifier_block changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "81a07d7588d376c530d006e24d7981304ce96e16",
      "tree": "1608e094c88b9702c86cf2e6f65339aab9ea3f3f",
      "parents": [
        "8871e73fdbde07d0a41393f7ee30787b65387b36",
        "8501a2fbe762b21d2504ed3aca3b52be61b5e6e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:51:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:51:09 2006 -0700"
      },
      "message": "Merge branch \u0027x86-64\u0027\n\n* x86-64: (83 commits)\n  [PATCH] x86_64: x86_64 stack usage debugging\n  [PATCH] x86_64: (resend) x86_64 stack overflow debugging\n  [PATCH] x86_64: msi_apic.c build fix\n  [PATCH] x86_64: i386/x86-64 Add nmi watchdog support for new Intel CPUs\n  [PATCH] x86_64: Avoid broadcasting NMI IPIs\n  [PATCH] x86_64: fix apic error on bootup\n  [PATCH] x86_64: enlarge window for stack growth\n  [PATCH] x86_64: Minor string functions optimizations\n  [PATCH] x86_64: Move export symbols to their C functions\n  [PATCH] x86_64: Standardize i386/x86_64 handling of NMI_VECTOR\n  [PATCH] x86_64: Fix modular pc speaker\n  [PATCH] x86_64: remove sys32_ni_syscall()\n  [PATCH] x86_64: Do not use -ffunction-sections for modules\n  [PATCH] x86_64: Add cpu_relax to apic_wait_icr_idle\n  [PATCH] x86_64: adjust kstack_depth_to_print default\n  [PATCH] i386/x86-64: adjust /proc/interrupts column headings\n  [PATCH] x86_64: Fix race in cpu_local_* on preemptible kernels\n  [PATCH] x86_64: Fix fast check in safe_smp_processor_id\n  [PATCH] x86_64: x86_64 setup.c - printing cmp related boottime information\n  [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status\n  ...\n\nManual resolve of trivial conflict in arch/i386/kernel/Makefile\n"
    },
    {
      "commit": "495ab9c045e1b0e5c82951b762257fe1c9d81564",
      "tree": "f95c376015d340794f64f36fd52f8fa80a1daab7",
      "parents": [
        "d9005b52de7bc9b20afa93e06d3e15843bafc12f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Jun 26 13:59:11 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:48:21 2006 -0700"
      },
      "message": "[PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status\n\nDuring some profiling I noticed that default_idle causes a lot of\nmemory traffic. I think that is caused by the atomic operations\nto clear/set the polling flag in thread_info. There is actually\nno reason to make this atomic - only the idle thread does it\nto itself, other CPUs only read it. So I moved it into ti-\u003estatus.\n\nConverted i386/x86-64/ia64 for now because that was the easiest\nway to fix ACPI which also manipulates these flags in its idle\nfunction.\n\nCc: Nick Piggin \u003cnpiggin@novell.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b78709cfd4387c15a9894748bcada8a4ca75c561",
      "tree": "999f5beae5983280fa1c3d98cefb47ee4a95d83b",
      "parents": [
        "2139a7fbf3effd8cad505871e3a3c308780ada32"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Mon Jun 26 16:58:00 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 10:02:41 2006 -0700"
      },
      "message": "[PATCH] sched: fix SCHED_FIFO bug in sys_sched_rr_get_interval()\n\nThe introduction of SCHED_BATCH scheduling class with a value of 3 means\nthat the expression (p-\u003epolicy \u0026 SCHED_FIFO) will return true if policy\nis SCHED_BATCH or SCHED_FIFO.\n\nUnfortunately, this expression is used in sys_sched_rr_get_interval()\nand in the absence of a comment to say that this is intentional I\npresume that it is unintentional and erroneous.\n\nThe fix is to change the expression to (p-\u003epolicy \u003d\u003d SCHED_FIFO).\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fc75cdfa5b43ac4d3232b490800cd35063adafd3",
      "tree": "0529ffd9633667457d5340a09b3cb352d09436d2",
      "parents": [
        "04a3446c90137a473837288b04b517b19dc67a0d"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun Jun 25 05:49:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:22 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: fix CPU_UP_CANCEL handling\n\nIf a cpu hotplug callback fails on CPU_UP_PREPARE, all callbacks will be\ncalled with CPU_UP_CANCELED.  A few of these callbacks assume that on\nCPU_UP_PREPARE a pointer to task has been stored in a percpu array.  This\nassumption is not true if CPU_UP_PREPARE fails and the following calls to\nkthread_bind() in CPU_UP_CANCELED will cause an addressing exception\nbecause of passing a NULL pointer.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bfe5d834195b3089b8846577311340376cc0f450",
      "tree": "52470de0fe87ff8372700e3472735cd5c14cee9d",
      "parents": [
        "6ceab8a936c302c0cea2bfe55617c76e2f5746fa"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Sun Jun 25 05:47:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:01 2006 -0700"
      },
      "message": "[PATCH] Define __raw_get_cpu_var and use it\n\nThere are several instances of per_cpu(foo, raw_smp_processor_id()), which\nis semantically equivalent to __get_cpu_var(foo) but without the warning\nthat smp_processor_id() can give if CONFIG_DEBUG_PREEMPT is enabled.  For\nthose architectures with optimized per-cpu implementations, namely ia64,\npowerpc, s390, sparc64 and x86_64, per_cpu() turns into more and slower\ncode than __get_cpu_var(), so it would be preferable to use __get_cpu_var\non those platforms.\n\nThis defines a __raw_get_cpu_var(x) macro which turns into per_cpu(x,\nraw_smp_processor_id()) on architectures that use the generic per-cpu\nimplementation, and turns into __get_cpu_var(x) on the architectures that\nhave an optimized per-cpu implementation.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8e0a43d8fa953179505869ec28de78550246e795",
      "tree": "1fc56d6337c487952ab008b8ff063b2a2d48ee02",
      "parents": [
        "6e6672604773b9bae44d88d38afdf0763c104b1c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 23 02:05:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:04 2006 -0700"
      },
      "message": "[PATCH] cond_resched() might_sleep() fix\n\nadd the __might_sleep() check back to cond_resched().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7834f8fccd791225a1cf91c2c3e740ad8e2e145",
      "tree": "8f48d03d7b1dc32d326825fef1d1c54117a06ac8",
      "parents": [
        "03e68060636e05989ea94bcb671ab633948f328c"
      ],
      "author": {
        "name": "David Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Fri Jun 23 02:03:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:53 2006 -0700"
      },
      "message": "[PATCH] SELinux: add security hooks to {get,set}affinity\n\nThis patch adds LSM hooks into the setaffinity and getaffinity functions to\nenable security modules to control these operations between tasks with\ntask_setscheduler and task_getscheduler LSM hooks.\n\nSigned-off-by: David Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f1adad78dd2fc8edaa513e0bde92b4c64340245c",
      "tree": "a2cd5c53b08fa80c953147ee22b62e7bbff7ddcd",
      "parents": [
        "c9d20af62c59e49684f3882503351153964ff14b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 18:54:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 18:54:09 2006 -0700"
      },
      "message": "Revert \"[PATCH] sched: fix interactive task starvation\"\n\nThis reverts commit 5ce74abe788a26698876e66b9c9ce7e7acc25413 (and its\ndependent commit 8a5bc075b8d8cf7a87b3f08fad2fba0f5d13295e), because of\naudio underruns.\n\nReported by Rene Herman \u003crene.herman@keyaccess.nl\u003e, who also pinpointed\nthe exact cause of the underruns:\n\n  \"Audio underruns galore, with only ogg123 and firefox (browsing the\n   GIT tree online is also a nice trigger by the way).\n\n   If I back it out, everything is fine for me again.\"\n\nCc: Rene Herman \u003crene.herman@keyaccess.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2",
      "tree": "f24f05bf95ae9c4164266da87f36fed61c5c2206",
      "parents": [
        "e7edf9cdeddc0cff125e8e658216efb2ff2b2219"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:27:50 2006 -0700"
      },
      "message": "[PATCH] Remove __devinitdata from notifier block definitions\n\nFew of the notifier_chain_register() callers use __devinitdata in the\ndefinition of notifier_block data structure.  It is incorrect as the\ndata structure should be available after the initializations (they do\nnot unregister them during initializations).\n\nThis was leading to an oops when notifier_chain_register() call is\ninvoked for those callback chains after initialization.\n\nThis patch fixes all such usages to _not_ have the notifier_block data\nstructure in the init data section.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a5bc075b8d8cf7a87b3f08fad2fba0f5d13295e",
      "tree": "977c14c704c44a905014ff9b3c0f613983793109",
      "parents": [
        "5ce74abe788a26698876e66b9c9ce7e7acc25413"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Apr 10 22:52:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:30 2006 -0700"
      },
      "message": "[PATCH] sched: don\u0027t awaken RT tasks on expired array\n\nRT tasks are being awakened on the expired array when expired_starving() is\ntrue, whereas they really should be excluded.  Fix.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ce74abe788a26698876e66b9c9ce7e7acc25413",
      "tree": "2e0c2cfc1aad32a9e2903f5e01256f1ed43982e4",
      "parents": [
        "019ff2d57b0bbe77d1eca19f5b634e5e7ff2a0b8"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Apr 10 22:52:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:30 2006 -0700"
      },
      "message": "[PATCH] sched: fix interactive task starvation\n\nFix a starvation problem that occurs when a stream of highly interactive tasks\ndelay an array switch for extended periods despite EXPIRED_STARVING(rq) being\ntrue.  AFAIKT, the only choice is to enqueue awakening tasks on the expired\narray in this case.\n\nWithout this patch, it can be nearly impossible to remotely login to a busy\nserver, and interactive shell commands can starve for minutes.\n\nAlso, convert the EXPIRED_STARVING macro into an inline function which humans\ncan understand.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d425b274ba83ba4e7746a40446ec0ba3267de51f",
      "tree": "73d3342be7ba8ef8d18a8c3cc9fea6e026e2bffa",
      "parents": [
        "7c4bb1f9b3788309e1159961c606ba0bdf7ed382"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] sched: activate SCHED BATCH expired\n\nTo increase the strength of SCHED_BATCH as a scheduling hint we can\nactivate batch tasks on the expired array since by definition they are\nlatency insensitive tasks.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c4bb1f9b3788309e1159961c606ba0bdf7ed382",
      "tree": "47051dcde0cc24ec123e9ae3043465cc677a8c06",
      "parents": [
        "5138930e6a69f1c7851a82d7cedaa01fad029fcf"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] sched: remove on runqueue requeueing\n\nOn runqueue time is used to elevate priority in schedule().\n\nIn the code it currently requeues tasks even if their priority is not\nelevated, which would end up placing them at the end of their runqueue\narray effectively delaying them instead of improving their priority.\n\nBug spotted by Mike Galbraith \u003cefault@gmx.de\u003e\n\nThis patch removes this requeueing.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5138930e6a69f1c7851a82d7cedaa01fad029fcf",
      "tree": "cef55be8eb6d798188127f2ca7f53ed25ef88422",
      "parents": [
        "e72ff0bb2c163eb13014ba113701bd42dab382fe"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] sched: include noninteractive sleep in idle detect\n\nTasks waiting in SLEEP_NONINTERACTIVE state can now get to best priority so\nthey need to be included in the idle detection code.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e72ff0bb2c163eb13014ba113701bd42dab382fe",
      "tree": "6e4b8063442b3e020af474c2d4be124f01b0cb88",
      "parents": [
        "e7c38cb49c6cc05bc11f70d9e9889da1c4a0d37f"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: dont decrease idle sleep avg\n\nWe watch for tasks that sleep extended periods and don\u0027t allow one single\nprolonged sleep period from elevating priority to maximum bonus to prevent cpu\nbound tasks from getting high priority with single long sleeps.  There is a\nbug in the current code that also penalises tasks that already have high\npriority.  Correct that bug.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7c38cb49c6cc05bc11f70d9e9889da1c4a0d37f",
      "tree": "538e26f5ba32d052083dea53536c5366978838c8",
      "parents": [
        "3dee386e14045484a6c41c8f03a263f9d79de740"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: make task_noninteractive use sleep_type\n\nAlterations to the pipe code in the kernel made it possible for relative\nstarvation to occur with tasks that slept waiting on a pipe getting unfair\npriority bonuses even if they were otherwise fully cpu bound so the\nTASK_NONINTERACTIVE flag was introduced which prevented any change to\nsleep_avg while sleeping waiting on a pipe.  This change also leads to the\nconverse though, preventing any priority boost from occurring in truly\ninteractive tasks that wait on pipes.\n\nConvert the TASK_NONINTERACTIVE flag to set sleep_type to SLEEP_NONINTERACTIVE\nwhich will allow a linear bonus to priority based on sleep time thus allowing\ninteractive tasks to get high priority if they sleep enough.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3dee386e14045484a6c41c8f03a263f9d79de740",
      "tree": "4b1643508ad94981e8d4deb5136d0a626e60932d",
      "parents": [
        "db1b1fefc2cecbff2e4214062fa8c680cb6e7b7d"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: cleanup task_activated()\n\nThe activated flag in task_struct is used to track different sleep types and\nits usage is somewhat obfuscated.  Convert the variable to an enum with more\ndescriptive names without altering the function.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "db1b1fefc2cecbff2e4214062fa8c680cb6e7b7d",
      "tree": "ad8e68882f7c36216e16ab264101c5da96ccd5c9",
      "parents": [
        "3055addadbe9bfb2365006a1c13fd342a8d30d52"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Fri Mar 31 02:31:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: reduce overhead of calc_load\n\nCurrently, count_active_tasks() calls both nr_running() \u0026\nnr_interruptible().  Each of these functions does a \"for_each_cpu\" \u0026 reads\nvalues from the runqueue of each cpu.  Although this is not a lot of\ninstructions, each runqueue may be located on different node.  Depending on\nthe architecture, a unique TLB entry may be required to access each\nrunqueue.\n\nSince there may be more runqueues than cpu TLB entries, a scan of all\nrunqueues can trash the TLB.  Each memory reference incurs a TLB miss \u0026\nrefill.\n\nIn addition, the runqueue cacheline that contains nr_running \u0026\nnr_uninterruptible may be evicted from the cache between the two passes.\nThis causes unnecessary cache misses.\n\nCombining nr_running() \u0026 nr_interruptible() into a single function\nsubstantially reduces the TLB \u0026 cache misses on large systems.  This should\nhave no measureable effect on smaller systems.\n\nOn a 128p IA64 system running a memory stress workload, the new function\nreduced the overhead of calc_load() from 605 usec/call to 324 usec/call.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a945022778f100115d0cb6234eb28fc1b15ccaf",
      "tree": "85df4b5f7dd8bf59557091379c59b23b09115bf6",
      "parents": [
        "631d6747e1d877a4baa924cb373b8b9511a53e5e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 01:56:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] for_each_possible_cpu: fixes for generic part\n\nreplaces for_each_cpu with for_each_possible_cpu().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0806903316d516a3b3851c51cea5c71724d9051d",
      "tree": "05b453747a68a32bfd1d668a53963a4bb0bc36d1",
      "parents": [
        "1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Mar 27 01:15:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:44 2006 -0800"
      },
      "message": "[PATCH] sched: fix group power for allnodes_domains\n\nCurrent sched groups power calculation for allnodes_domains is wrong.  We\nshould really be using cumulative power of the physical packages in that\ngroup (similar to the calculation in node_domains)\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7",
      "tree": "ccfa4927ebc7a8f663f9ac9e7789a713a33253ff",
      "parents": [
        "77e4bfbcf071f795b54862455dce8902b3fc29c2"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Mar 27 01:15:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:43 2006 -0800"
      },
      "message": "[PATCH] sched: new sched domain for representing multi-core\n\nAdd a new sched domain for representing multi-core with shared caches\nbetween cores.  Consider a dual package system, each package containing two\ncores and with last level cache shared between cores with in a package.  If\nthere are two runnable processes, with this appended patch those two\nprocesses will be scheduled on different packages.\n\nOn such systems, with this patch we have observed 8% perf improvement with\nspecJBB(2 warehouse) benchmark and 35% improvement with CFP2000 rate(with 2\nusers).\n\nThis new domain will come into play only on multi-core systems with shared\ncaches.  On other systems, this sched domain will be removed by domain\ndegeneration code.  This new domain can be also used for implementing power\nsavings policy (see OLS 2005 CMP kernel scheduler paper for more details..\nI will post another patch for power savings policy soon)\n\nMost of the arch/* file changes are for cpu_coregroup_map() implementation.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77e4bfbcf071f795b54862455dce8902b3fc29c2",
      "tree": "cde3cb39a72de0bb8b42c1c5752f25b3b16bf5ee",
      "parents": [
        "013d3868143387be99bb0373d49452eaa3c55d41"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@lisas.de",
        "time": "Mon Mar 27 01:15:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:43 2006 -0800"
      },
      "message": "[PATCH] Small schedule() optimization\n\nsmall schedule() microoptimization.\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "013d3868143387be99bb0373d49452eaa3c55d41",
      "tree": "584f39a6d76ccfac6b77d2480b9b43b556547f3d",
      "parents": [
        "491214716755894986b99e0cf0a08b830d244577"
      ],
      "author": {
        "name": "Martin Andersson",
        "email": "martin.andersson@control.lth.se",
        "time": "Mon Mar 27 01:15:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:43 2006 -0800"
      },
      "message": "[PATCH] sched: fix task interactivity calculation\n\nIs a truncation error in kernel/sched.c triggered when the nice value is\nnegative.  The affected code is used in the TASK_INTERACTIVE macro.\n\nThe code is:\n#define SCALE(v1,v1_max,v2_max) \\\n\t(v1) * (v2_max) / (v1_max)\n\nwhich is used in this way:\nSCALE(TASK_NICE(p), 40, MAX_BONUS)\n\nComments in the code says:\n  * This part scales the interactivity limit depending on niceness.\n  *\n  * We scale it linearly, offset by the INTERACTIVE_DELTA delta.\n  * Here are a few examples of different nice levels:\n  *\n  *  TASK_INTERACTIVE(-20): [1,1,1,1,1,1,1,1,1,0,0]\n  *  TASK_INTERACTIVE(-10): [1,1,1,1,1,1,1,0,0,0,0]\n  *  TASK_INTERACTIVE(  0): [1,1,1,1,0,0,0,0,0,0,0]\n  *  TASK_INTERACTIVE( 10): [1,1,0,0,0,0,0,0,0,0,0]\n  *  TASK_INTERACTIVE( 19): [0,0,0,0,0,0,0,0,0,0,0]\n  *\n  * (the X axis represents the possible -5 ... 0 ... +5 dynamic\n  *  priority range a task can explore, a value of \u00271\u0027 means the\n  *  task is rated interactive.)\n\nHowever, the current code does not scale it linearly and the result differs\nfrom the given examples.  If the mathematical function \"floor\" is used when\nthe nice value is negative instead of the truncation one gets when using\ninteger division, the result conforms to the documentation.\n\nOutput of TASK_INTERACTIVE when using the kernel code:\nnice    dynamic priorities\n-20     1     1     1     1     1     1     1     1     1     0     0\n-19     1     1     1     1     1     1     1     1     0     0     0\n-18     1     1     1     1     1     1     1     1     0     0     0\n-17     1     1     1     1     1     1     1     1     0     0     0\n-16     1     1     1     1     1     1     1     1     0     0     0\n-15     1     1     1     1     1     1     1     0     0     0     0\n-14     1     1     1     1     1     1     1     0     0     0     0\n-13     1     1     1     1     1     1     1     0     0     0     0\n-12     1     1     1     1     1     1     1     0     0     0     0\n-11     1     1     1     1     1     1     0     0     0     0     0\n-10     1     1     1     1     1     1     0     0     0     0     0\n  -9     1     1     1     1     1     1     0     0     0     0     0\n  -8     1     1     1     1     1     1     0     0     0     0     0\n  -7     1     1     1     1     1     0     0     0     0     0     0\n  -6     1     1     1     1     1     0     0     0     0     0     0\n  -5     1     1     1     1     1     0     0     0     0     0     0\n  -4     1     1     1     1     1     0     0     0     0     0     0\n  -3     1     1     1     1     0     0     0     0     0     0     0\n  -2     1     1     1     1     0     0     0     0     0     0     0\n  -1     1     1     1     1     0     0     0     0     0     0     0\n  0      1     1     1     1     0     0     0     0     0     0     0\n  1      1     1     1     1     0     0     0     0     0     0     0\n  2      1     1     1     1     0     0     0     0     0     0     0\n  3      1     1     1     1     0     0     0     0     0     0     0\n  4      1     1     1     0     0     0     0     0     0     0     0\n  5      1     1     1     0     0     0     0     0     0     0     0\n  6      1     1     1     0     0     0     0     0     0     0     0\n  7      1     1     1     0     0     0     0     0     0     0     0\n  8      1     1     0     0     0     0     0     0     0     0     0\n  9      1     1     0     0     0     0     0     0     0     0     0\n10      1     1     0     0     0     0     0     0     0     0     0\n11      1     1     0     0     0     0     0     0     0     0     0\n12      1     0     0     0     0     0     0     0     0     0     0\n13      1     0     0     0     0     0     0     0     0     0     0\n14      1     0     0     0     0     0     0     0     0     0     0\n15      1     0     0     0     0     0     0     0     0     0     0\n16      0     0     0     0     0     0     0     0     0     0     0\n17      0     0     0     0     0     0     0     0     0     0     0\n18      0     0     0     0     0     0     0     0     0     0     0\n19      0     0     0     0     0     0     0     0     0     0     0\n\nOutput of TASK_INTERACTIVE when using \"floor\"\nnice    dynamic priorities\n-20     1     1     1     1     1     1     1     1     1     0     0\n-19     1     1     1     1     1     1     1     1     1     0     0\n-18     1     1     1     1     1     1     1     1     1     0     0\n-17     1     1     1     1     1     1     1     1     1     0     0\n-16     1     1     1     1     1     1     1     1     0     0     0\n-15     1     1     1     1     1     1     1     1     0     0     0\n-14     1     1     1     1     1     1     1     1     0     0     0\n-13     1     1     1     1     1     1     1     1     0     0     0\n-12     1     1     1     1     1     1     1     0     0     0     0\n-11     1     1     1     1     1     1     1     0     0     0     0\n-10     1     1     1     1     1     1     1     0     0     0     0\n  -9     1     1     1     1     1     1     1     0     0     0     0\n  -8     1     1     1     1     1     1     0     0     0     0     0\n  -7     1     1     1     1     1     1     0     0     0     0     0\n  -6     1     1     1     1     1     1     0     0     0     0     0\n  -5     1     1     1     1     1     1     0     0     0     0     0\n  -4     1     1     1     1     1     0     0     0     0     0     0\n  -3     1     1     1     1     1     0     0     0     0     0     0\n  -2     1     1     1     1     1     0     0     0     0     0     0\n  -1     1     1     1     1     1     0     0     0     0     0     0\n   0     1     1     1     1     0     0     0     0     0     0     0\n   1     1     1     1     1     0     0     0     0     0     0     0\n   2     1     1     1     1     0     0     0     0     0     0     0\n   3     1     1     1     1     0     0     0     0     0     0     0\n   4     1     1     1     0     0     0     0     0     0     0     0\n   5     1     1     1     0     0     0     0     0     0     0     0\n   6     1     1     1     0     0     0     0     0     0     0     0\n   7     1     1     1     0     0     0     0     0     0     0     0\n   8     1     1     0     0     0     0     0     0     0     0     0\n   9     1     1     0     0     0     0     0     0     0     0     0\n  10     1     1     0     0     0     0     0     0     0     0     0\n  11     1     1     0     0     0     0     0     0     0     0     0\n  12     1     0     0     0     0     0     0     0     0     0     0\n  13     1     0     0     0     0     0     0     0     0     0     0\n  14     1     0     0     0     0     0     0     0     0     0     0\n  15     1     0     0     0     0     0     0     0     0     0     0\n  16     0     0     0     0     0     0     0     0     0     0     0\n  17     0     0     0     0     0     0     0     0     0     0     0\n  18     0     0     0     0     0     0     0     0     0     0     0\n  19     0     0     0     0     0     0     0     0     0     0     0\n\nSigned-off-by: Martin Andersson \u003cmartin.andersson@control.lth.se\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c6fd91f0bdcd294a0ae0ba2b2a7f7456ef4b7144",
      "tree": "1d095d1761a44118f101b2ce9697346ff168753a",
      "parents": [
        "c9becf58d935265919bf1cb348b2c04492c8949d"
      ],
      "author": {
        "name": "bibo mao",
        "email": "bibo_mao@linux.intel.com",
        "time": "Sun Mar 26 01:38:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:04 2006 -0800"
      },
      "message": "[PATCH] kretprobe instance recycled by parent process\n\nWhen kretprobe probes the schedule() function, if the probed process exits\nthen schedule() will never return, so some kretprobe instances will never\nbe recycled.\n\nIn this patch the parent process will recycle retprobe instances of the\nprobed function and there will be no memory leak of kretprobe instances.\n\nSigned-off-by: bibo mao \u003cbibo.mao@intel.com\u003e\nCc: Masami Hiramatsu \u003chiramatu@sdl.hitachi.co.jp\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "91368d73e4b60d577ad171e5bd315b564265fcdb",
      "tree": "067d3738aa4bf8d49623632bb47952aca6f8f965",
      "parents": [
        "3257545e40a769cbef98cf13eabe50f00712991e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:16 2006 -0800"
      },
      "message": "[PATCH] make bug messages more consistent\n\nConsolidate all kernel bug printouts to begin with the \"BUG: \" string.\nMakes it easier to find them in large bootup logs.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e9028b0ff2bad1954568604dc17725692c8524d6",
      "tree": "dbff742d39520574e5985930333f1d421282e080",
      "parents": [
        "5be0e9511990dc307670dc66a42073db96b20f26"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Thu Mar 23 02:59:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:02 2006 -0800"
      },
      "message": "[PATCH] fix scheduler deadlock\n\nWe have noticed lockups during boot when stress testing kexec on ppc64.\nTwo cpus would deadlock in scheduler code trying to grab already taken\nspinlocks.\n\nThe double_rq_lock code uses the address of the runqueue to order the\ntaking of multiple locks.  This address is a per cpu variable:\n\n\tif (rq1 \u003c rq2) {\n\t\tspin_lock(\u0026rq1-\u003elock);\n\t\tspin_lock(\u0026rq2-\u003elock);\n\t} else {\n\t\tspin_lock(\u0026rq2-\u003elock);\n\t\tspin_lock(\u0026rq1-\u003elock);\n\t}\n\nOn the other hand, the code in wake_sleeping_dependent uses the cpu id\norder to grab locks:\n\n\tfor_each_cpu_mask(i, sibling_map)\n\t\tspin_lock(\u0026cpu_rq(i)-\u003elock);\n\nThis means we rely on the address of per cpu data increasing as cpu ids\nincrease.  While this will be true for the generic percpu implementation it\nmay not be true for arch specific implementations.\n\nOne way to solve this is to always take runqueues in cpu id order. To do\nthis we add a cpu variable to the runqueue and check it in the\ndouble runqueue locking functions.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9430d58e34ec3861e1ca72f8e49105b227aad327",
      "tree": "ac8f8295131fbf3c0ddc689fa9887a8c95b0814d",
      "parents": [
        "e952f31bce6e9f64db01f607abc46529ba57ac9e"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Mar 22 00:07:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:54 2006 -0800"
      },
      "message": "[PATCH] sched: remove sleep_avg multiplier\n\nRemove the sleep_avg multiplier.  This multiplier was necessary back when\nwe had 10 seconds of dynamic range in sleep_avg, but now that we only have\none second, it causes that one second to be compressed down to 100ms in\nsome cases.  This is particularly noticeable when compiling a kernel in a\nslow NFS mount, and I believe it to be a very likely candidate for other\nrecently reported network related interactivity problems.\n\nIn testing, I can detect no negative impact of this removal.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7cd9013be6c22f3ff6f777354f766c8c0b955e17",
      "tree": "328e45aadb4c5bc9b6cd530be03572070201f5e5",
      "parents": [
        "27d162e26a873883937b64526445877bd3341d23"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Mar 11 03:27:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 11 09:19:34 2006 -0800"
      },
      "message": "[PATCH] remove __put_task_struct_cb export again\n\nThe patch \u0027[PATCH] RCU signal handling\u0027 [1] added an export for\n__put_task_struct_cb, a put_task_struct helper newly introduced in that\npatch.  But the put_task_struct couldn\u0027t be used modular previously as\n__put_task_struct wasn\u0027t exported.  There are not callers of it in modular\ncode, and it shouldn\u0027t be exported because we don\u0027t want drivers to hold\nreferences to task_structs.\n\nThis patch removes the export and folds __put_task_struct into\n__put_task_struct_cb as there\u0027s no other caller.\n\n[1] http://www2.kernel.org/git/gitweb.cgi?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommit;h\u003de56d090310d7625ecb43a1eeebd479f04affb48b\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "81c29a857d3c8d6ea9c4f20d196c36bf0a07c615",
      "tree": "3ebb7813439ec75e1afbc4385431388cd7158d67",
      "parents": [
        "4d6660eb3665f22d16aff466eb9d45df6102b254"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 07 21:55:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:14:00 2006 -0800"
      },
      "message": "[PATCH] idle threads should have a sane -\u003etimestamp value\n\nIdle threads should have a sane -\u003etimestamp value, to avoid init kernel\nthread(s) from inheriting it and causing miscalculations in\ntry_to_wake_up().\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e.\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ba7b0a14b2ec19583bedbcdbea7f1c5008fc922",
      "tree": "5047966d39ce26f7afd96b794dd4dc6a995458a5",
      "parents": [
        "91c0bce29e4050a59ee5fdc1192b60bbf8693a6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 17:38:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 17:38:49 2006 -0800"
      },
      "message": "Add early-boot-safety check to cond_resched()\n\nJust to be safe, we should not trigger a conditional reschedule during\nthe early boot sequence.  We\u0027ve historically done some questionable\nearly on, and the safety warnings in __might_sleep() are generally\nturned off during that period, so there might be problems lurking.\n\nThis affects CONFIG_PREEMPT_VOLUNTARY, which takes over might_sleep() to\ncause a voluntary conditional reschedule.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4bbf39c29bc3409d6454faf0dfa1b3b0aa2ac2af",
      "tree": "2f8ed8aa42a1645a9cb3306ce93c9e4b63536630",
      "parents": [
        "05efc67d100ff6c3364604b72729addf1a86fdab"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 17 13:52:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 13:59:26 2006 -0800"
      },
      "message": "[PATCH] Introduce CONFIG_DEFAULT_MIGRATION_COST\n\nHeiko Carstens \u003cheiko.carstens@de.ibm.com\u003e wrote:\n\n  The boot sequence on s390 sometimes takes ages and we spend a very long\n  time (up to one or two minutes) in calibrate_migration_costs.  The time\n  spent there differs from boot to boot.  Also the calculated costs differ\n  a lot.  I\u0027ve seen differences by up to a factor of 15 (yes, factor not\n  percent).  Also I doubt that making these measurements make much sense on\n  a completely virtualized architecture where you cannot tell how much cpu\n  time you will get anyway.\n\nSo introduce the CONFIG_DEFAULT_MIGRATION_COST method for an architecture\nto set the scheduler migration costs.  This turns off automatic detection\nof migration costs.  Makes sense on virtual platforms, where migration\ncosts are hard to measure accurately.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6077cb80cde4506720f9165eba99ee07438513f",
      "tree": "f4462e51cf0a14a113c0c524711636c8429424bb",
      "parents": [
        "f822566165dd46ff5de9bf895cfa6c51f53bb0c4"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Tue Feb 14 13:53:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] sched: revert \"filter affine wakeups\"\n\nRevert commit d7102e95b7b9c00277562c29aad421d2d521c5f6:\n\n    [PATCH] sched: filter affine wakeups\n\nApparently caused more than 10% performance regression for aim7 benchmark.\nThe setup in use is 16-cpu HP rx8620, 64Gb of memory and 12 MSA1000s with 144\ndisks.  Each disk is 72Gb with a single ext3 filesystem (courtesy of HP, who\nsupplied benchmark results).\n\nThe problem is, for aim7, the wake-up pattern is random, but it still needs\nload balancing action in the wake-up path to achieve best performance.  With\nthe above commit, lack of load balancing hurts that workload.\n\nHowever, for workloads like database transaction processing, the requirement\nis exactly opposite.  In the wake up path, best performance is achieved with\nabsolutely zero load balancing.  We simply wake up the process on the CPU that\nit was previously run.  Worst performance is obtained when we do load\nbalancing at wake up.\n\nThere isn\u0027t an easy way to auto detect the workload characteristics.  Ingo\u0027s\nearlier patch that detects idle CPU and decide whether to load balance or not\ndoesn\u0027t perform with aim7 either since all CPUs are busy (it causes even\nbigger perf.  regression).\n\nRevert commit d7102e95b7b9c00277562c29aad421d2d521c5f6, which causes more\nthan 10% performance regression with aim7.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a2000572ad511f5f43091ed7bd2cc3b913104a1e",
      "tree": "56279392dece8e11c33d3754854551aa6773095b",
      "parents": [
        "4b0955a6edb9b058ca1314ca210a92ee166c4d9a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Feb 10 01:51:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 10 08:13:11 2006 -0800"
      },
      "message": "[PATCH] sched: remove smpnice\n\nI don\u0027t think the code is quite ready, which is why I asked for Peter\u0027s\nadditions to also be merged before I acked it (although it turned out that\nit still isn\u0027t quite ready with his additions either).\n\nBasically I have had similar observations to Suresh in that it does not\nplay nicely with the rest of the balancing infrastructure (and raised\nsimilar concerns in my review).\n\nThe samples (group of 4) I got for \"maximum recorded imbalance\" on a 2x2\nSMP+HT Xeon are as follows:\n\n            | Following boot | hackbench 20        | hackbench 40\n -----------+----------------+---------------------+---------------------\n 2.6.16-rc2 | 30,37,100,112  | 5600,5530,6020,6090 | 6390,7090,8760,8470\n +nosmpnice |  3, 2,  4,  2  |   28, 150, 294, 132 |  348, 348, 294, 347\n\nHackbench raw performance is down around 15% with smpnice (but that in\nitself isn\u0027t a huge deal because it is just a benchmark).  However, the\nsamples show that the imbalance passed into move_tasks is increased by\nabout a factor of 10-30.  I think this would also go some way to explaining\nlatency blips turning up in the balancing code (though I haven\u0027t actually\nmeasured that).\n\nWe\u0027ll probably have to revert this in the SUSE kernel.\n\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nCc: \"Martin J. Bligh\" \u003cmbligh@aracnet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd576c9523fbf23e94fb7dbe05d2ae1cf96864e4",
      "tree": "0433ff1a1d417c29f94f05cb6ed83fca32eb7a62",
      "parents": [
        "62cfe7efc4e6ba44b0903c53f09d37de59160afa"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Sat Feb 04 23:27:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:51 2006 -0800"
      },
      "message": "[PATCH] sched: only print migration_cost once per boot\n\nmigration_cost prints after every CPU hotplug event.  Make it print only\nonce at boot.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88a2a4ac6b671a4b0dd5d2d762418904c05f4104",
      "tree": "8c30052a0d7fadec37c785a42a71b28d0a9c5fcf",
      "parents": [
        "cef5076987dd545ac74f4efcf1c962be8eac34b0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Feb 04 23:27:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:51 2006 -0800"
      },
      "message": "[PATCH] percpu data: only iterate over possible CPUs\n\npercpu_data blindly allocates bootmem memory to store NR_CPUS instances of\ncpudata, instead of allocating memory only for possible cpus.\n\nAs a preparation for changing that, we need to convert various 0 -\u003e NR_CPUS\nloops to use for_each_cpu().\n\n(The above only applies to users of asm-generic/percpu.h.  powerpc has gone it\nalone and is presently only allocating memory for present CPUs, so it\u0027s\ncurrently corrupting memory).\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2f7016d917faef8f1e016b4a7bd7f594694480b6",
      "tree": "06aa6181a5609ad1e3815a08cf9a67df4ab08137",
      "parents": [
        "0f07496144c270f10d0ad06b70b9c9387d5527fd"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Wed Feb 01 03:05:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:13 2006 -0800"
      },
      "message": "[PATCH] sys_sched_getaffinity() \u0026 hotplug\n\nChange sched_getaffinity() so that it returns a bitmap that indicates the\nlegally schedulable cpus that a task is allowed to run on.\n\nWithout this patch, if CONFIG_HOTPLUG_CPU is enabled, sched_getaffinity()\nunconditionally returns (at least on IA64) a mask with NR_CPUS bits set.\nThis conveys no useful infornmation except for a kernel compile option.\n\nThis fixes a breakage we obseved running recent kernels. We have MPI jobs\nthat use sched_getaffinity() to determine where to place their threads.\nPlacing them on non-existant cpus is problematic :-)\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nathan Lynch \u003cntl@pobox.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70b4d63e98fd93fb9742708a54f872cba24e0fea",
      "tree": "016df3fe69c8ca9240d489f846b69674b8746a2d",
      "parents": [
        "7fcdf327bedfe9cc418af49429d0fc0e48d98de9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 30 20:24:38 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 31 10:23:31 2006 -0800"
      },
      "message": "[PATCH] Fix boot-time slowdown for measure_migration_cost\n\nThis reduces the amount of time the migration cost calculations cost\nduring bootup. Based on numbers by Tony Luck \u003ctony.luck@intel.com\u003e.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c21761f168894b356626c847fe13be39605d76b4",
      "tree": "7b3a1efba6ae34ca313619474b0060beff8267af",
      "parents": [
        "147b31cf09ee493aa71c87c0dd2eef74b6b2aeba"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Wed Jan 18 17:43:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:22 2006 -0800"
      },
      "message": "[PATCH] fix sched_setscheduler semantics\n\nCurrently, a negative policy argument passed into the\n\u0027sys_sched_setscheduler()\u0027 system call, will return with success.  However,\nthe manpage for \u0027sys_sched_setscheduler\u0027 says:\n\nEINVAL The scheduling policy is not one of the recognized policies, or the\n              parameter p does not make sense for the policy.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0a9499c3dd50d333e2aedb7e894873c58da3785",
      "tree": "1b9610020884091984ce8290c70bebdc3e7bb09b",
      "parents": [
        "2d0cfb527944c2cfee2cffab14f52d483e329fcf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 14 13:20:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:25:20 2006 -0800"
      },
      "message": "[PATCH] sched: add new SCHED_BATCH policy\n\nAdd a new SCHED_BATCH (3) scheduling policy: such tasks are presumed\nCPU-intensive, and will acquire a constant +5 priority level penalty.  Such\npolicy is nice for workloads that are non-interactive, but which do not\nwant to give up their nice levels.  The policy is also useful for workloads\nthat want a deterministic scheduling policy without interactivity causing\nextra preemptions (between that workload\u0027s tasks).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d7102e95b7b9c00277562c29aad421d2d521c5f6",
      "tree": "3ad3d94c329095962c6cd6dcea41e1ccf2db5a7e",
      "parents": [
        "198e2f181163233b379dc7ce8a6d7516b84042e7"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Thu Jan 12 01:05:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:50 2006 -0800"
      },
      "message": "[PATCH] sched: filter affine wakeups\n\n\r)\n\nFrom: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\n\nTrack the last waker CPU, and only consider wakeup-balancing if there\u0027s a\nmatch between current waker CPU and the previous waker CPU.  This ensures\nthat there is some correlation between two subsequent wakeup events before\nwe move the task.  Should help random-wakeup workloads on large SMP\nsystems, by reducing the migration attempts by a factor of nr_cpus.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "198e2f181163233b379dc7ce8a6d7516b84042e7",
      "tree": "cc4067ca1c81034ba8d214b7ff4c39f2f5be66ee",
      "parents": [
        "4dc7a0bbeb6882ad665e588e82fabe5bb4645f2f"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Thu Jan 12 01:05:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:50 2006 -0800"
      },
      "message": "[PATCH] scheduler cache-hot-autodetect\n\n\r)\n\nFrom: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nThis is the latest version of the scheduler cache-hot-auto-tune patch.\n\nThe first problem was that detection time scaled with O(N^2), which is\nunacceptable on larger SMP and NUMA systems. To solve this:\n\n- I\u0027ve added a \u0027domain distance\u0027 function, which is used to cache\n  measurement results. Each distance is only measured once. This means\n  that e.g. on NUMA distances of 0, 1 and 2 might be measured, on HT\n  distances 0 and 1, and on SMP distance 0 is measured. The code walks\n  the domain tree to determine the distance, so it automatically follows\n  whatever hierarchy an architecture sets up. This cuts down on the boot\n  time significantly and removes the O(N^2) limit. The only assumption\n  is that migration costs can be expressed as a function of domain\n  distance - this covers the overwhelming majority of existing systems,\n  and is a good guess even for more assymetric systems.\n\n  [ People hacking systems that have assymetries that break this\n    assumption (e.g. different CPU speeds) should experiment a bit with\n    the cpu_distance() function. Adding a -\u003emigration_distance factor to\n    the domain structure would be one possible solution - but lets first\n    see the problem systems, if they exist at all. Lets not overdesign. ]\n\nAnother problem was that only a single cache-size was used for measuring\nthe cost of migration, and most architectures didnt set that variable\nup. Furthermore, a single cache-size does not fit NUMA hierarchies with\nL3 caches and does not fit HT setups, where different CPUs will often\nhave different \u0027effective cache sizes\u0027. To solve this problem:\n\n- Instead of relying on a single cache-size provided by the platform and\n  sticking to it, the code now auto-detects the \u0027effective migration\n  cost\u0027 between two measured CPUs, via iterating through a wide range of\n  cachesizes. The code searches for the maximum migration cost, which\n  occurs when the working set of the test-workload falls just below the\n  \u0027effective cache size\u0027. I.e. real-life optimized search is done for\n  the maximum migration cost, between two real CPUs.\n\n  This, amongst other things, has the positive effect hat if e.g. two\n  CPUs share a L2/L3 cache, a different (and accurate) migration cost\n  will be found than between two CPUs on the same system that dont share\n  any caches.\n\n(The reliable measurement of migration costs is tricky - see the source\nfor details.)\n\nFurthermore i\u0027ve added various boot-time options to override/tune\nmigration behavior.\n\nFirstly, there\u0027s a blanket override for autodetection:\n\n\tmigration_cost\u003d1000,2000,3000\n\nwill override the depth 0/1/2 values with 1msec/2msec/3msec values.\n\nSecondly, there\u0027s a global factor that can be used to increase (or\ndecrease) the autodetected values:\n\n\tmigration_factor\u003d120\n\nwill increase the autodetected values by 20%. This option is useful to\ntune things in a workload-dependent way - e.g. if a workload is\ncache-insensitive then CPU utilization can be maximized by specifying\nmigration_factor\u003d0.\n\nI\u0027ve tested the autodetection code quite extensively on x86, on 3\nP3/Xeon/2MB, and the autodetected values look pretty good:\n\nDual Celeron (128K L2 cache):\n\n ---------------------\n migration cost matrix (max_cache_size: 131072, cpu: 467 MHz):\n ---------------------\n           [00]    [01]\n [00]:     -     1.7(1)\n [01]:   1.7(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (0) 1.7 (1784008)\n ---------------------\n\nHere the slow memory subsystem dominates system performance, and even\nthough caches are small, the migration cost is 1.7 msecs.\n\nDual HT P4 (512K L2 cache):\n\n ---------------------\n migration cost matrix (max_cache_size: 524288, cpu: 2379 MHz):\n ---------------------\n           [00]    [01]    [02]    [03]\n [00]:     -     0.4(1)  0.0(0)  0.4(1)\n [01]:   0.4(1)    -     0.4(1)  0.0(0)\n [02]:   0.0(0)  0.4(1)    -     0.4(1)\n [03]:   0.4(1)  0.0(0)  0.4(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (33900) 0.4 (448514)\n ---------------------\n\nHere it can be seen that there is no migration cost between two HT\nsiblings (CPU#0/2 and CPU#1/3 are separate physical CPUs). A fast memory\nsystem makes inter-physical-CPU migration pretty cheap: 0.4 msecs.\n\n8-way P3/Xeon [2MB L2 cache]:\n\n ---------------------\n migration cost matrix (max_cache_size: 2097152, cpu: 700 MHz):\n ---------------------\n           [00]    [01]    [02]    [03]    [04]    [05]    [06]    [07]\n [00]:     -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [01]:  19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [02]:  19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [03]:  19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1) 19.2(1)\n [04]:  19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1) 19.2(1)\n [05]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1) 19.2(1)\n [06]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -    19.2(1)\n [07]:  19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1) 19.2(1)    -\n ---------------------\n cacheflush times [2]: 0.0 (0) 19.2 (19281756)\n ---------------------\n\nThis one has huge caches and a relatively slow memory subsystem - so the\nmigration cost is 19 msecs.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: \u003cwilder@us.ibm.com\u003e\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4cef0c61380888af99b054937ed391fb28757836",
      "tree": "dd385a0dc1ab143285f77e0f5c1923490eddc26f",
      "parents": [
        "fd78f11790c37e2165733699f50450500e63a7b3"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:44:57 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:04:56 2006 -0800"
      },
      "message": "[PATCH] x86_64: Make the cpu_*_maps in kernel/sched.c read mostly\n\nThey are referred to often so avoid potential false sharing for them.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59ede7b78db329949d9cdcd7064e22d357560ef",
      "tree": "f9dc9d464fdad5bfd464d983e77c1af031389dda",
      "parents": [
        "e16885c5ad624a6efe1b1bf764e075d75f65a788"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] move capable() to capability.h\n\n- Move capable() from sched.h to capability.h;\n\n- Use \u003clinux/capability.h\u003e where capable() is used\n\t(in include/, block/, ipc/, kernel/, a few drivers/,\n\tmm/, security/, \u0026 sound/;\n\tmany more drivers/ to go)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de5097c2e73f826302cd8957c225b3725e0c7553",
      "tree": "3d56ab6fd891088ac55a9ef529faf4360391a22f",
      "parents": [
        "408894ee4dd4debfdedd472eb4d8414892fc90f6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, more debugging code\n\nmore mutex debugging: check for held locks during memory freeing,\ntask exit, enable sysrq printouts, etc.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\n"
    },
    {
      "commit": "e56d090310d7625ecb43a1eeebd479f04affb48b",
      "tree": "2f479215dff4a2d8f3a9ed85200a5bc4f51534be",
      "parents": [
        "4369ef3c3e9d3bd9b879580678778f558d481e90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 08 01:01:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:40 2006 -0800"
      },
      "message": "[PATCH] RCU signal handling\n\nRCU tasklist_lock and RCU signal handling: send signals RCU-read-locked\ninstead of tasklist_lock read-locked.  This is a scalability improvement on\nSMP and a preemption-latency improvement under PREEMPT_RCU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "10ebffde3d3916026974352b7900e44afe2b243f",
      "tree": "ac88fa33694f5bea1b6958e1e56bcd4c9b95b002",
      "parents": [
        "a1261f54611ec4ad6a7ab7080f86747e3ac3685b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: introduce setup_thread_stack() and end_of_stack()\n\nencapsulates the rest of arch-dependent operations with thread_info access.\nTwo new helpers - setup_thread_stack() and end_of_stack().  For normal case\nthe former consists of copying thread_info of parent to new thread_info and\nthe latter returns pointer immediately past the end of thread_info.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1261f54611ec4ad6a7ab7080f86747e3ac3685b",
      "tree": "8a65c419da590e3712543f69284fb5f8cd613a37",
      "parents": [
        "7feacd53347c04aee789ba5d632eda0c3fc421c4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: introduce task_thread_info\n\nnew helper - task_thread_info(task).  On platforms that have thread_info\nallocated separately (i.e.  in default case) it simply returns\ntask-\u003ethread_info.  m68k wants (and for good reasons) to embed its thread_info\ninto task_struct.  So it will (in later patch) have task_thread_info() of its\nown.  For now we just add a macro for generic case and convert existing\ninstances of its body in core kernel to uses of new macro.  Obviously safe -\nall normal architectures get the same preprocessor output they used to get.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a47ab9371e664952b1104a70ec8e9b74db3f7a5f",
      "tree": "4efadd76dcd5c1712ce2e337ef2e8a87acdc8518",
      "parents": [
        "6730c3c14421b7c924d06e31bb66e0adad225547"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Wed Nov 09 15:45:29 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 16:07:44 2005 -0800"
      },
      "message": "[PATCH] optimize activate_task()\n\nrecalc_task_prio() is called from activate_task() to calculate dynamic\npriority and interactive credit for the activating task.  For real-time\nscheduling process, all that dynamic calculation is thrown away at the end\nbecause rt priority is fixed.  Patch to optimize recalc_task_prio() away\nfor rt processes.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cpiggin@cyberone.com.au\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64c7c8f88559624abdbe12b5da6502e8879f8d28",
      "tree": "02f85a35ddd0f24dec70e5d6ecd61073578fd8d6",
      "parents": [
        "5bfb5d690f36d316a5f3b4f7775fda996faa6b12"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue Nov 08 21:39:04 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:33 2005 -0800"
      },
      "message": "[PATCH] sched: resched and cpu_idle rework\n\nMake some changes to the NEED_RESCHED and POLLING_NRFLAG to reduce\nconfusion, and make their semantics rigid.  Improves efficiency of\nresched_task and some cpu_idle routines.\n\n* In resched_task:\n- TIF_NEED_RESCHED is only cleared with the task\u0027s runqueue lock held,\n  and as we hold it during resched_task, then there is no need for an\n  atomic test and set there. The only other time this should be set is\n  when the task\u0027s quantum expires, in the timer interrupt - this is\n  protected against because the rq lock is irq-safe.\n\n- If TIF_NEED_RESCHED is set, then we don\u0027t need to do anything. It\n  won\u0027t get unset until the task get\u0027s schedule()d off.\n\n- If we are running on the same CPU as the task we resched, then set\n  TIF_NEED_RESCHED and no further action is required.\n\n- If we are running on another CPU, and TIF_POLLING_NRFLAG is *not* set\n  after TIF_NEED_RESCHED has been set, then we need to send an IPI.\n\nUsing these rules, we are able to remove the test and set operation in\nresched_task, and make clear the previously vague semantics of\nPOLLING_NRFLAG.\n\n* In idle routines:\n- Enter cpu_idle with preempt disabled. When the need_resched() condition\n  becomes true, explicitly call schedule(). This makes things a bit clearer\n  (IMO), but haven\u0027t updated all architectures yet.\n\n- Many do a test and clear of TIF_NEED_RESCHED for some reason. According\n  to the resched_task rules, this isn\u0027t needed (and actually breaks the\n  assumption that TIF_NEED_RESCHED is only cleared with the runqueue lock\n  held). So remove that. Generally one less locked memory op when switching\n  to the idle thread.\n\n- Many idle routines clear TIF_POLLING_NRFLAG, and only set it in the inner\n  most polling idle loops. The above resched_task semantics allow it to be\n  set until before the last time need_resched() is checked before going into\n  a halt requiring interrupt wakeup.\n\n  Many idle routines simply never enter such a halt, and so POLLING_NRFLAG\n  can be always left set, completely eliminating resched IPIs when rescheduling\n  the idle task.\n\n  POLLING_NRFLAG width can be increased, to reduce the chance of resched IPIs.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ede3d0fba99520f268067917b50858d788bc41da",
      "tree": "5c33dc43c22f0c2b17db2f118156384baa35cae8",
      "parents": [
        "6dd4a85bb3ee0715415892c8b0f2a9bd08d31ca4"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Nov 08 21:39:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:32 2005 -0800"
      },
      "message": "[PATCH] sched: consider migration thread with smp nice\n\nThe intermittent scheduling of the migration thread at ultra high priority\nmakes the smp nice handling see that runqueue as being heavily loaded.  The\nmigration thread itself actually handles the balancing so its influence on\npriority balancing should be ignored.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6dd4a85bb3ee0715415892c8b0f2a9bd08d31ca4",
      "tree": "a53890e37a81c4da1d6e6f398aaea66880d4f996",
      "parents": [
        "3b0bd9bc6f3b8a47853d1b1de4520de3878e8941"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Nov 08 21:38:59 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:32 2005 -0800"
      },
      "message": "[PATCH] sched: correct smp_nice_bias\n\nThe priority biasing was off by mutliplying the total load by the total\npriority bias and this ruins the ratio of loads between runqueues. This\npatch should correct the ratios of loads between runqueues to be proportional\nto overall load. -2nd attempt.\n\nFrom: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\n\n  This patch fixes a divide-by-zero error that I hit on a two-way i386\n  machine.  rq-\u003enr_running is tested to be non-zero, but may change by the\n  time it is used in the division.  Saving the value to a local variable\n  ensures that the same value that is checked is used in the division.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b0bd9bc6f3b8a47853d1b1de4520de3878e8941",
      "tree": "5900a1fbf46d3c83aca09fca0ba664af40151082",
      "parents": [
        "dad1c65c8000f4485d8602e1875ded77e0d72133"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Nov 08 21:38:58 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:32 2005 -0800"
      },
      "message": "[PATCH] sched: smp nice bias busy queues on idle rebalance\n\nTo intensify the \u0027nice\u0027 support across physical cpus on SMP we can bias the\nloads on idle rebalancing. To prevent idle rebalance from trying to pull tasks\nfrom queues that appear heavily loaded we only bias the load if there is more\nthan one task running.\n\nAdd some minor micro-optimisations and have only one return from __source_load\nand __target_load functions.\n\nFix the fact that target_load was not biased by priority when type \u003d\u003d 0.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dad1c65c8000f4485d8602e1875ded77e0d72133",
      "tree": "2981648916055ac92bb809b88957ff429764dc02",
      "parents": [
        "738a2ccbcf8c2c1b039f1e76662dce60b22b694b"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Nov 08 21:38:57 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:32 2005 -0800"
      },
      "message": "[PATCH] sched: account rt tasks in prio_bias()\n\nReal time tasks\u0027 effect on prio_bias should be based on their real time\npriority level instead of their static_prio which is based on nice.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "738a2ccbcf8c2c1b039f1e76662dce60b22b694b",
      "tree": "b7359315b135d2266cef2bcfac10347ab34a3ad9",
      "parents": [
        "b910472dd3b7c1d51af9a594a759f642520c33e1"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Nov 08 21:38:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:32 2005 -0800"
      },
      "message": "[PATCH] sched: change prio bias only if queued\n\nprio_bias should only be adjusted in set_user_nice if p is actually currently\nqueued.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b910472dd3b7c1d51af9a594a759f642520c33e1",
      "tree": "cf2f0496b671bf8728f16b009c84e8811afbcae3",
      "parents": [
        "b54134be53be720da423692665ec215eb14a678b"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Nov 08 21:38:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:32 2005 -0800"
      },
      "message": "[PATCH] sched: implement nice support across physical cpus on SMP\n\nThis patch implements \u0027nice\u0027 support across physical cpus on SMP.\n\nIt introduces an extra runqueue variable prio_bias which is the sum of the\n(inverted) static priorities of all the tasks on the runqueue.\n\nThis is then used to bias busy rebalancing between runqueues to obtain good\ndistribution of tasks of different nice values.  By biasing the balancing only\nduring busy rebalancing we can avoid having any significant loss of throughput\nby not affecting the carefully tuned idle balancing already in place.  If all\ntasks are running at the same nice level this code should also have minimal\neffect.  The code is optimised out in the !CONFIG_SMP case.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4664957b8ec78533f542900cecf7c38fbdc0d8da",
      "tree": "57b34a69db7d00b35ff358d83bff50a0ebbb82ea",
      "parents": [
        "4936967374c1ad0eb3b734f24875e2484c3786cc"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:07 2005 -0800"
      },
      "message": "[PATCH] unexport idle_cpu\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4c4af7c8dc1eccdfb8c57e1684f08179b4407e6",
      "tree": "210773f292da3ba85818402f1945ee7b14ba8c71",
      "parents": [
        "cc658cfe3c66a6124b5a8db90cdcdd440201b1dc"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Nov 07 00:58:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:29 2005 -0800"
      },
      "message": "[PATCH] cpu hoptlug: avoid usage of smp_processor_id() in preemptible code\n\nReplace smp_processor_id() with any_online_cpu(cpu_online_map) in order to\navoid lots of \"BUG: using smp_processor_id() in preemptible [00000001]\ncode:...\" messages in case taking a cpu online fails.\n\nAll the traces start at the last notifier_call_chain(...) in kernel/cpu.c.\nSince we hold the cpu_control semaphore it shouldn\u0027t be any problem to access\ncpu_online_map.\n\nThe reason why cpu_up failed is simply that the cpu that was supposed to be\ntaken online wasn\u0027t even there.  That is because on s390 we never know when a\nnew cpu comes and therefore cpu_possible_map consists of only ones and doesn\u0027t\nreflect reality.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "889dfafe836ac9bb711f73d07a4c044cae177c0b",
      "tree": "ca46672a0d807f82e5d1b13e1b9dff0b561d5f36",
      "parents": [
        "c8ebce6eeb1f6f83fd8c0de209f1f7b627220a81"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Nov 04 18:54:30 2005 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 04 10:45:28 2005 -0800"
      },
      "message": "[PATCH] improve scheduler fairness a bit\n\nDo not transfer remaining time slice to another cpu on process exit.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4098f9918e068e51fed1727f6ba80efcec372378",
      "tree": "0495f14e29ad93c165988be49c70ec658fffd086",
      "parents": [
        "70a6a0cb92f24fd6bbe2e75299168909f735676a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:03:21 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:28 2005 -0800"
      },
      "message": "[PATCH] sched: hardcode non-smp set_cpus_allowed\n\nSimplify the UP (1 CPU) implementatin of set_cpus_allowed.\n\nThe one CPU is hardcoded to be cpu 0 - so just test for that bit, and avoid\nhaving to pick up the cpu_online_map.\n\nAlso, unexport cpu_online_map: it was only needed for set_cpus_allowed().\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "365e9c87a982c03d0af3886e29d877f581b59611",
      "tree": "d06c1918ca9fe6677d7e4e869555e095004274f7",
      "parents": [
        "861f2fb8e796022b4928cab9c74fca6681a1c557"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: update_hiwaters just in time\n\nupdate_mem_hiwater has attracted various criticisms, in particular from those\nconcerned with mm scalability.  Originally it was called whenever rss or\ntotal_vm got raised.  Then many of those callsites were replaced by a timer\ntick call from account_system_time.  Now Frank van Maarseveen reports that to\nbe found inadequate.  How about this?  Works for Frank.\n\nReplace update_mem_hiwater, a poor combination of two unrelated ops, by macros\nupdate_hiwater_rss and update_hiwater_vm.  Don\u0027t attempt to keep\nmm-\u003ehiwater_rss up to date at timer tick, nor every time we raise rss (usually\nby 1): those are hot paths.  Do the opposite, update only when about to lower\nrss (usually by many), or just before final accounting in do_exit.  Handle\nmm-\u003ehiwater_vm in the same way, though it\u0027s much less of an issue.  Demand\nthat whoever collects these hiwater statistics do the work of taking the\nmaximum with rss or total_vm.\n\nAnd there has been no collector of these hiwater statistics in the tree.  The\nnew convention needs an example, so match Frank\u0027s usage by adding a VmPeak\nline above VmSize to /proc/\u003cpid\u003e/status, and also a VmHWM line above VmRSS\n(High-Water-Mark or High-Water-Memory).\n\nThere was a particular anomaly during mremap move, that hiwater_vm might be\ncaptured too high.  A fleeting such anomaly remains, but it\u0027s quickly\ncorrected now, whereas before it would stick.\n\nWhat locking?  None: if the app is racy then these statistics will be racy,\nit\u0027s not worth any overhead to make them exact.  But whenever it suits,\nhiwater_vm is updated under exclusive mmap_sem, and hiwater_rss under\npage_table_lock (for now) or with preemption disabled (later on): without\ngoing to any trouble, minimize the time between reading current values and\nupdating, to minimize those occasions when a racing thread bumps a count up\nand back down in between.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb32051532fed727de0d513a9a578b54c0b7ea5a",
      "tree": "128c1b4f00aae8a26cbfc03805a0b53c9f35e546",
      "parents": [
        "958d24df82e021704437da0789c47fcf581e4b85"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Oct 26 01:59:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 10:39:43 2005 -0700"
      },
      "message": "[PATCH] export cpu_online_map\n\nWith CONFIG_SMP\u003dn:\n\n*** Warning: \"cpu_online_map\" [drivers/firmware/dcdbas.ko] undefined!\n\ndue to set_cpus_allowed().\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "da04c035039b5288039a5bf2d340866114ae994b",
      "tree": "b4f75ccaca55c1a65980aada0440c3f096b9b3eb",
      "parents": [
        "33333373c40633cec8791a284e84e4b116522c8f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:17:59 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 09:59:04 2005 -0700"
      },
      "message": "[PATCH] Fix spinlock owner debugging\n\nfix up the runqueue lock owner only if we truly did a context-switch\nwith the runqueue lock held. Impacts ia64, mips, sparc64 and arm.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1df5c10a5b40d1ad747e3de3caf28764153c5c8e",
      "tree": "87cda6983653d73a3ba4d24b1c8ba257254ac26b",
      "parents": [
        "c3ff8ec31c1249d268cd11390649768a12bec1b9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 12 07:59:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 12 07:59:21 2005 -0700"
      },
      "message": "Mark ia64-specific MCA/INIT scheduler hooks as dangerous\n\n..and only enable them for ia64. The functions are only valid\nwhen the whole system has been totally stopped and no scheduler\nactivity is ongoing on any CPU, and interrupts are globally\ndisabled.\n\nIn other words, they aren\u0027t useful for anything else. So make\nsure that nobody can use them by mistake.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "a2a979821b6ab75a4f143cfaa1c4672cc259ec10"
}
