)]}'
{
  "log": [
    {
      "commit": "786235eeba0e1e85e5cbbb9f97d1087ad03dfa21",
      "tree": "e529b2b8f6a64889ec8c385cdca64f5c1d8e1c19",
      "parents": [
        "10d0c9705e80bbd3d587c5fad24599aabaca6688"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Tue Nov 12 15:06:45 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 13 12:08:59 2013 +0900"
      },
      "message": "kthread: make kthread_create() killable\n\nAny user process callers of wait_for_completion() except global init\nprocess might be chosen by the OOM killer while waiting for completion()\ncall by some other process which does memory allocation.  See\nCVE-2012-4398 \"kernel: request_module() OOM local DoS\" can happen.\n\nWhen such users are chosen by the OOM killer when they are waiting for\ncompletion() in TASK_UNINTERRUPTIBLE, the system will be kept stressed\ndue to memory starvation because the OOM killer cannot kill such users.\n\nkthread_create() is one of such users and this patch fixes the problem\nfor kthreadd by making kthread_create() killable - the same approach\nused for fixing CVE-2012-4398.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: 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": "cd42d559e45e3563c74403e453f8954b593db69d",
      "tree": "99a39e02bd0428eaa52ebace5233de56d6441bae",
      "parents": [
        "681a90ffe829b8ee25d5266d7e69af256c090940"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 30 15:27:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 30 17:04:02 2013 -0700"
      },
      "message": "kthread: implement probe_kthread_data()\n\nOne of the problems that arise when converting dedicated custom threadpool\nto workqueue is that the shared worker pool used by workqueue anonimizes\neach worker making it more difficult to identify what the worker was doing\non which target from the output of sysrq-t or debug dump from oops, BUG()\nand friends.\n\nFor example, after writeback is converted to use workqueue instead of\npriviate thread pool, there\u0027s no easy to tell which backing device a\nwriteback work item was working on at the time of task dump, which,\naccording to our writeback brethren, is important in tracking down issues\nwith a lot of mounted file systems on a lot of different devices.\n\nThis patchset implements a way for a work function to mark its execution\ninstance so that task dump of the worker task includes information to\nindicate what the work item was doing.\n\nAn example WARN dump would look like the following.\n\n WARNING: at fs/fs-writeback.c:1015 bdi_writeback_workfn+0x2b4/0x3c0()\n Modules linked in:\n CPU: 0 Pid: 28 Comm: kworker/u18:0 Not tainted 3.9.0-rc1-work+ #24\n Hardware name: empty empty/S3992, BIOS 080011  10/26/2007\n Workqueue: writeback bdi_writeback_workfn (flush-8:16)\n  ffffffff820a3a98 ffff88015b927cb8 ffffffff81c61855 ffff88015b927cf8\n  ffffffff8108f500 0000000000000000 ffff88007a171948 ffff88007a1716b0\n  ffff88015b49df00 ffff88015b8d3940 0000000000000000 ffff88015b927d08\n Call Trace:\n  [\u003cffffffff81c61855\u003e] dump_stack+0x19/0x1b\n  [\u003cffffffff8108f500\u003e] warn_slowpath_common+0x70/0xa0\n  ...\n\nThis patch:\n\nImplement probe_kthread_data() which returns kthread_data if accessible.\nThe function is equivalent to kthread_data() except that the specified\n@task may not be a kthread or its vfork_done is already cleared rendering\nstruct kthread inaccessible.  In the former case, probe_kthread_data() may\nreturn any value.  In the latter, NULL.\n\nThis will be used to safely print debug information without affecting\nsynchronization in the normal paths.  Workqueue debug info printing on\ndump_stack() and friends will make use of it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46d9be3e5eb01f71fc02653755d970247174b400",
      "tree": "01534c9ebfa5f52a7133e34354d2831fe6704f15",
      "parents": [
        "ce8aa48929449b491149b6c87861ac69cb797a42",
        "cece95dfe5aa56ba99e51b4746230ff0b8542abd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 19:07:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 19:07:40 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue updates from Tejun Heo:\n \"A lot of activities on workqueue side this time.  The changes achieve\n  the followings.\n\n   - WQ_UNBOUND workqueues - the workqueues which are per-cpu - are\n     updated to be able to interface with multiple backend worker pools.\n     This involved a lot of churning but the end result seems actually\n     neater as unbound workqueues are now a lot closer to per-cpu ones.\n\n   - The ability to interface with multiple backend worker pools are\n     used to implement unbound workqueues with custom attributes.\n     Currently the supported attributes are the nice level and CPU\n     affinity.  It may be expanded to include cgroup association in\n     future.  The attributes can be specified either by calling\n     apply_workqueue_attrs() or through /sys/bus/workqueue/WQ_NAME/* if\n     the workqueue in question is exported through sysfs.\n\n     The backend worker pools are keyed by the actual attributes and\n     shared by any workqueues which share the same attributes.  When\n     attributes of a workqueue are changed, the workqueue binds to the\n     worker pool with the specified attributes while leaving the work\n     items which are already executing in its previous worker pools\n     alone.\n\n     This allows converting custom worker pool implementations which\n     want worker attribute tuning to use workqueues.  The writeback pool\n     is already converted in block tree and there are a couple others\n     are likely to follow including btrfs io workers.\n\n   - WQ_UNBOUND\u0027s ability to bind to multiple worker pools is also used\n     to make it NUMA-aware.  Because there\u0027s no association between work\n     item issuer and the specific worker assigned to execute it, before\n     this change, using unbound workqueue led to unnecessary cross-node\n     bouncing and it couldn\u0027t be helped by autonuma as it requires tasks\n     to have implicit node affinity and workers are assigned randomly.\n\n     After these changes, an unbound workqueue now binds to multiple\n     NUMA-affine worker pools so that queued work items are executed in\n     the same node.  This is turned on by default but can be disabled\n     system-wide or for individual workqueues.\n\n     Crypto was requesting NUMA affinity as encrypting data across\n     different nodes can contribute noticeable overhead and doing it\n     per-cpu was too limiting for certain cases and IO throughput could\n     be bottlenecked by one CPU being fully occupied while others have\n     idle cycles.\n\n  While the new features required a lot of changes including\n  restructuring locking, it didn\u0027t complicate the execution paths much.\n  The unbound workqueue handling is now closer to per-cpu ones and the\n  new features are implemented by simply associating a workqueue with\n  different sets of backend worker pools without changing queue,\n  execution or flush paths.\n\n  As such, even though the amount of change is very high, I feel\n  relatively safe in that it isn\u0027t likely to cause subtle issues with\n  basic correctness of work item execution and handling.  If something\n  is wrong, it\u0027s likely to show up as being associated with worker pools\n  with the wrong attributes or OOPS while workqueue attributes are being\n  changed or during CPU hotplug.\n\n  While this creates more backend worker pools, it doesn\u0027t add too many\n  more workers unless, of course, there are many workqueues with unique\n  combinations of attributes.  Assuming everything else is the same,\n  NUMA awareness costs an extra worker pool per NUMA node with online\n  CPUs.\n\n  There are also a couple things which are being routed outside the\n  workqueue tree.\n\n   - block tree pulled in workqueue for-3.10 so that writeback worker\n     pool can be converted to unbound workqueue with sysfs control\n     exposed.  This simplifies the code, makes writeback workers\n     NUMA-aware and allows tuning nice level and CPU affinity via sysfs.\n\n   - The conversion to workqueue means that there\u0027s no 1:1 association\n     between a specific worker, which makes writeback folks unhappy as\n     they want to be able to tell which filesystem caused a problem from\n     backtrace on systems with many filesystems mounted.  This is\n     resolved by allowing work items to set debug info string which is\n     printed when the task is dumped.  As this change involves unifying\n     implementations of dump_stack() and friends in arch codes, it\u0027s\n     being routed through Andrew\u0027s -mm tree.\"\n\n* \u0027for-3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (84 commits)\n  workqueue: use kmem_cache_free() instead of kfree()\n  workqueue: avoid false negative WARN_ON() in destroy_workqueue()\n  workqueue: update sysfs interface to reflect NUMA awareness and a kernel param to disable NUMA affinity\n  workqueue: implement NUMA affinity for unbound workqueues\n  workqueue: introduce put_pwq_unlocked()\n  workqueue: introduce numa_pwq_tbl_install()\n  workqueue: use NUMA-aware allocation for pool_workqueues\n  workqueue: break init_and_link_pwq() into two functions and introduce alloc_unbound_pwq()\n  workqueue: map an unbound workqueues to multiple per-node pool_workqueues\n  workqueue: move hot fields of workqueue_struct to the end\n  workqueue: make workqueue-\u003ename[] fixed len\n  workqueue: add workqueue-\u003eunbound_attrs\n  workqueue: determine NUMA node of workers accourding to the allowed cpumask\n  workqueue: drop \u0027H\u0027 from kworker names of unbound worker pools\n  workqueue: add wq_numa_tbl_len and wq_numa_possible_cpumask[]\n  workqueue: move pwq_pool_locking outside of get/put_unbound_pool()\n  workqueue: fix memory leak in apply_workqueue_attrs()\n  workqueue: fix unbound workqueue attrs hashing / comparison\n  workqueue: fix race condition in unbound workqueue free path\n  workqueue: remove pwq_lock which is no longer used\n  ...\n"
    },
    {
      "commit": "b5c5442bb6bce0c67701d55124be561043a51faf",
      "tree": "f00a0fdcdb157fa4b8f54c6a31d3935b7c927aa6",
      "parents": [
        "4ecdafc8084fe1d95bb59ed7753b345abcd586fb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Apr 29 15:05:12 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:25 2013 -0700"
      },
      "message": "kthread: kill task_get_live_kthread()\n\ntask_get_live_kthread() looks confusing and unneeded.  It does\nget_task_struct() but only kthread_stop() needs this, it can be called\neven if the calller doesn\u0027t have a reference when we know that this\nkthread can\u0027t exit until we do kthread_stop().\n\nkthread_park() and kthread_unpark() do not need get_task_struct(), the\ncallers already have the reference.  And it can not help if we can race\nwith the exiting kthread anyway, kthread_park() can hang forever in this\ncase.\n\nChange kthread_park() and kthread_unpark() to use to_live_kthread(),\nchange kthread_stop() to do get_task_struct() by hand and remove\ntask_get_live_kthread().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ecdafc8084fe1d95bb59ed7753b345abcd586fb",
      "tree": "b119ed319cfb2f526ac5666f04bef7e13caecd3c",
      "parents": [
        "ec25e246b94a3233ab064994ef05a170bdba0e7c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Apr 29 15:05:01 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:25 2013 -0700"
      },
      "message": "kthread: introduce to_live_kthread()\n\n\"k-\u003evfork_done !\u003d NULL\" with a barrier() after to_kthread(k) in\ntask_get_live_kthread(k) looks unclear, and sub-optimal because we load\n-\u003evfork_done twice.\n\nAll we need is to ensure that we do not return to_kthread(NULL).  Add a\nnew trivial helper which loads/checks -\u003evfork_done once, this also looks\nmore understandable.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2530dc71cf0822f90bb63ea4600caaef33a66bb",
      "tree": "182473ca3a295cdbd907826aa22bae94c52fa486",
      "parents": [
        "cfb63bafdb87bbcdc5d6dbbca623d3f69475f118"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 09 09:33:34 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Apr 12 14:18:43 2013 +0200"
      },
      "message": "kthread: Prevent unpark race which puts threads on the wrong cpu\n\nThe smpboot threads rely on the park/unpark mechanism which binds per\ncpu threads on a particular core. Though the functionality is racy:\n\nCPU0\t       \t \tCPU1  \t     \t    CPU2\nunpark(T)\t\t\t\t    wake_up_process(T)\n  clear(SHOULD_PARK)\tT runs\n\t\t\tleave parkme() due to !SHOULD_PARK  \n  bind_to(CPU2)\t\tBUG_ON(wrong CPU)\t\t\t\t\t\t    \n\nWe cannot let the tasks move themself to the target CPU as one of\nthose tasks is actually the migration thread itself, which requires\nthat it starts running on the target cpu right away.\n\nThe solution to this problem is to prevent wakeups in park mode which\nare not from unpark(). That way we can guarantee that the association\nof the task to the target cpu is working correctly.\n\nAdd a new task state (TASK_PARKED) which prevents other wakeups and\nuse this state explicitly for the unpark wakeup.\n\nPeter noticed: Also, since the task state is visible to userspace and\nall the parked tasks are still in the PID space, its a good hint in ps\nand friends that these tasks aren\u0027t really there for the moment.\n\nThe migration thread has another related issue.\n\nCPU0\t      \t     \t CPU1\nBring up CPU2\ncreate_thread(T)\npark(T)\n wait_for_completion()\n\t\t\t parkme()\n\t\t\t complete()\nsched_set_stop_task()\n\t\t\t schedule(TASK_PARKED)\n\nThe sched_set_stop_task() call is issued while the task is on the\nrunqueue of CPU1 and that confuses the hell out of the stop_task class\non that cpu. So we need the same synchronizaion before\nsched_set_stop_task().\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-and-tested-by: Dave Hansen \u003cdave@sr71.net\u003e\nReported-and-tested-by: Borislav Petkov \u003cbp@alien8.de\u003e\nAcked-by: Peter Ziljstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: dhillf@gmail.com\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: stable@vger.kernel.org\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1304091635430.21884@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "14a40ffccd6163bbcd1d6f32b28a88ffe6149fc6",
      "tree": "eb61e5bf7b64c3e67f3e33fe6b07fde4ee1d4d43",
      "parents": [
        "2e109a2855bf6cf675a8b74dbd89b6492e8def42"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 19 13:45:20 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 19 13:45:20 2013 -0700"
      },
      "message": "sched: replace PF_THREAD_BOUND with PF_NO_SETAFFINITY\n\nPF_THREAD_BOUND was originally used to mark kernel threads which were\nbound to a specific CPU using kthread_bind() and a task with the flag\nset allows cpus_allowed modifications only to itself.  Workqueue is\ncurrently abusing it to prevent userland from meddling with\ncpus_allowed of workqueue workers.\n\nWhat we need is a flag to prevent userland from messing with\ncpus_allowed of certain kernel tasks.  In kernel, anyone can\n(incorrectly) squash the flag, and, for worker-type usages,\nrestricting cpus_allowed modification to the task itself doesn\u0027t\nprovide meaningful extra proection as other tasks can inject work\nitems to the task anyway.\n\nThis patch replaces PF_THREAD_BOUND with PF_NO_SETAFFINITY.\nsched_setaffinity() checks the flag and return -EINVAL if set.\nset_cpus_allowed_ptr() is no longer affected by the flag.\n\nThis will allow simplifying workqueue worker CPU affinity management.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "aee4faa499dc58fdb126885f68d447f2eba79b43",
      "tree": "f0987873eba0b2158386a5af80cda9846ca0006d",
      "parents": [
        "a47b53c5f9a690addbc094501e4ae083ec307f57"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:33 2012 -0800"
      },
      "message": "kthread: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\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": "4e21fc138bfd7fe625ff5dc81541399aaf9d429b",
      "tree": "43bedf14d2eee7711b8241dcfd6bd7b8737d9bd5",
      "parents": [
        "8418263e3547ed3816475e4c55a77004f0426ee6",
        "5522be6a4624a5f505555569e4d9cee946630686"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:05:52 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 13 10:05:52 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull third pile of kernel_execve() patches from Al Viro:\n \"The last bits of infrastructure for kernel_thread() et.al., with\n  alpha/arm/x86 use of those.  Plus sanitizing the asm glue and\n  do_notify_resume() on alpha, fixing the \"disabled irq while running\n  task_work stuff\" breakage there.\n\n  At that point the rest of kernel_thread/kernel_execve/sys_execve work\n  can be done independently for different architectures.  The only\n  pending bits that do depend on having all architectures converted are\n  restrictred to fs/* and kernel/* - that\u0027ll obviously have to wait for\n  the next cycle.\n\n  I thought we\u0027d have to wait for all of them done before we start\n  eliminating the longjump-style insanity in kernel_execve(), but it\n  turned out there\u0027s a very simple way to do that without flagday-style\n  changes.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  alpha: switch to saner kernel_execve() semantics\n  arm: switch to saner kernel_execve() semantics\n  x86, um: convert to saner kernel_execve() semantics\n  infrastructure for saner ret_from_kernel_thread semantics\n  make sure that kernel_thread() callbacks call do_exit() themselves\n  make sure that we always have a return path from kernel_execve()\n  ppc: eeh_event should just use kthread_run()\n  don\u0027t bother with kernel_thread/kernel_execve for launching linuxrc\n  alpha: get rid of switch_stack argument of do_work_pending()\n  alpha: don\u0027t bother passing switch_stack separately from regs\n  alpha: take SIGPENDING/NOTIFY_RESUME loop into signal.c\n  alpha: simplify TIF_NEED_RESCHED handling\n"
    },
    {
      "commit": "a74fb73c12398b250fdc5e333a11e15a9e3a84fc",
      "tree": "2bec2f6e20320f5a4bc01d1e19d7190842ef1c37",
      "parents": [
        "fb45550d76bb584857cf0ea3be79fa78207a3cff"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 21:28:25 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 13:35:07 2012 -0400"
      },
      "message": "infrastructure for saner ret_from_kernel_thread semantics\n\n* allow kernel_execve() leave the actual return to userland to\ncaller (selected by CONFIG_GENERIC_KERNEL_EXECVE).  Callers\nupdated accordingly.\n* architecture that does select GENERIC_KERNEL_EXECVE in its\nKconfig should have its ret_from_kernel_thread() do this:\n\tcall schedule_tail\n\tcall the callback left for it by copy_thread(); if it ever\nreturns, that\u0027s because it has just done successful kernel_execve()\n\tjump to return from syscall\nIOW, its only difference from ret_from_fork() is that it does call the\ncallback.\n* such an architecture should also get rid of ret_from_kernel_execve()\nand __ARCH_WANT_KERNEL_EXECVE\n\nThis is the last part of infrastructure patches in that area - from\nthat point on work on different architectures can live independently.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a1d446019f9a5983ec5a335b95e8593fdb6fa2e",
      "tree": "d4867984d3655cc2e0805534601b94c7ab92bcd7",
      "parents": [
        "5d01bbd111d6ff9ea9d9847774f66dff39633776"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 16 10:42:36 2012 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 13 17:01:06 2012 +0200"
      },
      "message": "kthread: Implement park/unpark facility\n\nTo avoid the full teardown/setup of per cpu kthreads in the case of\ncpu hot(un)plug, provide a facility which allows to put the kthread\ninto a park position and unpark it when the cpu comes online again.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20120716103948.236618824@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "46f3d976213452350f9d10b0c2780c2681f7075b",
      "tree": "1a8e0b20c306f84b07eedc97c07308be65a060ce",
      "parents": [
        "9a2e03d8ed518a61154f18d83d6466628e519f94"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 19 13:52:53 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jul 22 10:15:28 2012 -0700"
      },
      "message": "kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed\n\nkthread_worker provides minimalistic workqueue-like interface for\nusers which need a dedicated worker thread (e.g. for realtime\npriority).  It has basic queue, flush_work, flush_worker operations\nwhich mostly match the workqueue counterparts; however, due to the way\nflush_work() is implemented, it has a noticeable difference of not\nallowing work items to be freed while being executed.\n\nWhile the current users of kthread_worker are okay with the current\nbehavior, the restriction does impede some valid use cases.  Also,\nremoving this difference isn\u0027t difficult and actually makes the code\neasier to understand.\n\nThis patch reimplements flush_kthread_work() such that it uses a\nflush_work item instead of queue/done sequence numbers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "9a2e03d8ed518a61154f18d83d6466628e519f94",
      "tree": "ed5a66780409fd7ab1df70d799d8fb57a03477e6",
      "parents": [
        "8db25e7891a47e03db6f04344a9c92be16e391bb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 19 13:52:53 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jul 22 10:11:01 2012 -0700"
      },
      "message": "kthread_worker: reorganize to prepare for flush_kthread_work() reimplementation\n\nMake the following two non-functional changes.\n\n* Separate out insert_kthread_work() from queue_kthread_work().\n\n* Relocate struct kthread_flush_work and kthread_flush_work_fn()\n  definitions above flush_kthread_work().\n\nv2: Added lockdep_assert_held() in insert_kthread_work() as suggested\n    by Andy Walls.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Andy Walls \u003cawalls@md.metrocast.net\u003e\n"
    },
    {
      "commit": "34b087e48367c252e343c2f8de65676a78af1e4a",
      "tree": "fbe94bad0a3073c6f4231752fba99c6bc8702277",
      "parents": [
        "adfa543e7314b36ac55a40019977de6e47946dd7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 23 09:28:17 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 23 09:28:17 2011 -0800"
      },
      "message": "freezer: kill unused set_freezable_with_signal()\n\nThere\u0027s no in-kernel user of set_freezable_with_signal() left.  Mixing\nTIF_SIGPENDING with kernel threads can lead to nasty corner cases as\nkernel threads never travel signal delivery path on their own.\n\ne.g. the current implementation is buggy in the cancelation path of\n__thaw_task().  It calls recalc_sigpending_and_wake() in an attempt to\nclear TIF_SIGPENDING but the function never clears it regardless of\nsigpending state.  This means that signallable freezable kthreads may\ncontinue executing with !freezing() \u0026\u0026 stuck TIF_SIGPENDING, which can\nbe troublesome.\n\nThis patch removes set_freezable_with_signal() along with\nPF_FREEZER_NOSIG and recalc_sigpending*() calls in freezer.  User\ntasks get TIF_SIGPENDING, kernel tasks get woken up and the spurious\nsigpending is dealt with in the usual signal delivery path.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "8a32c441c1609f80e55df75422324a1151208f40",
      "tree": "73884b06cc2db3ea155af9a88815bb5105a4473e",
      "parents": [
        "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:23 2011 -0800"
      },
      "message": "freezer: implement and use kthread_freezable_should_stop()\n\nWriteback and thinkpad_acpi have been using thaw_process() to prevent\ndeadlock between the freezer and kthread_stop(); unfortunately, this\nis inherently racy - nothing prevents freezing from happening between\nthaw_process() and kthread_stop().\n\nThis patch implements kthread_freezable_should_stop() which enters\nrefrigerator if necessary but is guaranteed to return if\nkthread_stop() is invoked.  Both thaw_process() users are converted to\nuse the new function.\n\nNote that this deadlock condition exists for many of freezable\nkthreads.  They need to be converted to use the new should_stop or\nfreezable workqueue.\n\nTested with synthetic test case.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Henrique de Moraes Holschuh \u003cibm-acpi@hmh.eng.br\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "9984de1a5a8a96275fcab818f7419af5a3c86e71",
      "tree": "1935d411752707a1621c5caf64f75dfe105beb3a",
      "parents": [
        "7c77509c542927ee2a3c8812fad84957e51bf67d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon May 23 14:51:41 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "kernel: Map most files to use export.h instead of module.h\n\nThe changed files were only including linux/module.h for the\nEXPORT_SYMBOL infrastructure, and nothing else.  Revector them\nonto the isolated export header for faster compile times.\n\nNothing to see here but a whole lot of instances of:\n\n  -#include \u003clinux/module.h\u003e\n  +#include \u003clinux/export.h\u003e\n\nThis commit is only changing the kernel dir; next targets\nwill probably be mm, fs, the arch dirs, etc.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d",
      "tree": "c50e88412c8b42264177dc125f74a30f9c7a82d9",
      "parents": [
        "1e876231785d82443a5ac8b6c660e9f51bc5dede"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 19 15:08:58 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:57 2011 +0200"
      },
      "message": "cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n\nThe rule is, we have to update tsk-\u003ert.nr_cpus_allowed if we change\ntsk-\u003ecpus_allowed. Otherwise RT scheduler may confuse.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4DD4B3FA.5060901@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "207205a2ba2655652fe46a60b49838af6c16a919",
      "tree": "4309aa7cd5cf39c805219001e0ed8ec5b71e4d5e",
      "parents": [
        "b6a84016bd2598e35ead635147fa53619982648d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "kthread: NUMA aware kthread_create_on_node()\n\nAll kthreads being created from a single helper task, they all use memory\nfrom a single node for their kernel stack and task struct.\n\nThis patch suite creates kthread_create_on_node(), adding a \u0027cpu\u0027 parameter\nto parameters already used by kthread_create().\n\nThis parameter serves in allocating memory for the new kthread on its\nmemory node if possible.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9b5f501ef1580faa30c40c644b7691870462201",
      "tree": "d22df12b72bc90b130254078ee71b1b7e7e3e521",
      "parents": [
        "524429c31b486c05449666b94613f59f729c0a84"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 07 13:41:40 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 07 15:55:45 2011 +0100"
      },
      "message": "sched: Constify function scope static struct sched_param usage\n\nFunction-scope statics are discouraged because they are\neasily overlooked and can cause subtle bugs/races due to\ntheir global (non-SMP safe) nature.\n\nLinus noticed that we did this for sched_param - at minimum\nmake the const.\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: Message-ID: \u003cAANLkTinotRxScOHEb0HgFgSpGPkq_6jKTv5CfvnQM\u003dee@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "27066fd484a32c80630136aa2b91c980f3198f9d",
      "tree": "78ddabdedbfd7525d13ecd62a745525843f1d0e8",
      "parents": [
        "101e5f77bf35679809586e250b6c62193d2ed179",
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 14:14:42 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 14:14:46 2011 +0100"
      },
      "message": "Merge commit \u0027v2.6.37\u0027 into sched/core\n\nMerge reason: Merge the final .37 tree.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f32e9b1f812fd6c00cc85a127583fefbdedaedc",
      "tree": "c0e1d3e1d90758d2f4f3f8cad6beea316d68b5a0",
      "parents": [
        "90a8a73c06cc32b609a880d48449d7083327e11a"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Wed Dec 22 10:27:53 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 22 10:27:53 2010 +0100"
      },
      "message": "kthread_work: make lockdep happy\n\nspinlock in kthread_worker and wait_queue_head in kthread_work both\nshould be lockdep sensible, so change the interface to make it\nsuiltable for CONFIG_LOCKDEP.\n\ntj: comment update\n\nReported-by: Nicolas \u003cnicolas.mailhot@laposte.net\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Andy Walls \u003cawalls@md.metrocast.net\u003e\nTested-by: Andy Walls \u003cawalls@md.metrocast.net\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "fe7de49f9d4e53f24ec9ef762a503f70b562341c",
      "tree": "766b012c7199f12625bc909748175d9e37b0b87d",
      "parents": [
        "d4429f608abde89e8bc1e24b43cd503feb95c496"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Oct 20 16:01:12 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 23 17:56:48 2010 +0200"
      },
      "message": "sched: Make sched_param argument static in sched_setscheduler() callers\n\nAndrew Morton pointed out almost all sched_setscheduler() callers are\nusing fixed parameters and can be converted to static.  It reduces runtime\nmemory use a little.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82805ab77d25643f579d90397dcd34f05d1b750a",
      "tree": "4e5fd250d8625e032250fd02101c3b6ce595cbbf",
      "parents": [
        "7bc465605ffa90b281d6b774fcb13911636a6d45"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:09 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:09 2010 +0200"
      },
      "message": "kthread: implement kthread_data()\n\nImplement kthread_data() which takes @task pointing to a kthread and\nreturns @data specified when creating the kthread.  The caller is\nresponsible for ensuring the validity of @task when calling this\nfunction.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "b56c0d8937e665a27d90517ee7a746d0aa05af46",
      "tree": "fefff33fe3bbebfc8d60ba581e5343dc6cb56a70",
      "parents": [
        "53c5f5ba42c194cb13dd3083ed425f2c5b1ec439"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:09 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:09 2010 +0200"
      },
      "message": "kthread: implement kthread_worker\n\nImplement simple work processor for kthread.  This is to ease using\nkthread.  Single thread workqueue used to be used for things like this\nbut workqueue won\u0027t guarantee fixed kthread association anymore to\nenable worker sharing.\n\nThis can be used in cases where specific kthread association is\nnecessary, for example, when it should have RT priority or be assigned\nto certain cgroup.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ab116c9349ef52d6fbd2e2917a53f13194b048e",
      "tree": "636a6cf02d5ca47c6da5d4935b07ddf08666a09c",
      "parents": [
        "5574169613b40b85d6f4c67208fa4846b897a0a1"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Mar 23 13:35:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:21 2010 -0700"
      },
      "message": "cpuset: fix the problem that cpuset_mem_spread_node() returns an offline node\n\ncpuset_mem_spread_node() returns an offline node, and causes an oops.\n\nThis patch fixes it by initializing task-\u003emems_allowed to\nnode_states[N_HIGH_MEMORY], and updating task-\u003emems_allowed when doing\nmemory hotplug.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nTested-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "301ba0457f1ed853fc08e57785f8c87fe7e49c68",
      "tree": "89efe65795283b5a1c2e791809108467477df22b",
      "parents": [
        "fa535a77bd3fa32b9215ba375d6a202fe73e1dd6"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Feb 09 15:07:40 2010 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 09 11:47:39 2010 +0100"
      },
      "message": "kthread, sched: Remove reference to kthread_create_on_cpu\n\nkthread_create_on_cpu doesn\u0027t exist so update a comment in\nkthread.c to reflect this.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100209040740.GB3702@kryten\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "881232b70b195768a71cd74ff4b4e8ab9502997b",
      "tree": "aeafe0a28a7163af445e4f603ab1075c3608c375",
      "parents": [
        "5da9a0fb673a0ea0a093862f95f6b89b3390c31e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 16 18:04:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 19:01:57 2009 +0100"
      },
      "message": "sched: Move kthread_bind() back to kthread.c\n\nSince kthread_bind() lost its dependencies on sched.c, move it\nback where it came from.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091216170518.039524041@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b84ff7d6f1b7f8a43414e74d972ec4c8f3361db4",
      "tree": "7e8db08b8dd7d28780f3d08466928c907e5e0440",
      "parents": [
        "6b9de613ae9c79b637e070136585dde029578065"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Oct 29 11:48:30 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 03 07:25:00 2009 +0100"
      },
      "message": "sched: Fix kthread_bind() by moving the body of kthread_bind() to sched.c\n\nEric Paris reported that commit\nf685ceacab07d3f6c236f04803e2f2f0dbcc5afb causes boot time\nPREEMPT_DEBUG complaints.\n\n [    4.590699] BUG: using smp_processor_id() in preemptible [00000000] code: rmmod/1314\n [    4.593043] caller is task_hot+0x86/0xd0\n\nSince kthread_bind() messes with scheduler internals, move the\nbody to sched.c, and lock the runqueue.\n\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nTested-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1256813310.7574.3.camel@marge.simson.net\u003e\n[ v2: fix !SMP build and clean up ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "61cbe54d9479ad98283b2dda686deae4c34b2d59",
      "tree": "e7d4766daaf2895aab96b035a973b67439baecf2",
      "parents": [
        "172e082a9111ea504ee34cbba26284a5ebdc53a7"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Wed Sep 09 15:41:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 09 17:30:06 2009 +0200"
      },
      "message": "sched: Keep kthreads at default priority\n\nRemoves kthread/workqueue priority boost, they increase worst-case\ndesktop latencies.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1252486344.28645.18.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ae260270c90643156cda73427aa1f04c923e627",
      "tree": "d69e5b2e0863a34fe9ba0a7a10c24c3d42276d51",
      "parents": [
        "6560dc160f3a96b8f1f43e2c6b51aa6eb9898b90"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jun 19 02:51:13 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 27 12:15:46 2009 -0700"
      },
      "message": "update the comment in kthread_stop()\n\nCommit 63706172f332fd3f6e7458ebfb35fa6de9c21dc5 (\"kthreads: rework\nkthread_stop()\") removed the limitation that the thread function mysr\nnot call do_exit() itself, but forgot to update the comment.\n\nSince that commit it is OK to use kthread_stop() even if kthread can\nexit itself.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63706172f332fd3f6e7458ebfb35fa6de9c21dc5",
      "tree": "5548f226aa3ba7cca565a2b9d9574a5b6b1a9446",
      "parents": [
        "cdd140bdd6c7bc6395f08877a73c39941501af93"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:54 2009 -0700"
      },
      "message": "kthreads: rework kthread_stop()\n\nBased on Eric\u0027s patch which in turn was based on my patch.\n\nkthread_stop() has the nasty problems:\n\n- it runs unpredictably long with the global semaphore held.\n\n- it deadlocks if kthread itself does kthread_stop() before it obeys\n  the kthread_should_stop() request.\n\n- it is not useable if kthread exits on its own, see for example the\n  ugly \"wait_to_die:\" hack in migration_thread()\n\n- it is not possible to just tell kthread it should stop, we must always\n  wait for its exit.\n\nWith this patch kthread() allocates all neccesary data (struct kthread) on\nits own stack, globals kthread_stop_xxx are deleted.  -\u003evfork_done is used\nas a pointer into \"struct kthread\", this means kthread_stop() can easily\nwait for kthread\u0027s exit.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Vitaliy Gusev \u003cvgusev@openvz.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdd140bdd6c7bc6395f08877a73c39941501af93",
      "tree": "48664b2790fb2b5152bd67bf70fb3405e1ef6e8b",
      "parents": [
        "e1eb1ebcca871673c76caf63335c4237680040f1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 16:27:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:53 2009 -0700"
      },
      "message": "kthreads: simplify the startup synchronization\n\nWe use two completions two create the kernel thread, this is a bit ugly.\nkthread() wakes up create_kthread() via -\u003estarted, then create_kthread()\nwakes up the caller kthread_create() via -\u003edone.  But kthread() does not\nneed to wait for kthread(), it can just return.  Instead kthread() itself\ncan wake up the caller of kthread_create().\n\nKill kthread_create_info-\u003estarted, -\u003edone is enough.  This improves the\nscalability a bit and sijmplifies the code.\n\nThe only problem if kernel_thread() fails, in that case create_kthread()\nmust do complete(\u0026create-\u003edone).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Vitaliy Gusev \u003cvgusev@openvz.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58568d2a8215cb6f55caf2332017d7bdff954e1c",
      "tree": "ffcdee457494ac78d6550b0aeac86536ca152e7b",
      "parents": [
        "950592f7b991f267d707d372b90f508bbe72acbc"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Jun 16 15:31:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "cpuset,mm: update tasks\u0027 mems_allowed in time\n\nFix allocating page cache/slab object on the unallowed node when memory\nspread is set by updating tasks\u0027 mems_allowed after its cpuset\u0027s mems is\nchanged.\n\nIn order to update tasks\u0027 mems_allowed in time, we must modify the code of\nmemory policy.  Because the memory policy is applied in the process\u0027s\ncontext originally.  After applying this patch, one task directly\nmanipulates anothers mems_allowed, and we use alloc_lock in the\ntask_struct to protect mems_allowed and memory policy of the task.\n\nBut in the fast path, we didn\u0027t use lock to protect them, because adding a\nlock may lead to performance regression.  But if we don\u0027t add a lock,the\ntask might see no nodes when changing cpuset\u0027s mems_allowed to some\nnon-overlapping set.  In order to avoid it, we set all new allowed nodes,\nthen clear newly disallowed ones.\n\n[lee.schermerhorn@hp.com:\n  The rework of mpol_new() to extract the adjusting of the node mask to\n  apply cpuset and mpol flags \"context\" breaks set_mempolicy() and mbind()\n  with MPOL_PREFERRED and a NULL nodemask--i.e., explicit local\n  allocation.  Fix this by adding the check for MPOL_PREFERRED and empty\n  node mask to mpol_new_mpolicy().\n\n  Remove the now unneeded \u0027nodes \u003d NULL\u0027 from mpol_new().\n\n  Note that mpol_new_mempolicy() is always called with a non-NULL\n  \u0027nodes\u0027 parameter now that it has been removed from mpol_new().\n  Therefore, we don\u0027t need to test nodes for NULL before testing it for\n  \u0027empty\u0027.  However, just to be extra paranoid, add a VM_BUG_ON() to\n  verify this assumption.]\n[lee.schermerhorn@hp.com:\n\n  I don\u0027t think the function name \u0027mpol_new_mempolicy\u0027 is descriptive\n  enough to differentiate it from mpol_new().\n\n  This function applies cpuset set context, usually constraining nodes\n  to those allowed by the cpuset.  However, when the \u0027RELATIVE_NODES flag\n  is set, it also translates the nodes.  So I settled on\n  \u0027mpol_set_nodemask()\u0027, because the comment block for mpol_new() mentions\n  that we need to call this function to \"set nodes\".\n\n  Some additional minor line length, whitespace and typo cleanup.]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad8d75fff811a6a230f7f43b05a6483099349533",
      "tree": "764f75c0785b29067b141719b6e8000f005da7fd",
      "parents": [
        "ecda8ae02a08ef065ff387f5cb2a2d4999da2408"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 14 19:39:12 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 22:05:43 2009 -0400"
      },
      "message": "tracing/events: move trace point headers into include/trace/events\n\nImpact: clean up\n\nCreate a sub directory in include/trace called events to keep the\ntrace point headers in their own separate directory. Only headers that\ndeclare trace points should be defined in this directory.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a8d154b009168337494fbf345671bab74d3e4b8b",
      "tree": "4097612e1a5cc8bf7658542f7d0f51b815113eaf",
      "parents": [
        "ea20d9293ce423a39717ed4375393129a2e701f9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 10 09:36:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:57:28 2009 -0400"
      },
      "message": "tracing: create automated trace defines\n\nThis patch lowers the number of places a developer must modify to add\nnew tracepoints. The current method to add a new tracepoint\ninto an existing system is to write the trace point macro in the\ntrace header with one of the macros TRACE_EVENT, TRACE_FORMAT or\nDECLARE_TRACE, then they must add the same named item into the C file\nwith the macro DEFINE_TRACE(name) and then add the trace point.\n\nThis change cuts out the needing to add the DEFINE_TRACE(name).\nEvery file that uses the tracepoint must still include the trace/\u003ctype\u003e.h\nfile, but the one C file must also add a define before the including\nof that file.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/mytrace.h\u003e\n\nThis will cause the trace/mytrace.h file to also produce the C code\nnecessary to implement the trace point.\n\nNote, if more than one trace/\u003ctype\u003e.h is used to create the C code\nit is best to list them all together.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/foo.h\u003e\n #include \u003ctrace/bar.h\u003e\n #include \u003ctrace/fido.h\u003e\n\nThanks to Mathieu Desnoyers and Christoph Hellwig for coming up with\nthe cleaner solution of the define above the includes over my first\ndesign to have the C code include a \"special\" header.\n\nThis patch converts sched, irq and lockdep and skb to use this new\nmethod.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1c99315bb36b5d776210546d438ca928dc9b1f22",
      "tree": "aa43f3ffe76fd1aed66ed9e4a433c5f310fd7e74",
      "parents": [
        "3217ab97f14c5c8f9f975ed8c40c351164b0b10e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 09 09:50:36 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Apr 09 09:50:37 2009 +0930"
      },
      "message": "kthread: move sched-realeted initialization from kthreadd context\n\nkthreadd is the single thread which implements ths \"create\" request, move\nsched_setscheduler/etc from create_kthread() to kthread_create() to\nimprove the scalability.\n\nWe should be careful with sched_setscheduler(), use _nochek helper.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Vitaliy Gusev \u003cvgusev@openvz.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3217ab97f14c5c8f9f975ed8c40c351164b0b10e",
      "tree": "3bb4b32e9a1e5b96915fbce57184d55f74e43fe9",
      "parents": [
        "7b85a88ca7760d6d5f34bdaa793c71d921a3e853"
      ],
      "author": {
        "name": "Vitaliy Gusev",
        "email": "vgusev@openvz.org",
        "time": "Thu Apr 09 09:50:35 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Apr 09 09:50:36 2009 +0930"
      },
      "message": "kthread: Don\u0027t looking for a task in create_kthread() #2\n\nRemove the unnecessary find_task_by_pid_ns(). kthread() can just\nuse \"current\" to get the same result.\n\nSigned-off-by: Vitaliy Gusev \u003cvgusev@openvz.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1a2142afa5646ad5af44bbe1febaa5e0b7e71156",
      "tree": "1c76670c82adb46a7726421ad0fcba2994758964",
      "parents": [
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:10 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:11 2009 +1030"
      },
      "message": "cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n\nImpact: cleanup\n\n(Thanks to Al Viro for reminding me of this, via Ingo)\n\nCPU_MASK_ALL is the (deprecated) \"all bits set\" cpumask, defined as so:\n\n\t#define CPU_MASK_ALL (cpumask_t) { { ... } }\n\nTaking the address of such a temporary is questionable at best,\nunfortunately 321a8e9d (cpumask: add CPU_MASK_ALL_PTR macro) added\nCPU_MASK_ALL_PTR:\n\n\t#define CPU_MASK_ALL_PTR (\u0026CPU_MASK_ALL)\n\nWhich formalizes this practice.  One day gcc could bite us over this\nusage (though we seem to have gotten away with it so far).\n\nSo replace everywhere which used \u0026CPU_MASK_ALL or CPU_MASK_ALL_PTR\nwith the modern \"cpu_all_mask\" (a real const struct cpumask *).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "7e066fb870fcd1025ec3ba7bbde5d541094f4ce1",
      "tree": "52acda06de25c029b9834110d7bf6b4abc50353b",
      "parents": [
        "32f85742778dfc2c74975cf0b9f5bdb13470cb32"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:47 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:36 2008 +0100"
      },
      "message": "tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()\n\nImpact: API *CHANGE*. Must update all tracepoint users.\n\nAdd DEFINE_TRACE() to tracepoints to let them declare the tracepoint\nstructure in a single spot for all the kernel. It helps reducing memory\nconsumption, especially when declaring a lot of tracepoints, e.g. for\nkmalloc tracing.\n\n*API CHANGE WARNING*: now, DECLARE_TRACE() must be used in headers for\ntracepoint declarations rather than DEFINE_TRACE(). This is the sane way\nto do it. The name previously used was misleading.\n\nUpdates scheduler instrumentation to follow this API change.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "92b29b86fe2e183d44eb467e5e74a5f718ef2e43",
      "tree": "1bac8a1aa11d47322b66d10ec3a370016d843d06",
      "parents": [
        "b9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0",
        "98d9c66ab07471006fd7910cb16453581c41a3e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (131 commits)\n  tracing/fastboot: improve help text\n  tracing/stacktrace: improve help text\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix bootgraph.pl initcall name regexp\n  tracing/fastboot: fix issues and improve output of bootgraph.pl\n  tracepoints: synchronize unregister static inline\n  tracepoints: tracepoint_synchronize_unregister()\n  ftrace: make ftrace_test_p6nop disassembler-friendly\n  markers: fix synchronize marker unregister static inline\n  tracing/fastboot: add better resolution to initcall debug/tracing\n  trace: add build-time check to avoid overrunning hex buffer\n  ftrace: fix hex output mode of ftrace\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix printk format typo in boot tracer\n  ftrace: return an error when setting a nonexistent tracer\n  ftrace: make some tracers reentrant\n  ring-buffer: make reentrant\n  ring-buffer: move page indexes into page headers\n  tracing/fastboot: only trace non-module initcalls\n  ftrace: move pc counter in irqtrace\n  ...\n\nManually fix conflicts:\n - init/main.c: initcall tracing\n - kernel/module.c: verbose level vs tracepoints\n - scripts/bootgraph.pl: fallout from cherry-picking commits.\n"
    },
    {
      "commit": "293adee601bcd4cdb5076a9bda187137de17e96e",
      "tree": "d7a67f8064f4db0f3b86855f3356c4037eff5e67",
      "parents": [
        "656eb2cd5da153762f2e8419ca117ce12ef522c3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 18 20:28:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:39 2008 -0700"
      },
      "message": "kthread_bind: use wait_task_inactive(TASK_UNINTERRUPTIBLE)\n\nNow that wait_task_inactive(task, state) checks task-\u003estate \u003d\u003d state,\nwe can simplify the code and make this debugging check more robust.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: 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": "0a16b6075843325dc402edf80c1662838b929aff",
      "tree": "124e49d8c0196f3c6eb7aa09a7c4c3c3157fff7a",
      "parents": [
        "4a0897526bbc5c6ac0df80b16b8c60339e717ae2"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Jul 18 12:16:17 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:30:52 2008 +0200"
      },
      "message": "tracing, sched: LTTng instrumentation - scheduler\n\nInstrument the scheduler activity (sched_switch, migration, wakeups,\nwait for a task, signal delivery) and process/thread\ncreation/destruction (fork, exit, kthread stop). Actually, kthread\ncreation is not instrumented in this patch because it is architecture\ndependent. It allows to connect tracers such as ftrace which detects\nscheduling latencies, good/bad scheduler decisions. Tools like LTTng can\nexport this scheduler information along with instrumentation of the rest\nof the kernel activity to perform post-mortem analysis on the scheduler\nactivity.\n\nAbout the performance impact of tracepoints (which is comparable to\nmarkers), even without immediate values optimizations, tests done by\nHideo Aoki on ia64 show no regression. His test case was using hackbench\non a kernel where scheduler instrumentation (about 5 events in code\nscheduler code) was added. See the \"Tracepoints\" patch header for\nperformance result detail.\n\nChangelog :\n\n- Change instrumentation location and parameter to match ftrace\n  instrumentation, previously done with kernel markers.\n\n[ mingo@elte.hu: conflict resolutions ]\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: \u0027Peter Zijlstra\u0027 \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85ba2d862e521375a8ee01526c5c46b1f24bb4af",
      "tree": "f098555cb580b2864f145aa845b574f07d2cf694",
      "parents": [
        "1f5a4ad97a0e7b663d527ecc02aabe203d000d91"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: wait_task_inactive\n\nThis extends wait_task_inactive() with a new argument so it can be used in\na \"soft\" mode where it will check for the task changing state unexpectedly\nand back off.  There is no change to existing callers.  This lays the\ngroundwork to allow robust, noninvasive tracing that can try to sample a\nblocked thread but back off safely if it wakes up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "8df185a95c9b84fc0c3c02224e64fdc5b83bae34",
      "tree": "dd53306fbec26ca7da24494b2844622363dc8bb3",
      "parents": [
        "8b95d9172be7146c87e7a998310ce2919c851adc"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Jul 08 15:55:48 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 18:46:58 2008 +0200"
      },
      "message": "kthread: reduce stack pressure in create_kthread and kthreadd\n\n  * Replace:\n\n  \tset_cpus_allowed(..., CPU_MASK_ALL)\n\n    with:\n\n  \tset_cpus_allowed_ptr(..., CPU_MASK_ALL_PTR)\n\n    to remove excessive stack requirements when NR_CPUS\u003d4096.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ebb12db51f6c13b30752fcf506baad4c617b153c",
      "tree": "55c08b82463ffd5b78a8bc4a4748261b02391593",
      "parents": [
        "d20a4dca47d2cd027ed58a13f91b424affd1f449"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jun 11 22:04:29 2008 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed Jul 16 23:27:03 2008 +0200"
      },
      "message": "Freezer: Introduce PF_FREEZER_NOSIG\n\nThe freezer currently attempts to distinguish kernel threads from\nuser space tasks by checking if their mm pointer is unset and it\ndoes not send fake signals to kernel threads.  However, there are\nkernel threads, mostly related to networking, that behave like\nuser space tasks and may want to be sent a fake signal to be frozen.\n\nIntroduce the new process flag PF_FREEZER_NOSIG that will be set\nby default for all kernel threads and make the freezer only send\nfake signals to the tasks having PF_FREEZER_NOSIG unset.  Provide\nthe set_freezable_with_signal() function to be called by the kernel\nthreads that want to be sent a fake signal for freezing.\n\nThis patch should not change the freezer\u0027s observable behavior.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "9985b0bab332289f14837eff3c6e0bcc658b58f7",
      "tree": "8c4bcbc4348c473b14644dc4d371a45c0dabda53",
      "parents": [
        "7def2be1dc679984f4c4fb3ef19a8a081b2454ec"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Jun 05 12:57:11 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 10 12:26:16 2008 +0200"
      },
      "message": "sched: prevent bound kthreads from changing cpus_allowed\n\nKthreads that have called kthread_bind() are bound to specific cpus, so\nother tasks should not be able to change their cpus_allowed from under\nthem.  Otherwise, it is possible to move kthreads, such as the migration\nor software watchdog threads, so they are not allowed access to the cpu\nthey work on.\n\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\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": "cbd9b67bd3883dff0ef4b8ec9229d315a9ba38f0",
      "tree": "38a59233e8ec529980741dac371dcb9587d0a098",
      "parents": [
        "a2d416dcc92e576d0e339efd641bd3d8ee2bfb4d"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Tue Apr 29 00:59:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:04 2008 -0700"
      },
      "message": "kthread: call wake_up_process() without the lock being held\n\nFrom the POV of synchronization, there should be no need to call\nwake_up_process() with the \u0027kthread_create_lock\u0027 being held.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\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": "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": "9f0e738f492522a2f70ad9a2a0287e4e966c633a",
      "tree": "e586f800c807ab551754e0a978179b7a2f7f021e",
      "parents": [
        "0297b80339d545045490716fa8591b215fdd9458"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Tue Feb 12 13:30:05 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:58 2008 +0200"
      },
      "message": "sched: fix cpus_allowed settings\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a6550207538619bc9b90bac2e1d5e54902a432ad",
      "tree": "cc9bb9b5153810b544c2afcc7721353ff5ce957d",
      "parents": [
        "5a6483feb0c5193519625d0ea8c4254364d423cc"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Feb 26 10:47:18 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:17:04 2008 -0400"
      },
      "message": "kernel: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "4f05b98d54b140ed3c5851d5d5156e9918c6305d",
      "tree": "f12f09c1e54e72adf4724b94733cb5b08e0879f7",
      "parents": [
        "1ad82fd547c716f96e544b477e0bdbfa2d647529"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "mschmidt@redhat.com",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:33 2008 +0100"
      },
      "message": "sched: fix, always create kernel threads with normal priority\n\nEnsure that the kernel threads are created with the usual nice level\nand affinity even if kthreadd\u0027s properties were changed from the\ndefault by root.\n\nSigned-off-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e804a4a4dd596d853f6d6f814fbdcf97b8efcdea",
      "tree": "8a19854d3ab326d7157065a72528db2bf91bce21",
      "parents": [
        "bbe06f6bf7e764a9eb0e3cdcec2b12c743f35757"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Tue Jul 31 00:39:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:42 2007 -0700"
      },
      "message": "kthread: silence bogus section mismatch warning\n\nWARNING: kernel/built-in.o(.text+0x16910): Section mismatch:\nreference to .init.text: (between \u0027kthreadd\u0027 and \u0027init_waitqueue_head\u0027)\n\ncomes because kernel/kthread.c:kthreadd() is not __init but calls\nkthreadd_setup() which is __init. But this is ok, because kthreadd_setup()\nis only ever called at init time, and then kthreadd() proceeds into its\n\"for (;;)\" loop. We could mark kthreadd __init_refok, but kthreadd_setup()\nwith just one callsite and 4 lines in it (it\u0027s been that small since\n10ab825bdef8df51) doesn\u0027t need to be a separate function at all -- so let\u0027s\njust move those four lines at beginning of kthreadd() itself.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98011f569e2ae1e4ae394f6e23faa16676d50de4",
      "tree": "6cde069a3fd943c36d4029b21d8b7ad4c24811f6",
      "parents": [
        "140d5a49046b6d73dce4a4229e88c000a99ee126"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Sun Jul 15 23:38:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "mm: fix improper .init-type section references\n\n.. which modpost started warning about.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a076e4bca2fdabb9e45d86722cc72c0944da5f94",
      "tree": "b11684f4b39dabb84584773f1b7811b5207e7f01",
      "parents": [
        "49b12d4f5e274517b8bc032d507abf31cc2f4150"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 23 13:57:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:11 2007 -0700"
      },
      "message": "freezer: fix kthread_create vs freezer theoretical race\n\nkthread() sleeps in TASK_INTERRUPTIBLE state waiting for the first wakeup.  In\ntheory, this wakeup may come from freeze_process()-\u003esignal_wake_up(), so the\ntask can disappear even before kthread_create() sets its -\u003ecomm.\n\nChange kthread() to use TASK_UNINTERRUPTIBLE.\n\n[akpm@linux-foundation.org: s/BUG_ON/WARN_ON+recover]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.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": "10ab825bdef8df510f99c703a5a2d9b13a4e31a5",
      "tree": "e4db81f26c03ba5a5bff43ed44646a4ed4509d67",
      "parents": [
        "5de18d169739293e27e0cf9acfc75a2d2f4aa572"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:53 2007 -0700"
      },
      "message": "change kernel threads to ignore signals instead of blocking them\n\nCurrently kernel threads use sigprocmask(SIG_BLOCK) to protect against\nsignals.  This doesn\u0027t prevent the signal delivery, this only blocks\nsignal_wake_up().  Every \"killall -33 kthreadd\" means a \"struct siginfo\"\nleak.\n\nChange kthreadd_setup() to set all handlers to SIG_IGN instead of blocking\nthem (make a new helper ignore_signals() for that).  If the kernel thread\nneeds some signal, it should use allow_signal() anyway, and in that case it\nshould not use CLONE_SIGHAND.\n\nNote that we can\u0027t change daemonize() (should die!) in the same way,\nbecause it can be used along with CLONE_SIGHAND.  This means that\nallow_signal() still should unblock the signal to work correctly with\ndaemonize()ed threads.\n\nHowever, disallow_signal() doesn\u0027t block the signal any longer but ignores\nit.\n\nNOTE: with or without this patch the kernel threads are not protected from\nhandle_stop_signal(), this seems harmless, but not good.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"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": "73c279927f89561ecb45b2dfdf9314bafcfd9f67",
      "tree": "2186e28c92c6f8229ea20eb9856714186bf77a4c",
      "parents": [
        "c93465181fed0f8f5942a41108943dadea0aa345"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 09 02:34:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:53 2007 -0700"
      },
      "message": "kthread: don\u0027t depend on work queues\n\nCurrently there is a circular reference between work queue initialization\nand kthread initialization.  This prevents the kthread infrastructure from\ninitializing until after work queues have been initialized.\n\nWe want the properties of tasks created with kthread_create to be as close\nas possible to the init_task and to not be contaminated by user processes.\nThe later we start our kthreadd that creates these tasks the harder it is\nto avoid contamination from user processes and the more of a mess we have\nto clean up because the defaults have changed on us.\n\nSo this patch modifies the kthread support to not use work queues but to\ninstead use a simple list of structures, and to have kthreadd start from\ninit_task immediately after our kernel thread that execs /sbin/init.\n\nBy being a true child of init_task we only have to change those process\nsettings that we want to have different from init_task, such as our process\nname, the cpus that are allowed, blocking all signals and setting SIGCHLD\nto SIG_IGN so that all of our children are reaped automatically.\n\nBy being a true child of init_task we also naturally get our ppid set to 0\nand do not wind up as a child of PID \u003d\u003d 1.  Ensuring that tasks generated\nby kthread_create will not slow down the functioning of the wait family of\nfunctions.\n\n[akpm@linux-foundation.org: use interruptible sleeps]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.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": "72fd4a35a824331d7a0f4168d7576502d95d34b3",
      "tree": "be27880bc36b7f62e8044a88b8744a35c5317714",
      "parents": [
        "262086cf5b5343c2b81c97b1c606058e921859df"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 10 01:45:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Numerous fixes to kernel-doc info in source files.\n\nA variety of (mostly) innocuous fixes to the embedded kernel-doc content in\nsource files, including:\n\n  * make multi-line initial descriptions single line\n  * denote some function names, constants and structs as such\n  * change erroneous opening \u0027/*\u0027 to \u0027/**\u0027 in a few places\n  * reword some text for clarity\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "52e92e5788139921352213fa6faf6e30ff1f2f5a",
      "tree": "0d3975df8fc42058b30745bc3fe47b6af2993462",
      "parents": [
        "098c5eea03de4707019a205140296893252b4130"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jul 14 00:24:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:52 2006 -0700"
      },
      "message": "[PATCH] remove kernel/kthread.c:kthread_stop_sem()\n\nRemove the now-unneeded kthread_stop_sem().\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9e37bd301ee130598fa1406c1281caa159473bf8",
      "tree": "c52de7a4eea72353e95c26266ad692a0cc0a8546",
      "parents": [
        "b0ef371e3f9fa3b2571058be366a6780827ec0bf"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sun Jun 25 05:49:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:24 2006 -0700"
      },
      "message": "[PATCH] kthread: move kernel-doc and put it into DocBook\n\nMove kthread API kernel-doc from kthread.h to kthread.c \u0026 fix it.\nAdd kthread API to kernel-api DocBook.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "05eeae208d08a05a6980cf2ff61f02843c0955fd",
      "tree": "be6c6c4e16cfac07edf437a1f74ef027ada8ccc7",
      "parents": [
        "c1f5a1944657ba6abe375e3bb2a3238a46849f70"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:07:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:57 2006 -0800"
      },
      "message": "[PATCH] find_task_by_pid() needs tasklist_lock\n\nA couple of places are forgetting to take it.\n\nThe kswapd case is probably unimportant.  keventd_create_kthread() was racy.\n\nThe whole thing is a bit flakey: you start a kernel thread, get its pid from\nkernel_thread() then look up its task_struct.\n\na) It assumes that pid recycling takes a \"long\" time.\n\nb) We get a task_struct but no reference was taken on it.  The owner of the\n   kswapd and kthread task_struct*\u0027s must assume that the new thread won\u0027t\n   exit unexpectedly.  Because if it does, they\u0027re left holding dead memory\n   and any attempt to control or stop that task will crash.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97d1f15b7ef52c1e9c28dc48b454024bb53a5fd2",
      "tree": "7bdb928096eec577e75897351f639d3f94441c87",
      "parents": [
        "e723ccd805857a46d3b63fbd20edea8579c6c541"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:10 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: kernel/\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61e1a9ea4b425eb8c3b4965c35fe953bd881728f",
      "tree": "2dcf017eedd4a72698593c878aff3ae31e3a6b09",
      "parents": [
        "83521d3eb8dd2dfb04dd78b4733e9766f61bb47e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sun Oct 30 15:01:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] Add kthread_stop_sem()\n\nEnhance the kthread API by adding kthread_stop_sem, for use in stopping\nthreads that spend their idle time waiting on a semaphore.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d59dd4620fb8d6422555a9e2b82a707718e68327",
      "tree": "78205657d24efcaa3f8314064951ac3814ed95a7",
      "parents": [
        "0d8d4d42f2d00eb65262b49f4edd4cf7ef4eb6fc"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "message": "[PATCH] use smp_mb/wmb/rmb where possible\n\nReplace a number of memory barriers with smp_ variants.  This means we won\u0027t\ntake the unnecessary hit on UP machines.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
