)]}'
{
  "log": [
    {
      "commit": "16882c1e962b4be5122fc05aaf2afc10fd9e2d15",
      "tree": "c39cae4ae4874998d7e3486cd57d57613b05a89c",
      "parents": [
        "39b945a37bac2b692773a470890c8ba301485b15"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jun 08 21:20:41 2008 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 10 11:37:25 2008 +0200"
      },
      "message": "sched: fix TASK_WAKEKILL vs SIGKILL race\n\nschedule() has the special \"TASK_INTERRUPTIBLE \u0026\u0026 signal_pending()\" case,\nthis allows us to do\n\n\tcurrent-\u003estate \u003d TASK_INTERRUPTIBLE;\n\tschedule();\n\nwithout fear to sleep with pending signal.\n\nHowever, the code like\n\n\tcurrent-\u003estate \u003d TASK_KILLABLE;\n\tschedule();\n\nis not right, schedule() doesn\u0027t take TASK_WAKEKILL into account. This means\nthat mutex_lock_killable(), wait_for_completion_killable(), down_killable(),\nschedule_timeout_killable() can miss SIGKILL (and btw the second SIGKILL has\nno effect).\n\nIntroduce the new helper, signal_pending_state(), and change schedule() to\nuse it. Hopefully it will have more users, that is why the task\u0027s state is\npassed separately.\n\nNote this \"__TASK_STOPPED | __TASK_TRACED\" check in signal_pending_state().\nThis is needed to preserve the current behaviour (ptrace_notify). I hope\nthis check will be removed soon, but this (afaics good) change needs the\nseparate discussion.\n\nThe fast path is \"(state \u0026 (INTERRUPTIBLE | WAKEKILL)) + signal_pending(p)\",\nbasically the same that schedule() does now. However, this patch of course\nbloats schedule().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6715930654e06c4d2e66e718ea159079f71838f4",
      "tree": "6a0a19fb62f3e99cb5f6bf6c34ae541f7c30fb42",
      "parents": [
        "ea3f01f8afd3bc5daff915cc4ea5cc5ea9e7d427",
        "e490517a039a99d692cb3a5561941b0a5f576172"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 16:05:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 16:05:05 2008 +0200"
      },
      "message": "Merge commit \u0027linus/master\u0027 into sched-fixes-for-linus\n"
    },
    {
      "commit": "6363ca57c76b7b83639ca8c83fc285fa26a7880e",
      "tree": "b8630b4af286409efdd648920a546fae24d4db88",
      "parents": [
        "4285f594f84d1f0641fc962d00e6638dec4a19c4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:28:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 29 11:28:57 2008 +0200"
      },
      "message": "revert (\"sched: fair-group: SMP-nice for group scheduling\")\n\nYanmin Zhang reported:\n\nComparing with 2.6.25, volanoMark has big regression with kernel 2.6.26-rc1.\nIt\u0027s about 50% on my 8-core stoakley, 16-core tigerton, and Itanium Montecito.\n\nWith bisect, I located the following patch:\n\n| 18d95a2832c1392a2d63227a7a6d433cb9f2037e is first bad commit\n| commit 18d95a2832c1392a2d63227a7a6d433cb9f2037e\n| Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n| Date:   Sat Apr 19 19:45:00 2008 +0200\n|\n|     sched: fair-group: SMP-nice for group scheduling\n\nRevert it so that we get v2.6.25 behavior.\n\nBisected-by: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cbaffba12ce08beb3e80bfda148ee0fa14aac188",
      "tree": "b35f29814b46593d864e8c8921e9eccac5a5a173",
      "parents": [
        "c8e85b4f4b9ee23bf0e79bdeb3da274a0f9c663f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon May 26 20:55:42 2008 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 26 10:37:07 2008 -0700"
      },
      "message": "posix timers: discard SI_TIMER signals on exec\n\nBased on Roland\u0027s patch. This approach was suggested by Austin Clements\nfrom the very beginning, and then by Linus.\n\nAs Austin pointed out, the execing task can be killed by SI_TIMER signal\nbecause exec flushes the signal handlers, but doesn\u0027t discard the pending\nsignals generated by posix timers. Perhaps not a bug, but people find this\nsurprising. See http://bugzilla.kernel.org/show_bug.cgi?id\u003d10460\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Austin Clements \u003camdragon+kernelbugzilla@mit.edu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c714a534d85576af21b06be605ca55cb2fb887ee",
      "tree": "2d0501e6426b9e069082fd6f09da02c2334832e0",
      "parents": [
        "542dafadd81eb5826280f7714592930144ae3e1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 12 13:34:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 12 13:34:13 2008 -0700"
      },
      "message": "Make \u0027cond_resched()\u0027 nullification depend on PREEMPT_BKL\n\nBecause it\u0027s not correct with a non-preemptable BKL and just causes\nPREEMPT kernels to have longer latencies than non-PREEMPT ones (which is\nobviously not the point of it at all).\n\nOf course, that config option actually got removed as an option earlier,\nso for now this basically disables it entirely, but if BKL preemption is\never resurrected it will be a meaningful optimization.  And in the\nmeantime, it at least documents the intent of the code, while not doing\nthe wrong thing.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9404ef02974a5411687b6c1b8ef3984305620e02",
      "tree": "9ffc2c51a06ad36d5c2c58b50c590e2ac8dceac0",
      "parents": [
        "2b753a1599a28612851a2908abdbf86802c989c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 12 10:14:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 12 10:14:22 2008 -0700"
      },
      "message": "Fix up \u0027need_resched()\u0027 definition\n\nWe should not go through the task pointer to get at the thread info,\nsince it\u0027s usually cheaper to just access the thread info directly.\n\nSo don\u0027t make the code look up \u0027current\u0027, when we can just use the\nthread info accessor functions directly.  This generally avoids one\nlevel of indirection and tends to work better together with code that\nalso looks at other thread flags (eg preempt_count).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3921ab71507b108d51a0f1ee960f80cd668a93d",
      "tree": "b1408b898a8b50f15ad4a0cf1f29e17cc0138485",
      "parents": [
        "9662369786b9d07fd46d65b0f9e3938a3e01a5d9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 11 16:04:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 11 16:04:48 2008 -0700"
      },
      "message": "Add new \u0027cond_resched_bkl()\u0027 helper function\n\nIt acts exactly like a regular \u0027cond_resched()\u0027, but will not get\noptimized away when CONFIG_PREEMPT is set.\n\nNormal kernel code is already preemptable in the presense of\nCONFIG_PREEMPT, so cond_resched() is optimized away (see commit\n02b67cc3ba36bdba351d6c3a00593f4ec550d9d3 \"sched: do not do\ncond_resched() when CONFIG_PREEMPT\").\n\nBut when wanting to conditionally reschedule while holding a lock, you\nneed to use \"cond_sched_lock(lock)\", and the new function is the BKL\nequivalent of that.\n\nAlso make fs/locks.c use it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e51f33fcc7f55e6df25d15b55ed10c8b4da84cd",
      "tree": "3752f9ea8e014ec40e95a1b197b0a3d18e1056a8",
      "parents": [
        "a5574cf65b5f03ce9ade3918764fe22e5e2371e3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 03 18:29:28 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: add optional support for CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\nthis replaces the rq-\u003eclock stuff (and possibly cpu_clock()).\n\n - architectures that have an \u0027imperfect\u0027 hardware clock can set\n   CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\n - the \u0027jiffie\u0027 window might be superfulous when we update tick_gtod\n   before the __update_sched_clock() call in sched_clock_tick()\n\n - cpu_clock() might be implemented as:\n\n     sched_clock_cpu(smp_processor_id())\n\n   if the accuracy proves good enough - how far can TSC drift in a\n   single jiffie when considering the filtering and idle hooks?\n\n[ mingo@elte.hu: various fixes and cleanups ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "690229a0912ca2fef8b542fe4d8b73acfcdc6e24",
      "tree": "28be1db230f039589650f2b5d46de9e6f5722ef0",
      "parents": [
        "d7dcdc11cfa6a8860a29b09f985467b89224699d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 23 09:31:35 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: make clock sync tunable by architecture code\n\nmake time_sync_thresh tunable to architecture code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8ae121ac8666b0421aa20fd80d4597ec66fa54bc",
      "tree": "1db411965b1b12029d501ea10ab90fbc8aa4ec62",
      "parents": [
        "983ed7a66bcec9dc307d89dc7af47cdf209e56af"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Wed Apr 23 07:13:29 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: fix RT task-wakeup logic\n\nDmitry Adamushko pointed out a logic error in task_wake_up_rt() where we\nwill always evaluate to \"true\".  You can find the thread here:\n\nhttp://lkml.org/lkml/2008/4/22/296\n\nIn reality, we only want to try to push tasks away when a wake up request is\nnot going to preempt the current task.  So lets fix it.\n\nNote: We introduce test_tsk_need_resched() instead of open-coding the flag\ncheck so that the merge-conflict with -rt should help remind us that we\nmay need to support NEEDS_RESCHED_DELAYED in the future, too.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5cd204550b1a006f2b0c986b0e0f53220ebfd391",
      "tree": "ee0f5e042072d4d2f4a3c6cd6e3a8b60676868ae",
      "parents": [
        "cb41d6d068716b2b3666925da34d3d7e658bf4f3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Apr 30 00:54:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:48 2008 -0700"
      },
      "message": "Deprecate find_task_by_pid()\n\nThere are some places that are known to operate on tasks\u0027\nglobal pids only:\n\n* the rest_init() call (called on boot)\n* the kgdb\u0027s getthread\n* the create_kthread() (since the kthread is run in init ns)\n\nSo use the find_task_by_pid_ns(..., \u0026init_pid_ns) there\nand schedule the find_task_by_pid for removal.\n\n[sukadev@us.ibm.com: Fix warning in kernel/pid.c]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3de272b821accbc8387211977c2de4f38468d05",
      "tree": "775b5b3db5a09176447d4e62e04077b63640a4d7",
      "parents": [
        "49eaeb4bc4c901c327ee259c7768be20fd020a30"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Apr 30 00:53:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:37 2008 -0700"
      },
      "message": "signals: use HAVE_SET_RESTORE_SIGMASK\n\nChange all the #ifdef TIF_RESTORE_SIGMASK conditionals in non-arch code to\n#ifdef HAVE_SET_RESTORE_SIGMASK.  If arch code defines it first, the generic\nset_restore_sigmask() using TIF_RESTORE_SIGMASK is not defined.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fae5fa44f1fd079ffbed8e0add929dd7bbd1347f",
      "tree": "8990ac958d29733cb61733ae69265472f5e1d13c",
      "parents": [
        "193191035ad6268db9f561e81e3474b8be89a5ba"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Apr 30 00:53:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:37 2008 -0700"
      },
      "message": "signals: fix /sbin/init protection from unwanted signals\n\nThe global init has a lot of long standing problems with the unhandled fatal\nsignals.\n\n\t- The \"is_global_init(current)\" check in get_signal_to_deliver()\n\t  protects only the main thread. Sub-thread can dequee the fatal\n\t  signal and shutdown the whole thread group except the main thread.\n\t  If it dequeues SIGSTOP /sbin/init will be stopped, this is not\n\t  right too. Note that we can\u0027t use is_global_init(-\u003egroup_leader),\n\t  this breaks exec and this can\u0027t solve other problems we have.\n\n\t- Even if afterwards ignored, the fatal signals sets SIGNAL_GROUP_EXIT\n\t  on delivery. This breaks exec, has other bad implications, and this\n\t  is just wrong.\n\nIntroduce the new SIGNAL_UNKILLABLE flag to fix these problems.  It also helps\nto solve some other problems addressed by the subsequent patches.\n\nCurrently we use this flag for the global init only, but it could also be used\nby kthreads and (perhaps) by the sub-namespace inits.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac5c215383f43a106ba4ef298126bf78c126f5e9",
      "tree": "77340eea86103df7bc3b4a6c6d83f4140004bc9c",
      "parents": [
        "e62e6650e99a3dffcd0bf0d063cd818fbc13fa95"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Apr 30 00:52:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:36 2008 -0700"
      },
      "message": "signals: join send_sigqueue() with send_group_sigqueue()\n\nWe export send_sigqueue() and send_group_sigqueue() for the only user,\nposix_timer_event().  This is a bit silly, because both are just trivial\nhelpers on top of do_send_sigqueue() and because the we pass the unused\n.si_signo parameter.\n\nKill them both, rename do_send_sigqueue() to send_sigqueue(), and export it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e442055193e4584218006e616c9bdce0c5e9ae5c",
      "tree": "5e444253953c2f48c0a194bf8c5799f03bb2e266",
      "parents": [
        "3b5e9e53c6f31b5a5a0f5c43707503c62bdefa46"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Apr 30 00:52:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:34 2008 -0700"
      },
      "message": "signals: re-assign CLD_CONTINUED notification from the sender to reciever\n\nBased on discussion with Jiri and Roland.\n\nIn short: currently handle_stop_signal(SIGCONT, p) sends the notification to\np-\u003eparent, with this patch p itself notifies its parent when it becomes\nrunning.\n\nhandle_stop_signal(SIGCONT) has to drop -\u003esiglock temporary in order to notify\nthe parent with do_notify_parent_cldstop().  This leads to multiple problems:\n\n\t- as Jiri Kosina pointed out, the stopped task can resume without\n\t  actually seeing SIGCONT which may have a handler.\n\n\t- we race with another sig_kernel_stop() signal which may come in\n\t  that window.\n\n\t- we race with sig_fatal() signals which may set SIGNAL_GROUP_EXIT\n\t  in that window.\n\n\t- we can\u0027t avoid taking tasklist_lock() while sending SIGCONT.\n\nWith this patch handle_stop_signal() just sets the new SIGNAL_CLD_CONTINUED\nflag in p-\u003esignal-\u003eflags and returns.  The notification is sent by the first\ntask which returns from finish_stop() (there should be at least one) or any\nother signalled thread from get_signal_to_deliver().\n\nThis is a user-visible change.  Say, currently kill(SIGCONT, stopped_child)\ncan\u0027t return without seeing SIGCHLD, with this patch SIGCHLD can be delayed\nunpredictably.  Another difference is that if the child is ptraced by another\nprocess, CLD_CONTINUED may be delivered to -\u003ereal_parent after ptrace_detach()\nwhile currently it always goes to the tracer which doesn\u0027t actually need this\nnotification.  Hopefully not a problem.\n\nThe patch asks for the futher obvious cleanups, I\u0027ll send them separately.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf475ad28ac35cc9ba612d67158f29b73b38b05d",
      "tree": "2c7cd568d00357bd42643ea602884e731cc24f26",
      "parents": [
        "29486df325e1fe6e1764afcb19e3370804c2b002"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Apr 29 01:00:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: add an owner to the mm_struct\n\nRemove the mem_cgroup member from mm_struct and instead adds an owner.\n\nThis approach was suggested by Paul Menage.  The advantage of this approach\nis that, once the mm-\u003eowner is known, using the subsystem id, the cgroup\ncan be determined.  It also allows several control groups that are\nvirtually grouped by mm_struct, to exist independent of the memory\ncontroller i.e., without adding mem_cgroup\u0027s for each controller, to\nmm_struct.\n\nA new config option CONFIG_MM_OWNER is added and the memory resource\ncontroller selects this config option.\n\nThis patch also adds cgroup callbacks to notify subsystems when mm-\u003eowner\nchanges.  The mm_cgroup_changed callback is called with the task_lock() of\nthe new task held and is called just prior to changing the mm-\u003eowner.\n\nI am indebted to Paul Menage for the several reviews of this patchset and\nhelping me make it lighter and simpler.\n\nThis patch was tested on a powerpc box, it was compiled with both the\nMM_OWNER config turned on and off.\n\nAfter the thread group leader exits, it\u0027s moved to init_css_state by\ncgroup_exit(), thus all future charges from runnings threads would be\nredirected to the init_css_set\u0027s subsystem.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e,\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3898b1b4ebff8dcfbcf1807e0661585e06c9a91c",
      "tree": "69a338864dfe654f68064a599c5d0da460df34ac",
      "parents": [
        "4016a1390d07f15b267eecb20e76a48fd5c524ef"
      ],
      "author": {
        "name": "Andrew G. Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Apr 28 02:13:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "capabilities: implement per-process securebits\n\nFilesystem capability support makes it possible to do away with (set)uid-0\nbased privilege and use capabilities instead.  That is, with filesystem\nsupport for capabilities but without this present patch, it is (conceptually)\npossible to manage a system with capabilities alone and never need to obtain\nprivilege via (set)uid-0.\n\nOf course, conceptually isn\u0027t quite the same as currently possible since few\nuser applications, certainly not enough to run a viable system, are currently\nprepared to leverage capabilities to exercise privilege.  Further, many\napplications exist that may never get upgraded in this way, and the kernel\nwill continue to want to support their setuid-0 base privilege needs.\n\nWhere pure-capability applications evolve and replace setuid-0 binaries, it is\ndesirable that there be a mechanisms by which they can contain their\nprivilege.  In addition to leveraging the per-process bounding and inheritable\nsets, this should include suppressing the privilege of the uid-0 superuser\nfrom the process\u0027 tree of children.\n\nThe feature added by this patch can be leveraged to suppress the privilege\nassociated with (set)uid-0.  This suppression requires CAP_SETPCAP to\ninitiate, and only immediately affects the \u0027current\u0027 process (it is inherited\nthrough fork()/exec()).  This reimplementation differs significantly from the\nhistorical support for securebits which was system-wide, unwieldy and which\nhas ultimately withered to a dead relic in the source of the modern kernel.\n\nWith this patch applied a process, that is capable(CAP_SETPCAP), can now drop\nall legacy privilege (through uid\u003d0) for itself and all subsequently\nfork()\u0027d/exec()\u0027d children with:\n\n  prctl(PR_SET_SECUREBITS, 0x2f);\n\nThis patch represents a no-op unless CONFIG_SECURITY_FILE_CAPABILITIES is\nenabled at configure time.\n\n[akpm@linux-foundation.org: fix uninitialised var warning]\n[serue@us.ibm.com: capabilities: use cap_task_prctl when !CONFIG_SECURITY]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "402b08622d9ac6e32e25289573272e0f21bb58a7",
      "tree": "40d7386154cef85c9bfd2bd862db025933820776",
      "parents": [
        "37817f2982d0f559f90cecc66e150dd9d2c2df05"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Mar 25 18:47:10 2008 +0100"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Sun Apr 27 12:00:40 2008 +0300"
      },
      "message": "s390: KVM preparation: provide hook to enable pgstes in user pagetable\n\nThe SIE instruction on s390 uses the 2nd half of the page table page to\nvirtualize the storage keys of a guest. This patch offers the s390_enable_sie\nfunction, which reorganizes the page tables of a single-threaded process to\nreserve space in the page table:\ns390_enable_sie makes sure that the process is single threaded and then uses\ndup_mm to create a new mm with reorganized page tables. The old mm is freed\nand the process has now a page status extended field after every page table.\n\nCode that wants to exploit pgstes should SELECT CONFIG_PGSTE.\n\nThis patch has a small common code hit, namely making dup_mm non-static.\n\nEdit (Carsten): I\u0027ve modified Martin\u0027s patch, following Jeremy Fitzhardinge\u0027s\nreview feedback. Now we do have the prototype for dup_mm in\ninclude/linux/sched.h. Following Martin\u0027s suggestion, s390_enable_sie() does now\ncall task_lock() to prevent race against ptrace modification of mm_users.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "8c9843e57a7d9d7a090d6467a0f1f3afb8031527",
      "tree": "5efdab577853bc92e3c980fc97aba74be58c1efb",
      "parents": [
        "1d32e21889b96e594e8b63b193bf7d2a51ab93ec"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Apr 18 16:56:15 2008 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Apr 24 20:57:33 2008 +1000"
      },
      "message": "[POWERPC] Add thread_info_cache_init() weak hook\n\nSome architectures need to maintain a kmem cache for thread info\nstructures.  The next commit adds that to powerpc to fix an alignment\nproblem.\n\nThere is no good arch callback to use to initialize that cache\nthat I can find, so this adds a new one in the form of a weak\nfunction whose default is empty.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "429f731dea577bdd43693940cdca524135287e6a",
      "tree": "932337b7d23dd736612c6b6e6601c50bc24cfc5f",
      "parents": [
        "85b375a613085b78531ec86369a51c2f3b922f95",
        "d2f5e80862d33a7746a40569840248a592dbc395"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 15:41:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 15:41:27 2008 -0700"
      },
      "message": "Merge branch \u0027semaphore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027semaphore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc:\n  Deprecate the asm/semaphore.h files in feature-removal-schedule.\n  Convert asm/semaphore.h users to linux/semaphore.h\n  security: Remove unnecessary inclusions of asm/semaphore.h\n  lib: Remove unnecessary inclusions of asm/semaphore.h\n  kernel: Remove unnecessary inclusions of asm/semaphore.h\n  include: Remove unnecessary inclusions of asm/semaphore.h\n  fs: Remove unnecessary inclusions of asm/semaphore.h\n  drivers: Remove unnecessary inclusions of asm/semaphore.h\n  net: Remove unnecessary inclusions of asm/semaphore.h\n  arch: Remove unnecessary inclusions of asm/semaphore.h\n"
    },
    {
      "commit": "4a55bd5e97b1775913f88f11108a4f144f590e89",
      "tree": "4514f2370d898b93086779c821023319fe4c8b9d",
      "parents": [
        "ac884dec6d4a7df252150af875cffddf8f1d9c15"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: fair-group: de-couple load-balancing from the rb-trees\n\nDe-couple load-balancing from the rb-trees, so that I can change their\norganization.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "58d6c2d72f8628f39e8689fbde8aa177fcf00a37",
      "tree": "0be40bd788856b3cabb99ff258561b15a574f2f3",
      "parents": [
        "d19ca30874f2ad343d054e0b5c0576744afeecd4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: rt-group: optimize dequeue_rt_stack\n\nNow that the group hierarchy can have an arbitrary depth the O(n^2) nature\nof RT task dequeues will really hurt. Optimize this by providing space to\nstore the tree path, so we can walk it the other way.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "18d95a2832c1392a2d63227a7a6d433cb9f2037e",
      "tree": "fa85b700aa3caac5b1309edd8e31d9b957957a83",
      "parents": [
        "1d3504fcf5606579d60b649d19f44b3871c1ddae"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: fair-group: SMP-nice for group scheduling\n\nImplement SMP nice support for the full group hierarchy.\n\nOn each load-balance action, compile a sched_domain wide view of the full\ntask_group tree. We compute the domain wide view when walking down the\nhierarchy, and readjust the weights when walking back up.\n\nAfter collecting and readjusting the domain wide view, we try to balance the\ntasks within the task_groups. The current approach is a naively balance each\ntask group until we\u0027ve moved the targeted amount of load.\n\nInspired by Srivatsa Vaddsgiri\u0027s previous code and Abhishek Chandra\u0027s H-SMP\npaper.\n\nXXX: there will be some numerical issues due to the limited nature of\n     SCHED_LOAD_SCALE wrt to representing a task_groups influence on the\n     total weight. When the tree is deep enough, or the task weight small\n     enough, we\u0027ll run out of bits.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Abhishek Chandra \u003cchandra@cs.umn.edu\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1d3504fcf5606579d60b649d19f44b3871c1ddae",
      "tree": "001a1b57bd7f123fd51361d78d9277b2dcac1bf3",
      "parents": [
        "4d5f35533fb9b2cd553cec6611195bcbfb7ffd84"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Tue Apr 15 14:04:23 2008 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched, cpuset: customize sched domains, core\n\n[rebased for sched-devel/latest]\n\n - Add a new cpuset file, having levels:\n     sched_relax_domain_level\n\n - Modify partition_sched_domains() and build_sched_domains()\n   to take attributes parameter passed from cpuset.\n\n - Fill newidle_idx for node domains which currently unused but\n   might be required if sched_relax_domain_level become higher.\n\n - We can change the default level by boot option \u0027relax_domain_level\u003d\u0027.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eff766a65c60237bfa865160c3129de31fab591b",
      "tree": "c003be272be4bd614485606c77893295f3b175a2",
      "parents": [
        "ec7dc8ac73e4a56ed03b673f026f08c0d547f597"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched: fix the task_group hierarchy for UID grouping\n\nUID grouping doesn\u0027t actually have a task_group representing the root of\nthe task_group tree. Add one.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec7dc8ac73e4a56ed03b673f026f08c0d547f597",
      "tree": "851dd612f2c80e4643d10c18bb33ab5b2df9aa70",
      "parents": [
        "354d60c2ff72d86627dfe2089d186824abf4bb8e"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval@linux.vnet.ibm.com",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "sched: allow the group scheduler to have multiple levels\n\nThis patch makes the group scheduler multi hierarchy aware.\n\n[a.p.zijlstra@chello.nl: rt-parts and assorted fixes]\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd8ba7cd9be0192348c2836cb6645d9b2cd2bfd2",
      "tree": "3b4138c7b683c2168ac13be41aab74b49a6bcf1c",
      "parents": [
        "e0982e90cd1ecf59818b137386b7f63debded9cc"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Mar 26 14:23:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "sched: add new set_cpus_allowed_ptr function\n\nAdd a new function that accepts a pointer to the \"newly allowed cpus\"\ncpumask argument.\n\nint set_cpus_allowed_ptr(struct task_struct *p, const cpumask_t *new_mask)\n\nThe current set_cpus_allowed() function is modified to use the above\nbut this does not result in an ABI change.  And with some compiler\noptimization help, it may not introduce any additional overhead.\n\nAdditionally, to enforce the read only nature of the new_mask arg, the\n\"const\" property is migrated to sub-functions called by set_cpus_allowed.\nThis silences compiler warnings.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b53e921ba1cff8453dc9a87a84052fa12d5b30bd",
      "tree": "021cadb6c58543ecccd95b55fc319f249ebf176e",
      "parents": [
        "f9a86fcbbb1e5542eabf45c9144ac4b6330861a4"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:08 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "generic: reduce stack pressure in sched_affinity\n\n  * Modify sched_affinity functions to pass cpumask_t variables by reference\n    instead of by value.\n\n  * Use new set_cpus_allowed_ptr function.\n\nDepends on:\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d0b27fa77854b149ad4af08b0fe47fe712a47ade",
      "tree": "2f4487c108a5132e8d52456567b4a67e78fbb4a6",
      "parents": [
        "57d3da2911787a101a384532f4519f9640bae883"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Apr 19 19:44:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:57 2008 +0200"
      },
      "message": "sched: rt-group: synchonised bandwidth period\n\nVarious SMP balancing algorithms require that the bandwidth period\nrun in sync.\n\nPossible improvements are moving the rt_bandwidth thing into root_domain\nand keeping a span per rt_bandwidth which marks throttled cpus.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "50df5d6aea6694ca481b8005900401e8c95c2603",
      "tree": "3b2e2955aceed795f5d54220ee37a859e83c12c6",
      "parents": [
        "02e2b83bd25bb05ac2e69cb31458b7d1b3c70707"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 14 16:09:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:57 2008 +0200"
      },
      "message": "sched: remove sysctl_sched_batch_wakeup_granularity\n\nit\u0027s unused.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a6483feb0c5193519625d0ea8c4254364d423cc",
      "tree": "2235220e522882ac5872937fa43d3d1b188c1f4e",
      "parents": [
        "cb688371e27880d86c42323826846d1cd7caad8f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Feb 26 10:00:17 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:16:54 2008 -0400"
      },
      "message": "include: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.  It\u0027s possible that they (or some user of them) rely\non it dragging in some unrelated header file, but I can\u0027t build all\nthese files, so we\u0027ll have to fix any build failures as they come up.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "06d8308c61e54346585b2691c13ee3f90cb6fb2f",
      "tree": "d522e285525964706e7ec112bca23d407a540a8e",
      "parents": [
        "898a19de1502649877091b398229026b4142c0e2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 22 09:20:24 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 26 08:28:55 2008 +0100"
      },
      "message": "NOHZ: reevaluate idle sleep length after add_timer_on()\n\nadd_timer_on() can add a timer on a CPU which is currently in a long\nidle sleep, but the timer wheel is not reevaluated by the nohz code on\nthat CPU. So a timer can be delayed for quite a long time. This\ntriggered a false positive in the clocksource watchdog code.\n\nTo avoid this we need to wake up the idle CPU and enforce the\nreevaluation of the timer wheel for the next timer event.\n\nAdd a function, which checks a given CPU for idle state, marks the\nidle task with NEED_RESCHED and sends a reschedule IPI to notify the\nother CPU of the change in the timer wheel.\n\nCall this function from add_timer_on().\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: stable@kernel.org\n\n--\n include/linux/sched.h |    6 ++++++\n kernel/sched.c        |   43 +++++++++++++++++++++++++++++++++++++++++++\n kernel/timer.c        |   10 +++++++++-\n 3 files changed, 58 insertions(+), 1 deletion(-)\n\n"
    },
    {
      "commit": "9aefd0abd8610e8f3bb097debf3afb73f8b7b210",
      "tree": "3456c6949cd8b9c926aa9beef7c9bf99d0a84caa",
      "parents": [
        "23e3c3cd2e39a3c9d07ee07d882c8cf6ddd61c86"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Mar 12 18:31:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 21 16:43:47 2008 +0100"
      },
      "message": "sched: add exported arch_reinit_sched_domains() to header file.\n\nNeeded so it can be called from outside of sched.c.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ae7d5cefd4aa3560e359a3b0f03e12adc8b5c86",
      "tree": "c7517529ec199d3d9936b4049880a820534d2703",
      "parents": [
        "6f3d09291b4982991680b61763b2541e53e2a95f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 19 01:42:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 19 04:27:53 2008 +0100"
      },
      "message": "sched: improve affine wakeups\n\nimprove affine wakeups. Maintain the \u0027overlap\u0027 metric based on CFS\u0027s\nsum_exec_runtime - which means the amount of time a task executes\nafter it wakes up some other task.\n\nUse the \u0027overlap\u0027 for the wakeup decisions: if the \u0027overlap\u0027 is short,\nit means there\u0027s strong workload coupling between this task and the\nwoken up task. If the \u0027overlap\u0027 is large then the workload is decoupled\nand the scheduler will move them to separate CPUs more easily.\n\n( Also slightly move the preempt_check within try_to_wake_up() - this has\n  no effect on functionality but allows \u0027early wakeups\u0027 (for still-on-rq\n  tasks) to be correctly accounted as well.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "810b38179e9e4d4f57b4b733767bb08f8291a965",
      "tree": "91692de4fbd46879b29d803839b5bf7e25f30cd8",
      "parents": [
        "ce4796d1e16cf3761dc2a02b8d588667d05b3078"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Feb 29 15:21:01 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 07 16:42:59 2008 +0100"
      },
      "message": "sched: retain vruntime\n\nKei Tokunaga reported an interactivity problem when moving tasks\nbetween control groups.\n\nTasks would retain their old vruntime when moved between groups, this\ncan cause funny lags. Re-set the vruntime on group move to fit within\nthe new tree.\n\nReported-by: Kei Tokunaga \u003ctokunaga.keiich@jp.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "62fb185130e4d420f71a30ff59d8b16b74ef5d2b",
      "tree": "474c0824a5bf90950b0a430a11a52b358c9e1f31",
      "parents": [
        "976dde010e513a9c7c3117a32b7b015f84b37430"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 25 17:34:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 04 17:54:06 2008 +0100"
      },
      "message": "sched: revert load_balance_monitor() changes\n\nThe following commits cause a number of regressions:\n\n  commit 58e2d4ca581167c2a079f4ee02be2f0bc52e8729\n  Author: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\n  Date:   Fri Jan 25 21:08:00 2008 +0100\n  sched: group scheduling, change how cpu load is calculated\n\n  commit 6b2d7700266b9402e12824e11e0099ae6a4a6a79\n  Author: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\n  Date:   Fri Jan 25 21:08:00 2008 +0100\n  sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups\n\nNamely:\n - very frequent wakeups on SMP, reported by PowerTop users.\n - cacheline trashing on (large) SMP\n - some latencies larger than 500ms\n\nWhile there is a mergeable patch to fix the latter, the former issues\nare not fixable in a manner suitable for .25 (we\u0027re at -rc3 now).\n\nHence we revert them and try again in v2.6.26.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nTested-by: Alexey Zaytsev \u003calexey.zaytsev@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3fca96eed1cc9fb524aec536bba8ae921563f1bb",
      "tree": "474cdcc572b3433f01f221ea8857414bde53b7a2",
      "parents": [
        "98c1fc934c097d84dc30c639e9bdb0b992ef53e2",
        "1481197b50114d7212d659d41cb97f31a8934883"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 26 07:49:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 26 07:49:15 2008 -0800"
      },
      "message": "Merge branch \u0027v2.6.25-rc3-lockdep\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep\n\n* \u0027v2.6.25-rc3-lockdep\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep:\n  Subject: lockdep: include all lock classes in all_lock_classes\n  lockdep: increase MAX_LOCK_DEPTH\n"
    },
    {
      "commit": "bdb9441e9c325d50b5ae17f7d3205d65b8ed2e5f",
      "tree": "2696d81a8c3f5bf128aab134b1f23c14d539baac",
      "parents": [
        "bfa274e2436fc7ef72ef51c878083647f1cfd429"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 25 23:02:48 2008 +0100"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 25 23:02:48 2008 +0100"
      },
      "message": "lockdep: increase MAX_LOCK_DEPTH\n\nSome code paths exceed the current max lock depth (XFS), so increase\nthis limit a bit. I looked at making this a dynamic allocated array,\nbut we should not advocate insane lock depths, so stay with this as\nlong as it works...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2d07b255c7b8a9723010e5c74778e058dc05162e",
      "tree": "3d1e2d56a89c23faede930f77e875a718fb4f0b6",
      "parents": [
        "67ca7bde2e9d3516b5ae0188330ad1059ac03f38"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 15 09:56:34 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 25 16:34:17 2008 +0100"
      },
      "message": "sched: add declaration of sched_tail to sched.h\n\nAvoids sparse warnings:\nkernel/sched.c:2170:17: warning: symbol \u0027schedule_tail\u0027 was not declared. Should it be static?\n\nAvoids the need for an external declaration in arch/um/process.c\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3c97528689619fc66569b30bf83d09d9929521a",
      "tree": "91dc53590deab88c9bf255c2b5cbd74bdbc36de1",
      "parents": [
        "aa02cd2d9bd1e24a230bd66a0a741b984d03915a"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 13 15:03:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 16:21:18 2008 -0800"
      },
      "message": "include/linux: Remove all users of FASTCALL() macro\n\nFASTCALL() is always expanded to empty, remove it.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "052f1dc7eb02300b05170ae341ccd03b76207778",
      "tree": "f58630b7876ae9e4308c0577e36aa13318b7bcfc",
      "parents": [
        "9f0c1e560c43327b70998e6c702b2f01321130d9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 13 15:45:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 13 15:45:40 2008 +0100"
      },
      "message": "sched: rt-group: make rt groups scheduling configurable\n\nMake the rt group scheduler compile time configurable.\nKeep it experimental for now.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f0c1e560c43327b70998e6c702b2f01321130d9",
      "tree": "b2cc7ef5bb0dc9d7d2912de339bff3e0db3530c9",
      "parents": [
        "23b0fdfc9299b137bd126e9dc22f62a59dae546d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 13 15:45:39 2008 +0100"
      },
      "message": "sched: rt-group: interface\n\nChange the rt_ratio interface to rt_runtime_us, to match rt_period_us.\nThis avoids picking a granularity for the ratio.\n\nExtend the /sys/kernel/uids/\u003cuid\u003e/ interface to allow setting\nthe group\u0027s rt_runtime.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "146a505d498c36de98ec161d791dd50beca7f9a3",
      "tree": "f126c55b34488866ff179717f1b2a0c7cdd5df6b",
      "parents": [
        "d5df763b81946a405837b80874516dfc2a8f7ebf"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:19:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "Get rid of the kill_pgrp_info() function\n\nThere\u0027s only one caller left - the kill_pgrp one - so merge these two\nfunctions and forget the kill_pgrp_info one.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fea9d175545b38cb3e84569400419eb81bc90fa3",
      "tree": "0d43fe9ed2ea6104ee8b15a3eb8da081dd08fd35",
      "parents": [
        "46f382d2b69d2221086b823f0dbc8f32c027cac2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "ITIMER_REAL: convert to use struct pid\n\nsignal_struct-\u003etsk points to the -\u003egroup_leader and thus we have the nasty\ncode in de_thread() which has to change it and restart -\u003ereal_timer if the\nleader is changed.\n\nUse \"struct pid *leader_pid\" instead.  This also allows us to kill now\nunneeded send_group_sig_info().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44c4e1b2581f7273ab14ef30b6430618801c57b1",
      "tree": "9881990d56dd58f0c93991217a999bab145946fa",
      "parents": [
        "161550d74c07303ffa6187ba776f62df5a906a21"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:19:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "pid: Extend/Fix pid_vnr\n\npid_vnr returns the user space pid with respect to the pid namespace the\nstruct pid was allocated in.  What we want before we return a pid to user\nspace is the user space pid with respect to the pid namespace of current.\n\npid_vnr is a very nice optimization but because it isn\u0027t quite what we want\nit is easy to use pid_vnr at times when we aren\u0027t certain the struct pid\nwas allocated in our pid namespace.\n\nCurrently this describes at least tiocgpgrp and tiocgsid in ttyio.c the\nparent process reported in the core dumps and the parent process in\nget_signal_to_deliver.\n\nSo unless the performance impact is huge having an interface that does what\nwe want instead of always what we want should be much more reliable and\nmuch less error prone.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8520d7c7f8611216e3b270becec95bb35b6899d4",
      "tree": "77001e6830bb415590067e9d4be24cd8bdd36219",
      "parents": [
        "e4cc0a9c876d4d4eadaef97a2bff4a199946d202"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "teach set_special_pids() to use struct pid\n\nChange set_special_pids() to work with struct pid, not pid_t from global name\nspace. This again speedups and imho cleanups the code, also a preparation for\nthe next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78fb74669e80883323391090e4d26d17fe29488f",
      "tree": "9154b703510415ae87bdae8750c1054e79710c61",
      "parents": [
        "8cdea7c05454260c0d4d83503949c358eb131d17"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: accounting setup\n\nBasic setup routines, the mm_struct has a pointer to the cgroup that\nit belongs to and the the page has a page_cgroup associated with it.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1bf47346d75790ebd2563d909d48046961c7ffd5",
      "tree": "0f478764beb8dc4e0c71c5f3d6a657535579fe3a",
      "parents": [
        "6b2fb3c65844452bb9e8b449d50863d1b36c5dc0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Feb 06 01:37:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:09 2008 -0800"
      },
      "message": "kernel/sys.c: get rid of expensive divides in groups_sort()\n\ngroups_sort() can be quite long if user loads a large gid table.\n\nThis is because GROUP_AT(group_info, some_integer) uses an integer divide.\nSo having to do XXX thousand divides during one syscall can lead to very\nhigh latencies.  (NGROUPS_MAX\u003d65536)\n\nIn the past (25 Mar 2006), an analog problem was found in groups_search()\n(commit d74beb9f33a5f16d2965f11b275e401f225c949d ) and at that time I\nchanged some variables to unsigned int.\n\nI believe that a more generic fix is to make sure NGROUPS_PER_BLOCK is\nunsigned.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b7391de67da515c91f48aa371de77cb6cc5c07e",
      "tree": "22b9f5d9d1c36b374eb5765219aca3c7e1f23486",
      "parents": [
        "46c383cc4530ccc438cb325e92e11eb21dd3d4fc"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Feb 04 22:29:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "capabilities: introduce per-process capability bounding set\n\nThe capability bounding set is a set beyond which capabilities cannot grow.\n Currently cap_bset is per-system.  It can be manipulated through sysctl,\nbut only init can add capabilities.  Root can remove capabilities.  By\ndefault it includes all caps except CAP_SETPCAP.\n\nThis patch makes the bounding set per-process when file capabilities are\nenabled.  It is inherited at fork from parent.  Noone can add elements,\nCAP_SETPCAP is required to remove them.\n\nOne example use of this is to start a safer container.  For instance, until\ndevice namespaces or per-container device whitelists are introduced, it is\nbest to take CAP_MKNOD away from a container.\n\nThe bounding set will not affect pP and pE immediately.  It will only\naffect pP\u0027 and pE\u0027 after subsequent exec()s.  It also does not affect pI,\nand exec() does not constrain pI\u0027.  So to really start a shell with no way\nof regain CAP_MKNOD, you would do\n\n\tprctl(PR_CAPBSET_DROP, CAP_MKNOD);\n\tcap_t cap \u003d cap_get_proc();\n\tcap_value_t caparray[1];\n\tcaparray[0] \u003d CAP_MKNOD;\n\tcap_set_flag(cap, CAP_INHERITABLE, 1, caparray, CAP_DROP);\n\tcap_set_proc(cap);\n\tcap_free(cap);\n\nThe following test program will get and set the bounding\nset (but not pI).  For instance\n\n\t./bset get\n\t\t(lists capabilities in bset)\n\t./bset drop cap_net_raw\n\t\t(starts shell with new bset)\n\t\t(use capset, setuid binary, or binary with\n\t\tfile capabilities to try to increase caps)\n\n************************************************************\ncap_bound.c\n************************************************************\n #include \u003csys/prctl.h\u003e\n #include \u003clinux/capability.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n\n #ifndef PR_CAPBSET_READ\n #define PR_CAPBSET_READ 23\n #endif\n\n #ifndef PR_CAPBSET_DROP\n #define PR_CAPBSET_DROP 24\n #endif\n\nint usage(char *me)\n{\n\tprintf(\"Usage: %s get\\n\", me);\n\tprintf(\"       %s drop \u003ccapability\u003e\\n\", me);\n\treturn 1;\n}\n\n #define numcaps 32\nchar *captable[numcaps] \u003d {\n\t\"cap_chown\",\n\t\"cap_dac_override\",\n\t\"cap_dac_read_search\",\n\t\"cap_fowner\",\n\t\"cap_fsetid\",\n\t\"cap_kill\",\n\t\"cap_setgid\",\n\t\"cap_setuid\",\n\t\"cap_setpcap\",\n\t\"cap_linux_immutable\",\n\t\"cap_net_bind_service\",\n\t\"cap_net_broadcast\",\n\t\"cap_net_admin\",\n\t\"cap_net_raw\",\n\t\"cap_ipc_lock\",\n\t\"cap_ipc_owner\",\n\t\"cap_sys_module\",\n\t\"cap_sys_rawio\",\n\t\"cap_sys_chroot\",\n\t\"cap_sys_ptrace\",\n\t\"cap_sys_pacct\",\n\t\"cap_sys_admin\",\n\t\"cap_sys_boot\",\n\t\"cap_sys_nice\",\n\t\"cap_sys_resource\",\n\t\"cap_sys_time\",\n\t\"cap_sys_tty_config\",\n\t\"cap_mknod\",\n\t\"cap_lease\",\n\t\"cap_audit_write\",\n\t\"cap_audit_control\",\n\t\"cap_setfcap\"\n};\n\nint getbcap(void)\n{\n\tint comma\u003d0;\n\tunsigned long i;\n\tint ret;\n\n\tprintf(\"i know of %d capabilities\\n\", numcaps);\n\tprintf(\"capability bounding set:\");\n\tfor (i\u003d0; i\u003cnumcaps; i++) {\n\t\tret \u003d prctl(PR_CAPBSET_READ, i);\n\t\tif (ret \u003c 0)\n\t\t\tperror(\"prctl\");\n\t\telse if (ret\u003d\u003d1)\n\t\t\tprintf(\"%s%s\", (comma++) ? \", \" : \" \", captable[i]);\n\t}\n\tprintf(\"\\n\");\n\treturn 0;\n}\n\nint capdrop(char *str)\n{\n\tunsigned long i;\n\n\tint found\u003d0;\n\tfor (i\u003d0; i\u003cnumcaps; i++) {\n\t\tif (strcmp(captable[i], str) \u003d\u003d 0) {\n\t\t\tfound\u003d1;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!found)\n\t\treturn 1;\n\tif (prctl(PR_CAPBSET_DROP, i)) {\n\t\tperror(\"prctl\");\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\nint main(int argc, char *argv[])\n{\n\tif (argc\u003c2)\n\t\treturn usage(argv[0]);\n\tif (strcmp(argv[1], \"get\")\u003d\u003d0)\n\t\treturn getbcap();\n\tif (strcmp(argv[1], \"drop\")!\u003d0 || argc\u003c3)\n\t\treturn usage(argv[0]);\n\tif (capdrop(argv[2])) {\n\t\tprintf(\"unknown capability\\n\");\n\t\treturn 1;\n\t}\n\treturn execl(\"/bin/bash\", \"/bin/bash\", NULL);\n}\n************************************************************\n\n[serue@us.ibm.com: fix typo]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003ea\nSigned-off-by: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nTested-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "824552574162ac00ae636fa41386b1072379ea4a",
      "tree": "85c595275c6007115ad002c56dbb7eb51ab67064",
      "parents": [
        "ec4dd3eb35759f9fbeb5c1abb01403b2fde64cc9"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Mon Feb 04 22:28:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: rework TASK_SIZE macros\n\nThe following replaces the earlier patches sent.  It should address\nDavid Rientjes\u0027s comments, and has been compile tested on all the\narchitectures that it touches, save for parisc.\n\nFor the /proc/\u003cpid\u003e/pagemap code[1], we need to able to query how\nmuch virtual address space a particular task has.  The trick is\nthat we do it through /proc and can\u0027t use TASK_SIZE since it\nreferences \"current\" on some arches.  The process opening the\n/proc file might be a 32-bit process opening a 64-bit process\u0027s\npagemap file.\n\nx86_64 already has a TASK_SIZE_OF() macro:\n\n#define TASK_SIZE_OF(child)     ((test_tsk_thread_flag(child, TIF_IA32)) ? IA32_PAGE_OFFSET : TASK_SIZE64)\n\nI\u0027d like to have that for other architectures.  So, add it\nfor all the architectures that actually use \"current\" in\ntheir TASK_SIZE.  For the others, just add a quick #define\nin sched.h to use plain old TASK_SIZE.\n\n1. http://www.linuxworld.com/news/2007/042407-kernel.html\n\n- MIPS portion from Ralf Baechle \u003cralf@linux-mips.org\u003e\n\n[akpm@linux-foundation.org: fix mips build]\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed5d2cac114202fe2978a9cbcab8f5032796d538",
      "tree": "aa9aaea1aa0945bd9159685d1b04897d105a90c9",
      "parents": [
        "f558b7e408026eb3c6afcd0e8fc1f7fe31195a6a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "exec: rework the group exit and fix the race with kill\n\nAs Roland pointed out, we have the very old problem with exec.  de_thread()\nsets SIGNAL_GROUP_EXIT, kills other threads, changes -\u003egroup_leader and then\nclears signal-\u003eflags.  All signals (even fatal ones) sent in this window\n(which is not too small) will be lost.\n\nWith this patch exec doesn\u0027t abuse SIGNAL_GROUP_EXIT.  signal_group_exit(),\nthe new helper, should be used to detect exit_group() or exec() in progress.\nIt can have more users, but this patch does only strictly necessary changes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59714d65dfbc86d5cb93adc5bac57a921cc2fa84",
      "tree": "10eda85ccab88fb707d6c6b4f4fb7f2e9bd1f4e1",
      "parents": [
        "0ccf831cbee94df9c5006dd46248c0f07847dd7c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Feb 04 22:27:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "get_task_comm(): return the result\n\nIt was dumb to make get_task_comm() return void.  Change it to return a\npointer to the resulting output for caller convenience.\n\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4746ec5b01ed07205a91e4f7ed9de9d70f371407",
      "tree": "7a3a836b6178ccab24801e90b69c1159b2c23099",
      "parents": [
        "c2a7780efe37d01bdb3facc85a94663e6d67d4a8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 08 10:06:53 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 01 14:06:51 2008 -0500"
      },
      "message": "[AUDIT] add session id to audit messages\n\nIn order to correlate audit records to an individual login add a session\nid.  This is incremented every time a user logs in and is included in\nalmost all messages which currently output the auid.  The field is\nlabeled ses\u003d  or oses\u003d\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "bfef93a5d1fb5654fe2025276c55e202d10b5255",
      "tree": "573d8153c5d5216b0c4007b652286eeddd3c0987",
      "parents": [
        "0c11b9428f619ab377c92eff2f160a834a6585dd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 10 04:53:18 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 01 14:05:28 2008 -0500"
      },
      "message": "[PATCH] get rid of loginuid races\n\nKeeping loginuid in audit_context is racy and results in messier\ncode.  Taken to task_struct, out of the way of -\u003eaudit_context\nchanges.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "75659ca0c10992dcb39258518368a0f6f56e935d",
      "tree": "5d014ceb2f10158061a23d0d976f9a613d85e659",
      "parents": [
        "fbdde7bd274d74729954190f99afcb1e3d9bbfba",
        "2dfe485a2c8afa54cb069fcf48476f6c90ea3fdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "message": "Merge branch \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: (22 commits)\n  Remove commented-out code copied from NFS\n  NFS: Switch from intr mount option to TASK_KILLABLE\n  Add wait_for_completion_killable\n  Add wait_event_killable\n  Add schedule_timeout_killable\n  Use mutex_lock_killable in vfs_readdir\n  Add mutex_lock_killable\n  Use lock_page_killable\n  Add lock_page_killable\n  Add fatal_signal_pending\n  Add TASK_WAKEKILL\n  exit: Use task_is_*\n  signal: Use task_is_*\n  sched: Use task_contributes_to_load, TASK_ALL and TASK_NORMAL\n  ptrace: Use task_is_*\n  power: Use task_is_*\n  wait: Use TASK_NORMAL\n  proc/base.c: Use task_is_*\n  proc/array.c: Use TASK_REPORT\n  perfmon: Use task_is_*\n  ...\n\nFixed up conflicts in NFS/sunrpc manually..\n"
    },
    {
      "commit": "95c354fe9f7d6decc08a92aa26eb233ecc2155bf",
      "tree": "ec9267032ea875e84216cfb20acb2cfc7c62149f",
      "parents": [
        "a95d67f87e1a5f1b4429be3ba3bf7b4051657908"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:31:20 2008 +0100"
      },
      "message": "spinlock: lockbreak cleanup\n\nThe break_lock data structure and code for spinlocks is quite nasty.\nNot only does it double the size of a spinlock but it changes locking to\na potentially less optimal trylock.\n\nPut all of that under CONFIG_GENERIC_LOCKBREAK, and introduce a\n__raw_spin_is_contended that uses the lock data itself to determine whether\nthere are waiters on the lock, to be used if CONFIG_GENERIC_LOCKBREAK is\nnot set.\n\nRename need_lockbreak to spin_needbreak, make it use spin_is_contended to\ndecouple it from the spinlock implementation, and make it typesafe (rwlocks\ndo not have any need_lockbreak sites -- why do they even get bloated up\nwith that break_lock then?).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "fadad878cc0640cc9cd5569998bf54b693f7b38b",
      "tree": "9ad8c65d458d45f970f7e78cd1512c0e7da58def",
      "parents": [
        "521f3bbdba6b92582ef8047df01b156668343542"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jan 24 08:54:47 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:50:36 2008 +0100"
      },
      "message": "kernel: add CLONE_IO to specifically request sharing of IO contexts\n\nsyslets (or other threads/processes that want io context sharing) can\nset this to enforce sharing of io context.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fd0928df98b9578be8a786ac0cb78a47a5e17a20",
      "tree": "70a34cf207bea1bec28e59cf0dba7d20e7f8b0f1",
      "parents": [
        "91525300baf162e83e923b09ca286f9205e21522"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jan 24 08:52:45 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:50:29 2008 +0100"
      },
      "message": "ioprio: move io priority from task_struct to io_context\n\nThis is where it belongs and then it doesn\u0027t take up space for a\nprocess that doesn\u0027t do IO.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6d082592b62689fb91578d0338d04a9f50991990",
      "tree": "facef621798752724be64c3ded31a3c3fded1643",
      "parents": [
        "286100a6cf1c1f692e5f81d14b364ff12b7662f5"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:35 2008 +0100"
      },
      "message": "sched: keep total / count stats in addition to the max for\n\nRight now, the linux kernel (with scheduler statistics enabled) keeps track\nof the maximum time a process is waiting to be scheduled. While the maximum\nis a very useful metric, tracking average and total is equally useful\n(at least for latencytop) to figure out the accumulated effect of scheduler\ndelays. The accumulated effect is important to judge the performance impact\nof scheduler tuning/behavior.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "286100a6cf1c1f692e5f81d14b364ff12b7662f5",
      "tree": "00a6d3530bddfd522e89154ba7a6a75f7fb83932",
      "parents": [
        "5973e5b954848c63855a357ad4ff39882e3904f7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched, futex: detach sched.h and futex.h\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90739081ef8d5495d50abba9c5d333be9acd872a",
      "tree": "37dc5c626940a4bad6d9ffad81b7be12dc44f054",
      "parents": [
        "9745512ce79de686df354dc70a8d1a74d801892d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "softlockup: fix signedness\n\nfix softlockup tunables signedness.\n\nmark tunables read-mostly.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9745512ce79de686df354dc70a8d1a74d801892d",
      "tree": "9b64e2b2e6d2ae534beef136922082f21701c7b9",
      "parents": [
        "326587b840785c60f5dc18557235a23bafefd620"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:34 2008 +0100"
      },
      "message": "sched: latencytop support\n\nLatencyTOP kernel infrastructure; it measures latencies in the\nscheduler and tracks it system wide and per process.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48d5e258216f1c7713633439beb98a38c7290649",
      "tree": "6f8c98785015d56337e87ed56b23d39feeeaf846",
      "parents": [
        "614ee1f61f667b02165c1ae0c1357048dc6d94a0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:31 2008 +0100"
      },
      "message": "sched: rt throttling vs no_hz\n\nWe need to teach no_hz about the rt throttling because its tick driven.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6f505b16425a51270058e4a93441fe64de3dd435",
      "tree": "be21e711d93bc4d088b97c4a4f585a5044dbaa7d",
      "parents": [
        "fa85ae2418e6843953107cd6a06f645752829bc0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:30 2008 +0100"
      },
      "message": "sched: rt group scheduling\n\nExtend group scheduling to also cover the realtime classes. It uses the time\nlimiting introduced by the previous patch to allow multiple realtime groups.\n\nThe hard time limit is required to keep behaviour deterministic.\n\nThe algorithms used make the realtime scheduler O(tg), linear scaling wrt the\nnumber of task groups. This is the worst case behaviour I can\u0027t seem to get out\nof, the avg. case of the algorithms can be improved, I focused on correctness\nand worst case.\n\n[ akpm@linux-foundation.org: move side-effects out of BUG_ON(). ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa85ae2418e6843953107cd6a06f645752829bc0",
      "tree": "004130ac471247a29d3f6adfbfe61c474e725779",
      "parents": [
        "8f4d37ec073c17e2d4aa8851df5837d798606d6f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "message": "sched: rt time limit\n\nVery simple time limit on the realtime scheduling classes.\nAllow the rq\u0027s realtime class to consume sched_rt_ratio of every\nsched_rt_period slice. If the class exceeds this quota the fair class\nwill preempt the realtime class.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8f4d37ec073c17e2d4aa8851df5837d798606d6f",
      "tree": "a9ac9063eca53e4d0110e8086f55241ea70ba993",
      "parents": [
        "02b67cc3ba36bdba351d6c3a00593f4ec550d9d3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:29 2008 +0100"
      },
      "message": "sched: high-res preemption tick\n\nUse HR-timers (when available) to deliver an accurate preemption tick.\n\nThe regular scheduler tick that runs at 1/HZ can be too coarse when nice\nlevel are used. The fairness system will still keep the cpu utilisation \u0027fair\u0027\nby then delaying the task that got an excessive amount of CPU time but try to\nminimize this by delivering preemption points spot-on.\n\nThe average frequency of this extra interrupt is sched_latency / nr_latency.\nWhich need not be higher than 1/HZ, its just that the distribution within the\nsched_latency period is important.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02b67cc3ba36bdba351d6c3a00593f4ec550d9d3",
      "tree": "5185ad2d780974dc864f12d81d6c8b9fec73097b",
      "parents": [
        "03319ec8b06849051747a17aa2a0f9aba9277980"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:28 2008 +0100"
      },
      "message": "sched: do not do cond_resched() when CONFIG_PREEMPT\n\nWhy do we even have cond_resched when real preemption\nis on? It seems to be a waste of space and time.\n\nremove cond_resched with CONFIG_PREEMPT on.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "78f2c7db6068fd6ef75b8c120f04a388848eacb5",
      "tree": "994e8082a01c78e691bacb90c0f8368823c87767",
      "parents": [
        "fa717060f1ab7eb6570f2fb49136f838fc9195a9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "message": "sched: SCHED_FIFO/SCHED_RR watchdog timer\n\nIntroduce a new rlimit that allows the user to set a runtime timeout on\nreal-time tasks their slice. Once this limit is exceeded the task will receive\nSIGXCPU.\n\nSo it measures runtime since the last sleep.\n\nInput and ideas by Thomas Gleixner and Lennart Poettering.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Lennart Poettering \u003cmzxreary@0pointer.de\u003e\nCC: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCC: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa717060f1ab7eb6570f2fb49136f838fc9195a9",
      "tree": "0338460dae3116563645e3bfa1ff5100d39826f8",
      "parents": [
        "8eb703e4f33488bf75829564d51d427e17f7cd4c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "message": "sched: sched_rt_entity\n\nMove the task_struct members specific to rt scheduling together.\nA future optimization could be to put sched_entity and sched_rt_entity\ninto a union.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e260be673a15b6125068270e0216a3bfbfc12f87",
      "tree": "f50760606d395bf6faa9e865f814761a3c88d32c",
      "parents": [
        "e0ecfa7917cafe72f4a75f87e8bb5d8d51dc534f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "message": "Preempt-RCU: implementation\n\nThis patch implements a new version of RCU which allows its read-side\ncritical sections to be preempted. It uses a set of counter pairs\nto keep track of the read-side critical sections and flips them\nwhen all tasks exit read-side critical section. The details\nof this implementation can be found in this paper -\n\n\thttp://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf\n\nand the article-\n\n\thttp://lwn.net/Articles/253651/\n\nThis patch was developed as a part of the -rt kernel development and\nmeant to provide better latencies when read-side critical sections of\nRCU don\u0027t disable preemption.  As a consequence of keeping track of RCU\nreaders, the readers have a slight overhead (optimizations in the paper).\nThis implementation co-exists with the \"classic\" RCU implementations\nand can be switched to at compiler.\n\nAlso includes RCU tracing summarized in debugfs.\n\n[ akpm@linux-foundation.org: build fixes on non-preempt architectures ]\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb46984504048db946cd551c261df4e70d59a8ea",
      "tree": "e07343cc5967f74370c6b0290b67a225d868a99d",
      "parents": [
        "9a897c5a6701bcb6f099f7ca20194999102729fd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "message": "sched: RT-balance, add new methods to sched_class\n\nDmitry Adamushko found that the current implementation of the RT\nbalancing code left out changes to the sched_setscheduler and\nrt_mutex_setprio.\n\nThis patch addresses this issue by adding methods to the schedule classes\nto handle being switched out of (switched_from) and being switched into\n(switched_to) a sched_class. Also a method for changing of priorities\nis also added (prio_changed).\n\nThis patch also removes some duplicate logic between rt_mutex_setprio and\nsched_setscheduler.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a897c5a6701bcb6f099f7ca20194999102729fd",
      "tree": "9c5415d5e2dd115660200cbd246fe1343cd5cd5c",
      "parents": [
        "4bf0b77158d581c952af237aec79d0604b78fe27"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:22 2008 +0100"
      },
      "message": "sched: RT-balance, replace hooks with pre/post schedule and wakeup methods\n\nTo make the main sched.c code more agnostic to the schedule classes.\nInstead of having specific hooks in the schedule code for the RT class\nbalancing. They are replaced with a pre_schedule, post_schedule\nand task_wake_up methods. These methods may be used by any of the classes\nbut currently, only the sched_rt class implements them.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57d885fea0da0e9541d7730a9e1dcf734981a173",
      "tree": "80f08ea6ed506e2aac30c89b8ae1eee7f008a378",
      "parents": [
        "7f51f298204ec0528422cd9b23feac12612c5665"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:18 2008 +0100"
      },
      "message": "sched: add sched-domain roots\n\nWe add the notion of a root-domain which will be used later to rescope\nglobal variables to per-domain variables.  Each exclusive cpuset\nessentially defines an island domain by fully partitioning the member cpus\nfrom any other cpuset.  However, we currently still maintain some\npolicy/state as global variables which transcend all cpusets.  Consider,\nfor instance, rt-overload state.\n\nWhenever a new exclusive cpuset is created, we also create a new\nroot-domain object and move each cpu member to the root-domain\u0027s span.\nBy default the system creates a single root-domain with all cpus as\nmembers (mimicking the global state we have today).\n\nWe add some plumbing for storing class specific data in our root-domain.\nWhenever a RQ is switching root-domains (because of repartitioning) we\ngive each sched_class the opportunity to remove any state from its old\ndomain and add state to the new one.  This logic doesn\u0027t have any clients\nyet but it will later in the series.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCC: Christoph Lameter \u003cclameter@sgi.com\u003e\nCC: Paul Jackson \u003cpj@sgi.com\u003e\nCC: Simon Derr \u003csimon.derr@bull.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7693a362ec84bb5b6fd441d8a8b4b9d568a7a0c",
      "tree": "078940540641a59aaf199695bfc6de3f062a987b",
      "parents": [
        "697f0a487f294e634a342764472b79375bb3158a"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:09 2008 +0100"
      },
      "message": "sched: de-SCHED_OTHER-ize the RT path\n\nThe current wake-up code path tries to determine if it can optimize the\nwake-up to \"this_cpu\" by computing load calculations.  The problem is that\nthese calculations are only relevant to SCHED_OTHER tasks where load is king.\nFor RT tasks, priority is king.  So the load calculation is completely wasted\nbandwidth.\n\nTherefore, we create a new sched_class interface to help with\npre-wakeup routing decisions and move the load calculation as a function\nof CFS task\u0027s class.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "73fe6aae84400e2b475e2a1dc4e8592cd3ed6e69",
      "tree": "97c7d6a866d75563082c422491fc423b47aca9d7",
      "parents": [
        "c7a1e46aa9782a947cf2ed506245d43396dbf991"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:07 2008 +0100"
      },
      "message": "sched: add RT-balance cpu-weight\n\nSome RT tasks (particularly kthreads) are bound to one specific CPU.\nIt is fairly common for two or more bound tasks to get queued up at the\nsame time.  Consider, for instance, softirq_timer and softirq_sched.  A\ntimer goes off in an ISR which schedules softirq_thread to run at RT50.\nThen the timer handler determines that it\u0027s time to smp-rebalance the\nsystem so it schedules softirq_sched to run.  So we are in a situation\nwhere we have two RT50 tasks queued, and the system will go into\nrt-overload condition to request other CPUs for help.\n\nThis causes two problems in the current code:\n\n1) If a high-priority bound task and a low-priority unbounded task queue\n   up behind the running task, we will fail to ever relocate the unbounded\n   task because we terminate the search on the first unmovable task.\n\n2) We spend precious futile cycles in the fast-path trying to pull\n   overloaded tasks over.  It is therefore optimial to strive to avoid the\n   overhead all together if we can cheaply detect the condition before\n   overload even occurs.\n\nThis patch tries to achieve this optimization by utilizing the hamming\nweight of the task-\u003ecpus_allowed mask.  A weight of 1 indicates that\nthe task cannot be migrated.  We will then utilize this information to\nskip non-migratable tasks and to eliminate uncessary rebalance attempts.\n\nWe introduce a per-rq variable to count the number of migratable tasks\nthat are currently running.  We only go into overload if we have more\nthan one rt task, AND at least one of them is migratable.\n\nIn addition, we introduce a per-task variable to cache the cpus_allowed\nweight, since the hamming calculation is probably relatively expensive.\nWe only update the cached value when the mask is updated which should be\nrelatively infrequent, especially compared to scheduling frequency\nin the fast path.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82a1fcb90287052aabfa235e7ffc693ea003fe69",
      "tree": "826b464a248bebe259fe787f7b8d17d5626cf2c5",
      "parents": [
        "d0d23b5432fe61229dd3641c5e94d4130bc4e61b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks\n\nthis patch extends the soft-lockup detector to automatically\ndetect hung TASK_UNINTERRUPTIBLE tasks. Such hung tasks are\nprinted the following way:\n\n ------------------\u003e\n INFO: task prctl:3042 blocked for more than 120 seconds.\n \"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message\n prctl         D fd5e3793     0  3042   2997\n        f6050f38 00000046 00000001 fd5e3793 00000009 c06d8264 c06dae80 00000286\n        f6050f40 f6050f00 f7d34d90 f7d34fc8 c1e1be80 00000001 f6050000 00000000\n        f7e92d00 00000286 f6050f18 c0489d1a f6050f40 00006605 00000000 c0133a5b\n Call Trace:\n  [\u003cc04883a5\u003e] schedule_timeout+0x6d/0x8b\n  [\u003cc04883d8\u003e] schedule_timeout_uninterruptible+0x15/0x17\n  [\u003cc0133a76\u003e] msleep+0x10/0x16\n  [\u003cc0138974\u003e] sys_prctl+0x30/0x1e2\n  [\u003cc0104c52\u003e] sysenter_past_esp+0x5f/0xa5\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n 2 locks held by prctl/3042:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#5){--..}, at: [\u003cc0197d11\u003e] do_fsync+0x38/0x7a\n #1:  (jbd_handle){--..}, at: [\u003cc01ca3d2\u003e] journal_start+0xc7/0xe9\n \u003c------------------\n\nthe current default timeout is 120 seconds. Such messages are printed\nup to 10 times per bootup. If the system has crashed already then the\nmessages are not printed.\n\nif lockdep is enabled then all held locks are printed as well.\n\nthis feature is a natural extension to the softlockup-detector (kernel\nlocked up without scheduling) and to the NMI watchdog (kernel locked up\nwith IRQs disabled).\n\n[ Gautham R Shenoy \u003cego@in.ibm.com\u003e: CPU hotplug fixes. ]\n[ Andrew Morton \u003cakpm@linux-foundation.org\u003e: build warning fix. ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "6b2d7700266b9402e12824e11e0099ae6a4a6a79",
      "tree": "d72c25b03150901ad8643f931186a11eb85635dc",
      "parents": [
        "a183561567b5446d3362b4839bd4f744f4b2af1e"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:00 2008 +0100"
      },
      "message": "sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups\n\nThe current load balancing scheme isn\u0027t good enough for precise\ngroup fairness.\n\nFor example: on a 8-cpu system, I created 3 groups as under:\n\n\ta \u003d 8 tasks (cpu.shares \u003d 1024)\n\tb \u003d 4 tasks (cpu.shares \u003d 1024)\n\tc \u003d 3 tasks (cpu.shares \u003d 1024)\n\na, b and c are task groups that have equal weight. We would expect each\nof the groups to receive 33.33% of cpu bandwidth under a fair scheduler.\n\nThis is what I get with the latest scheduler git tree:\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n--------------------------------------------------------------------------------\nCol1  | Col2    | Col3  |  Col4\n------|---------|-------|-------------------------------------------------------\na     | 277.676 | 57.8% | 54.1%  54.1%  54.1%  54.2%  56.7%  62.2%  62.8% 64.5%\nb     | 116.108 | 24.2% | 47.4%  48.1%  48.7%  49.3%\nc     |  86.326 | 18.0% | 47.5%  47.9%  48.5%\n--------------------------------------------------------------------------------\n\nExplanation of o/p:\n\nCol1 -\u003e Group name\nCol2 -\u003e Cumulative execution time (in seconds) received by all tasks of that\n\tgroup in a 60sec window across 8 cpus\nCol3 -\u003e CPU bandwidth received by the group in the 60sec window, expressed in\n        percentage. Col3 data is derived as:\n\t\tCol3 \u003d 100 * Col2 / (NR_CPUS * 60)\nCol4 -\u003e CPU bandwidth received by each individual task of the group.\n\t\tCol4 \u003d 100 * cpu_time_recd_by_task / 60\n\n[I can share the test case that produces a similar o/p if reqd]\n\nThe deviation from desired group fairness is as below:\n\n\ta \u003d +24.47%\n\tb \u003d -9.13%\n\tc \u003d -15.33%\n\nwhich is quite high.\n\nAfter the patch below is applied, here are the results:\n\n--------------------------------------------------------------------------------\nCol1  | Col2    | Col3  |  Col4\n------|---------|-------|-------------------------------------------------------\na     | 163.112 | 34.0% | 33.2%  33.4%  33.5%  33.5%  33.7%  34.4%  34.8% 35.3%\nb     | 156.220 | 32.5% | 63.3%  64.5%  66.1%  66.5%\nc     | 160.653 | 33.5% | 85.8%  90.6%  91.4%\n--------------------------------------------------------------------------------\n\nDeviation from desired group fairness is as below:\n\n\ta \u003d +0.67%\n\tb \u003d -0.83%\n\tc \u003d +0.17%\n\nwhich is far better IMO. Most of other runs have yielded a deviation within\n+-2% at the most, which is good.\n\nWhy do we see bad (group) fairness with current scheuler?\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCurrently cpu\u0027s weight is just the summation of individual task weights.\nThis can yield incorrect results. For ex: consider three groups as below\non a 2-cpu system:\n\n\tCPU0\tCPU1\n---------------------------\n\tA (10)  B(5)\n\t\tC(5)\n---------------------------\n\nGroup A has 10 tasks, all on CPU0, Group B and C have 5 tasks each all\nof which are on CPU1. Each task has the same weight (NICE_0_LOAD \u003d\n1024).\n\nThe current scheme would yield a cpu weight of 10240 (10*1024) for each cpu and\nthe load balancer will think both CPUs are perfectly balanced and won\u0027t\nmove around any tasks. This, however, would yield this bandwidth:\n\n\tA \u003d 50%\n\tB \u003d 25%\n\tC \u003d 25%\n\nwhich is not the desired result.\n\nWhat\u0027s changing in the patch?\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\t- How cpu weights are calculated when CONFIF_FAIR_GROUP_SCHED is\n\t  defined (see below)\n\t- API Change\n\t\t- Two tunables introduced in sysfs (under SCHED_DEBUG) to\n\t\t  control the frequency at which the load balance monitor\n\t\t  thread runs.\n\nThe basic change made in this patch is how cpu weight (rq-\u003eload.weight) is\ncalculated. Its now calculated as the summation of group weights on a cpu,\nrather than summation of task weights. Weight exerted by a group on a\ncpu is dependent on the shares allocated to it and also the number of\ntasks the group has on that cpu compared to the total number of\n(runnable) tasks the group has in the system.\n\nLet,\n\tW(K,i)  \u003d Weight of group K on cpu i\n\tT(K,i)  \u003d Task load present in group K\u0027s cfs_rq on cpu i\n\tT(K)    \u003d Total task load of group K across various cpus\n\tS(K) \t\u003d Shares allocated to group K\n\tNRCPUS\t\u003d Number of online cpus in the scheduler domain to\n\t \t  which group K is assigned.\n\nThen,\n\tW(K,i) \u003d S(K) * NRCPUS * T(K,i) / T(K)\n\nA load balance monitor thread is created at bootup, which periodically\nruns and adjusts group\u0027s weight on each cpu. To avoid its overhead, two\nmin/max tunables are introduced (under SCHED_DEBUG) to control the rate\nat which it runs.\n\nFixes from: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\n- don\u0027t start the load_balance_monitor when there is only a single cpu.\n- rename the kthread because its currently longer than TASK_COMM_LEN\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb41d9465cdafee45e0cb30f3b7338646221908e",
      "tree": "a2e5d62c8b1bd48d5b20515b541096709fe184e0",
      "parents": [
        "386f275f5d097758f867bc99ddeaeb7a03b6b190"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Nov 02 13:47:53 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:18 2008 -0800"
      },
      "message": "fix struct user_info export\u0027s sysfs interaction\n\nClean up the use of ksets and kobjects. Kobjects are instances of\nobjects (like struct user_info), ksets are collections of objects of a\nsimilar type (like the uids directory containing the user_info directories).\nSo, use kobjects for the user_info directories, and a kset for the \"uids\"\ndirectory.\n\nOn object cleanup, the final kobject_put() was missing.\n\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "84427eaef1fb91704c7112bdb598c810003b99f3",
      "tree": "bf22a7186295fcb6dc6bced34cfa73aa74b27300",
      "parents": [
        "974a9f0b47da74e28f68b9c8645c3786aa5ace1a"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jan 10 12:52:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jan 13 09:56:43 2008 -0800"
      },
      "message": "remove task_ppid_nr_ns\n\ntask_ppid_nr_ns is called in three places.  One of these should never\nhave called it.  In the other two, using it broke the existing\nsemantics.  This was presumably accidental.  If the function had not\nbeen there, it would have been much more obvious to the eye that those\npatches were changing the behavior.  We don\u0027t need this function.\n\nIn task_state, the pid of the ptracer is not the ppid of the ptracer.\n\nIn do_task_stat, ppid is the tgid of the real_parent, not its pid.\nI also moved the call outside of lock_task_sighand, since it doesn\u0027t\nneed it.\n\nIn sys_getppid, ppid is the tgid of the real_parent, not its pid.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "294d5cc233d81ec4aec77ebc60dc5752a3d0082a",
      "tree": "9b75eba307934d5cb156202617bd4bfa7c7f01ee",
      "parents": [
        "da78451190bdaae0e67d6c96b1ec3366abc45474"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:59:46 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:40:07 2007 -0500"
      },
      "message": "Add schedule_timeout_killable\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "f776d12dd16da1b0cd55a1240002c1b31f315d5d",
      "tree": "b57a69c2143361edf6b2c2d4fd1b6e8616c8f347",
      "parents": [
        "f021a3c2b14d0dd082c2cee890c204d9e1dee52b"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:15:50 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:35:35 2007 -0500"
      },
      "message": "Add fatal_signal_pending\n\nLike signal_pending, but it\u0027s only true for signals which are fatal to\nthis process\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "f021a3c2b14d0dd082c2cee890c204d9e1dee52b",
      "tree": "aa37eb6845605de6c69a70ac8cc3b22e2b0170a6",
      "parents": [
        "338077e54e17e656da470a84724b773816207316"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:13:16 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:35:28 2007 -0500"
      },
      "message": "Add TASK_WAKEKILL\n\nSet TASK_WAKEKILL for TASK_STOPPED and TASK_TRACED, add TASK_KILLABLE and\nuse TASK_WAKEKILL in signal_wake_up()\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "92a1f4bc7af13949d2185449307088cf98b4755d",
      "tree": "db5a1a87a0170ae5dcba05228f5e3c1a78612fcf",
      "parents": [
        "4a6e9e2ce822c9f597b3036887f6cf5fa3a79375"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 10:55:25 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:07:29 2007 -0500"
      },
      "message": "Add macros to replace direct uses of TASK_ flags\n\nWith the changes to support TASK_KILLABLE, -\u003estate becomes a bitmask, and\nmoving these tests to convenience macros will fix all the users.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "deaf2227ddf657a260e923db44b6f0974d9bb782",
      "tree": "2743a42c23a2341476a34522a6fdffa7848553d9",
      "parents": [
        "9a4e715914f07e56cbfa6f2b544a68365d51c3ef"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 28 15:52:56 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 28 15:52:56 2007 +0100"
      },
      "message": "sched: clean up, move __sched_text_start/end to sched.h\n\nmove __sched_text_start/end to sched.h. No code changed:\n\n   text    data     bss     dec     hex filename\n  26582    2310      28   28920    70f8 sched.o.before\n  26582    2310      28   28920    70f8 sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6fe6649b4ec11aa3075e394b4d8743eebe1f64c",
      "tree": "e04e8b2206dfad58e784ea6e4550f98f318aff0b",
      "parents": [
        "b82d9fdd848abfbe7263a4ecd9bbb55e575100a6"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: proper prototype for kernel/sched.c:migration_init()\n\nThis patch adds a proper prototype for migration_init() in\ninclude/linux/sched.h\n\nSince there\u0027s no point in always returning 0 to a caller that doesn\u0027t check\nthe return value it also changes the function to return void.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b82d9fdd848abfbe7263a4ecd9bbb55e575100a6",
      "tree": "7d4c525cc4bd633c84abcfd8d934c84e5dc9ce7c",
      "parents": [
        "3c90e6e99b08f01d5684a3a07cceae6a543e4fa8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: avoid large irq-latencies in smp-balancing\n\nSMP balancing is done with IRQs disabled and can iterate the full rq.\nWhen rqs are large this can cause large irq-latencies. Limit the nr of\niterations on each run.\n\nThis fixes a scheduling latency regression reported by the -rt folks.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nTested-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e3e13f399ac8060a20d14d210a28dc02dda372e",
      "tree": "b560a614e926f5f90e4096b6d4743b1b5fdfccb2",
      "parents": [
        "52d3da1ad4f442cec877fbeb83902707b56da0cf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: remove PREEMPT_RESTRICT\n\nremove PREEMPT_RESTRICT. (this is a separate commit so that any\nregression related to the removal itself is bisectable)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa13a5a1f25f671d084d8884be96fc48d9b68275",
      "tree": "97dae05bb5baef806a6dcbeed8b7eb5bdc61e4ae",
      "parents": [
        "9a41785cc43d88397f787a651ed7286a33f8462f"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri Nov 09 22:39:38 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:38 2007 +0100"
      },
      "message": "sched: restore deterministic CPU accounting on powerpc\n\nSince powerpc started using CONFIG_GENERIC_CLOCKEVENTS, the\ndeterministic CPU accounting (CONFIG_VIRT_CPU_ACCOUNTING) has been\nbroken on powerpc, because we end up counting user time twice: once in\ntimer_interrupt() and once in update_process_times().\n\nThis fixes the problem by pulling the code in update_process_times\nthat updates utime and stime into a separate function called\naccount_process_tick.  If CONFIG_VIRT_CPU_ACCOUNTING is not defined,\nthere is a version of account_process_tick in kernel/timer.c that\nsimply accounts a whole tick to either utime or stime as before.  If\nCONFIG_VIRT_CPU_ACCOUNTING is defined, then arch code gets to\nimplement account_process_tick.\n\nThis also lets us simplify the s390 code a bit; it means that the s390\ntimer interrupt can now call update_process_times even when\nCONFIG_VIRT_CPU_ACCOUNTING is turned on, and can just implement a\nsuitable account_process_tick().\n\naccount_process_tick() now takes the task_struct * as an argument.\nTested both with and without CONFIG_VIRT_CPU_ACCOUNTING.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b2be5e96dc0b5a179cf4cb98e65cfb605752ca26",
      "tree": "cf229cf83afc2c30369d1751338886cf8a067b5c",
      "parents": [
        "2cb8600e6be4281e381d39e44de4359e46333e23"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 09 22:39:37 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:37 2007 +0100"
      },
      "message": "sched: reintroduce the sched_min_granularity tunable\n\nwe lost the sched_min_granularity tunable to a clever optimization\nthat uses the sched_latency/min_granularity ratio - but the ratio\nis quite unintuitive to users and can also crash the kernel if the\nratio is set to 0. So reintroduce the min_granularity tunable,\nwhile keeping the ratio maintained internally.\n\nno functionality changed.\n\n[ mingo@elte.hu: some fixlets. ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9301899be75b464ef097f0b5af7af6d9bd8f68a7",
      "tree": "a7053c5c0babcdbad6d4baff0551d60e5c4308af",
      "parents": [
        "82798a17ad40df827d465329a20ace80497f9b32"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "message": "sched: fix /proc/\u003cPID\u003e/stat stime/utime monotonicity, part 2\n\nExtend Peter\u0027s patch to fix accounting issues, by keeping stime\nmonotonic too.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\n"
    },
    {
      "commit": "73a2bcb0edb9ffb0b007b3546b430e2c6e415eee",
      "tree": "dd84f61589c7dd21b7be973c288611ffe547f21b",
      "parents": [
        "f7402e0361d4472535e07cfca648f2fa81d85cd2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: keep utime/stime monotonic\n\nkeep utime/stime monotonic.\n\ncpustats use utime/stime as a ratio against sum_exec_runtime, as a\nconsequence it can happen - when the ratio changes faster than time\naccumulates - that either can be appear to go backwards.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e868171a94b637158a3930c9adfb448d0df163cd",
      "tree": "f6619ae1407802e8e123f28854e310bd90784865",
      "parents": [
        "ade8c56cbd02020fecbe1684f181250a466685eb"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Oct 26 12:17:22 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 26 08:42:24 2007 -0700"
      },
      "message": "De-constify sched.h\n\n[PATCH] De-constify sched.h\n\nThis reverts commit a8972ccf00b7184a743eb6cd9bc7f3443357910c (\"sched:\nconstify sched.h\")\n\n 1) Patch doesn\u0027t change any code here, so gcc is already smart enough\n    to \"feel\" constness in such simple functions.\n 2) There is no such thing as const task_struct.  Anyone who think\n    otherwise deserves compiler warning.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "681f3e68541d6f03e3e05d21fe15093578b8b539",
      "tree": "82e13a7b15a2bb15233ba964dd1eb352b007cae4",
      "parents": [
        "e1d1484f72127a5580d37c379f6a5b2c2786434c"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "message": "sched: isolate SMP balancing code a bit more\n\nAt the moment, a lot of load balancing code that is irrelevant to non\nSMP systems gets included during non SMP builds.\n\nThis patch addresses this issue and reduces the binary size on non\nSMP systems:\n\n   text    data     bss     dec     hex filename\n  10983      28    1192   12203    2fab sched.o.before\n  10739      28    1192   11959    2eb7 sched.o.after\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1d1484f72127a5580d37c379f6a5b2c2786434c",
      "tree": "e3e6529c5b9079f35b2c60bbd346a3c51c2b2c13",
      "parents": [
        "a0f846aa76c3e03d54c1700a87cab3a46ccd71e2"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "message": "sched: reduce balance-tasks overhead\n\nAt the moment, balance_tasks() provides low level functionality for both\n  move_tasks() and move_one_task() (indirectly) via the load_balance()\nfunction (in the sched_class interface) which also provides dual\nfunctionality.  This dual functionality complicates the interfaces and\ninternal mechanisms and makes the run time overhead of operations that\nare called with two run queue locks held.\n\nThis patch addresses this issue and reduces the overhead of these\noperations.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8972ccf00b7184a743eb6cd9bc7f3443357910c",
      "tree": "a5b6652a138a9f428cdff8f440c7a5bbe52e8b85",
      "parents": [
        "b3da2a73ff5a2953a4ad8ebbf0aa7e6965ff9de2"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: constify sched.h\n\nAdd const to some struct task_struct * uses\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a2e70572e94e21e7ec4186702d045415422bda0",
      "tree": "a6cd54dc559cbf6840dac4077f507a961486e21b",
      "parents": [
        "270f722d4d5f94b02fd48eed47e57917ab00a858"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Isolate the explicit usage of signal-\u003epgrp\n\nThe pgrp field is not used widely around the kernel so it is now marked as\ndeprecated with appropriate comment.\n\nThe initialization of INIT_SIGNALS is trimmed because\na) they are set to 0 automatically;\nb) gcc cannot properly initialize two anonymous (the second one\n   is the one with the session) unions. In this particular case\n   to make it compile we\u0027d have to add some field initialized\n   right before the .pgrp.\n\nThis is the same patch as the 1ec320afdc9552c92191d5f89fcd1ebe588334ca one\n(from Cedric), but for the pgrp field.\n\nSome progress report:\n\nWe have to deprecate the pid, tgid, session and pgrp fields on struct\ntask_struct and struct signal_struct.  The session and pgrp are already\ndeprecated.  The tgid value is close to being such - the worst known usage\nin in fs/locks.c and audit code.  The pid field deprecation is mainly\nblocked by numerous printk-s around the kernel that print the tsk-\u003epid to\nlog.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "029190c515f15f512ac85de8fc686d4dbd0ae731",
      "tree": "a946f9223d17e945141fef81f94a75b38e2cc6ef",
      "parents": [
        "2f2a3a46fcafa7a12d61454f67f932dfe7d84c60"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Oct 18 23:40:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "cpuset sched_load_balance flag\n\nAdd a new per-cpuset flag called \u0027sched_load_balance\u0027.\n\nWhen enabled in a cpuset (the default value) it tells the kernel scheduler\nthat the scheduler should provide the normal load balancing on the CPUs in\nthat cpuset, sometimes moving tasks from one CPU to a second CPU if the\nsecond CPU is less loaded and if that task is allowed to run there.\n\nWhen disabled (write \"0\" to the file) then it tells the kernel scheduler\nthat load balancing is not required for the CPUs in that cpuset.\n\nNow even if this flag is disabled for some cpuset, the kernel may still\nhave to load balance some or all the CPUs in that cpuset, if some\noverlapping cpuset has its sched_load_balance flag enabled.\n\nIf there are some CPUs that are not in any cpuset whose sched_load_balance\nflag is enabled, the kernel scheduler will not load balance tasks to those\nCPUs.\n\nMoreover the kernel will partition the \u0027sched domains\u0027 (non-overlapping\nsets of CPUs over which load balancing is attempted) into the finest\ngranularity partition that it can find, while still keeping any two CPUs\nthat are in the same shed_load_balance enabled cpuset in the same element\nof the partition.\n\nThis serves two purposes:\n 1) It provides a mechanism for real time isolation of some CPUs, and\n 2) it can be used to improve performance on systems with many CPUs\n    by supporting configurations in which load balancing is not done\n    across all CPUs at once, but rather only done in several smaller\n    disjoint sets of CPUs.\n\nThis mechanism replaces the earlier overloading of the per-cpuset\nflag \u0027cpu_exclusive\u0027, which overloading was removed in an earlier\npatch: cpuset-remove-sched-domain-hooks-from-cpusets\n\nSee further the Documentation and comments in the code itself.\n\n[akpm@linux-foundation.org: don\u0027t be weird]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f2a3a46fcafa7a12d61454f67f932dfe7d84c60",
      "tree": "cd4fe3aed382a0557cdfb9fa0b7a3b950a01a767",
      "parents": [
        "8990571eb573032c1192440febb17132074c5575"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "Uninline the task_xid_nr_ns() calls\n\nSince these are expanded into call to pid_nr_ns() anyway, it\u0027s OK to move\nthe whole routine out-of-line.  This is a cheap way to save ~100 bytes from\nvmlinux.  Together with the previous two patches, it saves half-a-kilo from\nthe vmlinux.\n\nUn-inline other (currently inlined) functions must be done with additional\nperformance testing.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bac0abd6174e427404dd197cdbefece31e97329b",
      "tree": "68ed6bd8619552c921c9fb99e83cb04fcb235a39",
      "parents": [
        "19b9b9b54e5f115907efd56be2c3799775a46561"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "Isolate some explicit usage of task-\u003etgid\n\nWith pid namespaces this field is now dangerous to use explicitly, so hide\nit behind the helpers.\n\nAlso the pid and pgrp fields o task_struct and signal_struct are to be\ndeprecated.  Unfortunately this patch cannot be sent right now as this\nleads to tons of warnings, so start isolating them, and deprecate later.\n\nActually the p-\u003etgid \u003d\u003d pid has to be changed to has_group_leader_pid(),\nbut Oleg pointed out that in case of posix cpu timers this is the same, and\nthread_group_leader() is more preferable.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "228ebcbe634a30aec35132ea4375721bcc41bec0",
      "tree": "a875976fd5bde6e2f931aa235c34c88a2738493f",
      "parents": [
        "b488893a390edfe027bae7a46e9af8083e740668"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "Uninline find_task_by_xxx set of functions\n\nThe find_task_by_something is a set of macros are used to find task by pid\ndepending on what kind of pid is proposed - global or virtual one.  All of\nthem are wrappers above the most generic one - find_task_by_pid_type_ns() -\nand just substitute some args for it.\n\nIt turned out, that dereferencing the current-\u003ensproxy-\u003epid_ns construction\nand pushing one more argument on the stack inline cause kernel text size to\ngrow.\n\nThis patch moves all this stuff out-of-line into kernel/pid.c.  Together\nwith the next patch it saves a bit less than 400 bytes from the .text\nsection.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "30e49c263e36341b60b735cbef5ca37912549264"
}
