)]}'
{
  "log": [
    {
      "commit": "34ec12349c8a9505adc59d72f92b4595bc2483ff",
      "tree": "2307c825f1a0d8bf9976d5fadcc8516ad5829eac",
      "parents": [
        "115085ea0794c0f339be8f9d25505c7f9861d824"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats: cleanup -\u003esignal-\u003estats allocation\n\nAllocate -\u003esignal-\u003estats on demand in taskstats_exit(), this allows us to\nremove taskstats_tgid_alloc() (the last non-trivial inline) from taskstat\u0027s\npublic interface.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fec1d0115240593b39898289e6e1413ea6e44a84",
      "tree": "9e0c5506118a5fb84d1b21195323dd1c3d7588ea",
      "parents": [
        "736c4b8572ac24b1e6fd58d00872305a120ac700"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Dec 06 20:36:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:33 2006 -0800"
      },
      "message": "[PATCH] Disable CLONE_CHILD_CLEARTID for abnormal exit\n\nThe CLONE_CHILD_CLEARTID flag is used by NPTL to have its threads\ncommunicate via memory/futex when they exit, so pthread_join can\nsynchronize using a simple futex wait.  The word of user memory where NPTL\nstores a thread\u0027s own TID is what it passes; this gets reset to zero at\nthread exit.\n\nIt is not desireable to touch this user memory when threads are dying due\nto a fatal signal.  A core dump is more usefully representative of the\ndying program state if the threads live at the time of the crash have their\nNPTL data structures unperturbed.  The userland expectation of\nCLONE_CHILD_CLEARTID has only ever been that it works for a thread making\nan _exit system call.\n\nThis problem was identified by Ernie Petrides \u003cpetrides@redhat.com\u003e.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ernie Petrides \u003cpetrides@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7602bdf2fd14a40dd9b104e516fdc05e1bd17952",
      "tree": "5ca703b0a95f6f2e6d977c816532b9085f453974",
      "parents": [
        "098fe651f7e9d759d1117c78c1a642b9b3945922"
      ],
      "author": {
        "name": "Ashwin Chaugule",
        "email": "ashwin.chaugule@celunite.com",
        "time": "Wed Dec 06 20:31:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] new scheme to preempt swap token\n\nThe new swap token patches replace the current token traversal algo.  The old\nalgo had a crude timeout parameter that was used to handover the token from\none task to another.  This algo, transfers the token to the tasks that are in\nneed of the token.  The urgency for the token is based on the number of times\na task is required to swap-in pages.  Accordingly, the priority of a task is\nincremented if it has been badly affected due to swap-outs.  To ensure that\nthe token doesnt bounce around rapidly, the token holders are given a priority\nboost.  The priority of tasks is also decremented, if their rate of swap-in\u0027s\nkeeps reducing.  This way, the condition to check whether to pre-empt the swap\ntoken, is a matter of comparing two task\u0027s priority fields.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Ashwin Chaugule \u003cashwin.chaugule@celunite.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "753ca4f312a4b26940e4731b4fa5dbbbbcc77e97",
      "tree": "bf0ca9aa882e50b681ec72e43998542472752ef6",
      "parents": [
        "a1b26c32af51d0fd82754bc06b495dd03c2f2d58"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Sat Nov 25 11:09:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Nov 25 13:28:34 2006 -0800"
      },
      "message": "[PATCH] fix copy_process() error check\n\nThe return value of copy_process() should be checked by IS_ERR().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a3a04ac386f44175b6a4142eaeab3d4170a57f3",
      "tree": "b07590ec50da7d079b1c2852ccc79cbcd8fb2cce",
      "parents": [
        "dc791d479802a784836a236d4a77a5325be545c4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Nov 14 15:20:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Nov 14 15:20:51 2006 -0800"
      },
      "message": "Revert \"[PATCH] fix Data Acess error in dup_fd\"\n\nThis reverts commit 0130b0b32ee53dc7add773fcea984f6a26ef1da3.\n\nSergey Vlasov points out (and Vadim Lobanov concurs) that the bug it was\nsupposed to fix must be some unrelated memory corruption, and the \"fix\"\nactually causes more problems:\n\n  \"However, the new code does not look safe in all cases.  If some other\n   task has opened more files while dup_fd() released oldf-\u003efile_lock, the\n   new code will update open_files to the new larger value.  But newf was\n   allocated with the old smaller value of open_files, therefore subsequent\n   accesses to newf may try to write into unallocated memory.\"\n\nso revert it.\n\nCc: Sharyathi Nagesh \u003csharyath@in.ibm.com\u003e\nCc: Sergey Vlasov \u003cvsu@altlinux.ru\u003e\nCc: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0130b0b32ee53dc7add773fcea984f6a26ef1da3",
      "tree": "2a4920ab222bf2cfa24e0b25522478120bd51afe",
      "parents": [
        "5fd934a9a1b72c718ad5c388fd2e0fd90486cbf3"
      ],
      "author": {
        "name": "Sharyathi Nagesh",
        "email": "sharyath@in.ibm.com",
        "time": "Fri Nov 10 12:27:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 13 07:40:43 2006 -0800"
      },
      "message": "[PATCH] fix Data Acess error in dup_fd\n\nOn running the Stress Test on machine for more than 72 hours following\nerror message was observed.\n\n0:mon\u003e e\ncpu 0x0: Vector: 300 (Data Access) at [c00000007ce2f7f0]\n    pc: c000000000060d90: .dup_fd+0x240/0x39c\n    lr: c000000000060d6c: .dup_fd+0x21c/0x39c\n    sp: c00000007ce2fa70\n   msr: 800000000000b032\n   dar: ffffffff00000028\n dsisr: 40000000\n  current \u003d 0xc000000074950980\n  paca    \u003d 0xc000000000454500\n    pid   \u003d 27330, comm \u003d bash\n\n0:mon\u003e t\n[c00000007ce2fa70] c000000000060d28 .dup_fd+0x1d8/0x39c (unreliable)\n[c00000007ce2fb30] c000000000060f48 .copy_files+0x5c/0x88\n[c00000007ce2fbd0] c000000000061f5c .copy_process+0x574/0x1520\n[c00000007ce2fcd0] c000000000062f88 .do_fork+0x80/0x1c4\n[c00000007ce2fdc0] c000000000011790 .sys_clone+0x5c/0x74\n[c00000007ce2fe30] c000000000008950 .ppc_clone+0x8/0xc\n\nThe problem is because of race window.  When if(expand) block is executed in\ndup_fd unlocking of oldf-\u003efile_lock give a window for fdtable in oldf to be\nmodified.  So actual open_files in oldf may not match with open_files\nvariable.\n\nCc: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b8534d7bd89df0cd41cd47bcd6733a05ea9a691a",
      "tree": "c4650f417d7f05a9c645d6a0b1f64405ec4c8a39",
      "parents": [
        "17b02695b254aa2ef0e53df9c8e6548f86e66a9d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 28 10:38:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:54 2006 -0700"
      },
      "message": "[PATCH] taskstats: kill -\u003etaskstats_lock in favor of -\u003esiglock\n\nsignal_struct is (mostly) protected by -\u003esighand-\u003esiglock, I think we don\u0027t\nneed -\u003etaskstats_lock to protect -\u003estats.  This also allows us to simplify the\nlocking in fill_tgid().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "093a8e8aecd77b2799934996a55a6838e1e2b8f3",
      "tree": "ece87b2e194494059b2d4aaa43a094786dac1db7",
      "parents": [
        "05d5bcd60e8202e5c7b28cf61186043a4d612623"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 28 10:38:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:54 2006 -0700"
      },
      "message": "[PATCH] taskstats_tgid_free: fix usage\n\ntaskstats_tgid_free() is called on copy_process\u0027s error path. This is wrong.\n\n\tIF (clone_flags \u0026 CLONE_THREAD)\n\t\tWe should not clear -\u003esignal-\u003etaskstats, current uses it,\n\t\tit probably has a valid accumulated info.\n\tELSE\n\t\ttaskstats_tgid_init() set -\u003esignal-\u003etaskstats \u003d NULL,\n\t\tthere is nothing to free.\n\nMove the callsite to __exit_signal(). We don\u0027t need any locking, entire\nthread group is exiting, nobody should have a reference to soon to be\nreleased -\u003esignal.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bea493a031fe3337f4fe5479e8e865513828ea76",
      "tree": "e8876149b729076e0104b59f387e615dcd2e7a76",
      "parents": [
        "91b943ee4afa2037678dc1db30b89baef0e17090"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 17 00:10:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:48 2006 -0700"
      },
      "message": "[PATCH] rt-mutex: fixup rt-mutex debug code\n\nBUG: warning at kernel/rtmutex-debug.c:125/rt_mutex_debug_task_free() (Not tainted)\n [\u003cc04051e3\u003e] show_trace_log_lvl+0x58/0x16a\n [\u003cc04057f0\u003e] show_trace+0xd/0x10\n [\u003cc0405900\u003e] dump_stack+0x19/0x1b\n [\u003cc043f03d\u003e] rt_mutex_debug_task_free+0x35/0x6a\n [\u003cc04224c0\u003e] free_task+0x15/0x24\n [\u003cc042378c\u003e] copy_process+0x12bd/0x1324\n [\u003cc0423835\u003e] do_fork+0x42/0x113\n [\u003cc04021dd\u003e] sys_fork+0x19/0x1b\n [\u003cc0403fb7\u003e] syscall_call+0x7/0xb\n\nIn copy_process(), dup_task_struct() also duplicates the -\u003epi_lock,\n-\u003epi_waiters and -\u003epi_blocked_on members.  rt_mutex_debug_task_free()\ncalled from free_task() validates these members.  However free_task() can\nbe invoked before these members are reset for the new task.\n\nMove the initialization code before the first bail that can hit free_task().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73ea41302bab5e02c9e86ab15c509494a550f1db",
      "tree": "10971a839dd53a9e18d6c866c9be93517fe8de25",
      "parents": [
        "25b21cb2f6d69b0475b134e0a3e8e269137270fa"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Mon Oct 02 02:18:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:22 2006 -0700"
      },
      "message": "[PATCH] IPC namespace - utils\n\nThis patch adds basic IPC namespace functionality to\nIPC utils:\n- init_ipc_ns\n- copy/clone/unshare/free IPC ns\n- /proc preparations\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25b21cb2f6d69b0475b134e0a3e8e269137270fa",
      "tree": "cd9c3966408c0ca5903249437c35ff35961de544",
      "parents": [
        "c0b2fc316599d6cd875b6b8cafa67f03b9512b4d"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Mon Oct 02 02:18:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:22 2006 -0700"
      },
      "message": "[PATCH] IPC namespace core\n\nThis patch set allows to unshare IPCs and have a private set of IPC objects\n(sem, shm, msg) inside namespace.  Basically, it is another building block of\ncontainers functionality.\n\nThis patch implements core IPC namespace changes:\n- ipc_namespace structure\n- new config option CONFIG_IPC_NS\n- adds CLONE_NEWIPC flag\n- unshare support\n\n[clg@fr.ibm.com: small fix for unshare of ipc namespace]\n[akpm@osdl.org: build fix]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c0b2fc316599d6cd875b6b8cafa67f03b9512b4d",
      "tree": "6e03101b6692dfe3284de05a5f4fd5495d513ab3",
      "parents": [
        "071df104f808b8195c40643dcb4d060681742e29"
      ],
      "author": {
        "name": "Serge Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:22 2006 -0700"
      },
      "message": "[PATCH] uts: copy nsproxy only when needed\n\nThe nsproxy was being copied in unshare() when anything was being unshared,\neven if it was something not referenced from nsproxy.  This should end up\nin some cases with far more memory usage than necessary.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "071df104f808b8195c40643dcb4d060681742e29",
      "tree": "e5c3355e526e0182797d59c7e80062fbc2bb7d77",
      "parents": [
        "bf47fdcda65b44dbd674eeedcaa06e0aa28a5a00"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:22 2006 -0700"
      },
      "message": "[PATCH] namespaces: utsname: implement CLONE_NEWUTS flag\n\nImplement a CLONE_NEWUTS flag, and use it at clone and sys_unshare.\n\n[clg@fr.ibm.com: IPC unshare fix]\n[bunk@stusta.de: cleanup]\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1651e14e28a2d9f446018ef522882e0709a2ce4f",
      "tree": "401ff78624fdc4b445f3f95174a223acaf6a4ca0",
      "parents": [
        "0437eb594e6e5e699248f865482e61034be846d0"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:20 2006 -0700"
      },
      "message": "[PATCH] namespaces: incorporate fs namespace into nsproxy\n\nThis moves the mount namespace into the nsproxy.  The mount namespace count\nnow refers to the number of nsproxies point to it, rather than the number of\ntasks.  As a result, the unshare_namespace() function in kernel/fork.c no\nlonger checks whether it is being shared.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab516013ad9ca47f1d3a936fa81303bfbf734d52",
      "tree": "643ea9c4c3d28958cb42dd87b1856f74edd22b11",
      "parents": [
        "b1ba4ddde0cf67991d89f039365eaaeda61aa027"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:20 2006 -0700"
      },
      "message": "[PATCH] namespaces: add nsproxy\n\nThis patch adds a nsproxy structure to the task struct.  Later patches will\nmove the fs namespace pointer into this structure, and introduce a new utsname\nnamespace into the nsproxy.\n\nThe vserver and openvz functionality, then, would be implemented in large part\nby virtualizing/isolating more and more resources into namespaces, each\ncontained in the nsproxy.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f0ab5147951267134612570604cf8341901a80c",
      "tree": "d394edb3ab69396128e7971136f05fd71d863ece",
      "parents": [
        "9acc1853519a0473620d424105f9d49ea5b4e62e"
      ],
      "author": {
        "name": "Jay Lan",
        "email": "jlan@engr.sgi.com",
        "time": "Sat Sep 30 23:28:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:29 2006 -0700"
      },
      "message": "[PATCH] csa: convert CONFIG tag for extended accounting routines\n\nThere were a few accounting data/macros that are used in CSA but are #ifdef\u0027ed\ninside CONFIG_BSD_PROCESS_ACCT.  This patch is to change those ifdef\u0027s from\nCONFIG_BSD_PROCESS_ACCT to CONFIG_TASK_XACCT.  A few defines are moved from\nkernel/acct.c and include/linux/acct.h to kernel/tsacct.c and\ninclude/linux/tsacct_kern.h.\n\nSigned-off-by: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5b160f5ecd2f1b6df2e0015dc1f319c8ef803d62",
      "tree": "ff7f77b4178299146d6450f01f5d1da769c3fda9",
      "parents": [
        "1c573afebc6213e4372e0d8352034c23d5262e1f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:00:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:18 2006 -0700"
      },
      "message": "[PATCH] copy_process: cosmetic -\u003eioprio tweak\n\ncopy_process:\n// holds tasklist_lock + -\u003esiglock\n       /*\n        * inherit ioprio\n        */\n       p-\u003eioprio \u003d current-\u003eioprio;\n\nWhy?  -\u003eioprio was already copied in dup_task_struct().  I guess this is\nneeded to ensure that the child can\u0027t escape\nsys_ioprio_set(IOPRIO_WHO_{PGRP,USER}), yes?\n\nIn that case we don\u0027t need -\u003esiglock held, and the comment should be\nupdated.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c5c934153513dc72e2d6464f39e8ef1f27c0a3e",
      "tree": "be799da4af646a96c2d6ab473e276a7361beb685",
      "parents": [
        "3d5b6fccc4b900cc4267692f015ea500bad4c6bf"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Sep 29 01:59:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:09 2006 -0700"
      },
      "message": "[PATCH] ifdef blktrace debugging fields\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ebdea46fecae40c4d7effcd33f40918a37a1df4b",
      "tree": "e4312bf7f1f3d184738963a0ec300aa9fdfd55c1",
      "parents": [
        "fecf3404f4aba6d0edeba31eeb018cbb6326dff2",
        "250d375d1da45a5e08ab8baf5eaa7eb258afd82b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 28 14:40:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 28 14:40:39 2006 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (130 commits)\n  [ARM] 3856/1: Add clocksource for Intel IXP4xx platforms\n  [ARM] 3855/1: Add generic time support\n  [ARM] 3873/1: S3C24XX: Add irq_chip names\n  [ARM] 3872/1: S3C24XX: Apply consistant tabbing to irq_chips\n  [ARM] 3871/1: S3C24XX: Fix ordering of EINT4..23\n  [ARM] nommu: confirms the CR_V bit in nommu mode\n  [ARM] nommu: abort handler fixup for !CPU_CP15_MMU cores.\n  [ARM] 3870/1: AT91: Start removing static memory mappings\n  [ARM] 3869/1: AT91: NAND support for DK and KB9202 boards\n  [ARM] 3868/1: AT91 hardware header update\n  [ARM] 3867/1: AT91 GPIO update\n  [ARM] 3866/1: AT91 clock update\n  [ARM] 3865/1: AT91RM9200 header updates\n  [ARM] 3862/2: S3C2410 - add basic power management support for AML M5900 series\n  [ARM] kthread: switch arch/arm/kernel/apm.c\n  [ARM] Off-by-one in arch/arm/common/icst*\n  [ARM] 3864/1: Refactore sharpsl_pm\n  [ARM] 3863/1: Add Locomo SPI Device\n  [ARM] 3847/2:  Convert LOMOMO to use struct device for GPIOs\n  [ARM] Use CPU_CACHE_* where possible in asm/cacheflush.h\n  ...\n"
    },
    {
      "commit": "0a4254058037eb172758961d0a5b94f4320a1425",
      "tree": "e9e64daf007952322c7ab0671b2f2f841085c04d",
      "parents": [
        "b62a5c740df1e3d49a97349fce0c6a23f633d7fe"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Sep 26 10:52:38 2006 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Tue Sep 26 10:52:38 2006 +0200"
      },
      "message": "[PATCH] Add the canary field to the PDA area and the task struct\n\nThis patch adds the per thread cookie field to the task struct and the PDA.\nAlso it makes sure that the PDA value gets the new cookie value at context\nswitch, and that a new task gets a new cookie at task creation time.\n\nSigned-off-by: Arjan van Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCC: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "b36e4758dc1b9ff1f6d97e951edba22366230d11",
      "tree": "3419ae3d588bdc1ecc51748c63077cb18ac974c3",
      "parents": [
        "7ad1bcb25c5623f1f87c50fdf2272f58ff91db5a"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Sun Aug 27 12:26:34 2006 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Sep 20 14:58:35 2006 +0100"
      },
      "message": "[ARM] Fix kernel/fork.c for lockdep on ARM\n\nARM has interrupts enabled over context switches (iow, has\n__ARCH_WANT_INTERRUPTS_ON_CTXSW defined.)  The lockdep code in fork.c\n assumes that interrupts are always disabled.  Fix this wrong\nassumption by making the initialisation of \u0027p-\u003ehardirqs_enabled\u0027\ndepend on __ARCH_WANT_INTERRUPTS_ON_CTXSW.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "35df17c57cecb08f0120fb18926325f1093dc429",
      "tree": "dc79780b3133e55dc591e35238fdb313e8e0219e",
      "parents": [
        "30f3174d1c506db2c6d2c1dddc9c064e741d6b76"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Thu Aug 31 21:27:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 01 11:39:08 2006 -0700"
      },
      "message": "[PATCH] task delay accounting fixes\n\nCleanup allocation and freeing of tsk-\u003edelays used by delay accounting.\nThis solves two problems reported for delay accounting:\n\n1. oops in __delayacct_blkio_ticks\nhttp://www.uwsg.indiana.edu/hypermail/linux/kernel/0608.2/1844.html\n\nCurrently tsk-\u003edelays is getting freed too early in task exit which can\ncause a NULL tsk-\u003edelays to get accessed via reading of /proc/\u003ctgid\u003e/stats.\n The patch fixes this problem by freeing tsk-\u003edelays closer to when\ntask_struct itself is freed up.  As a result, it also eliminates the use of\ntsk-\u003edelays_lock which was only being used (inadequately) to safeguard\naccess to tsk-\u003edelays while a task was exiting.\n\n2. Possible memory leak in kernel/delayacct.c\nhttp://www.uwsg.indiana.edu/hypermail/linux/kernel/0608.2/1389.html\n\nThe patch cleans up tsk-\u003edelays allocations after a bad fork which was\nmissing earlier.\n\nThe patch has been tested to fix the problems listed above and stress\ntested with rapid calls to delay accounting\u0027s taskstats command interface\n(which is the other path that can access the same data, besides the /proc\ninterface causing the oops above).\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f59ce5d0e0dd837853385927b150f5cef3a7f52",
      "tree": "12d158ca678e803e77803cd9476fd6104e8ae0c0",
      "parents": [
        "f9abd1ace43d6186268856dbec2ebf411218d6ca"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Sat Aug 05 12:14:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:46 2006 -0700"
      },
      "message": "[PATCH] ptrace: make pid of child process available for PTRACE_EVENT_VFORK_DONE\n\nWhen delivering PTRACE_EVENT_VFORK_DONE, provide pid of the child process\nwhen tracer calls ptrace(PTRACE_GETEVENTMSG).  This is already\n(accidentally) available when the tracer is tracing VFORK in addition to\nVFORK_DONE.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nCc: Daniel Jacobowitz \u003cdan@debian.org\u003e\nCc: Albert Cahalan \u003cacahalan@gmail.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad4ecbcba72855a2b5319b96e2a3a65ed1ca3bfd",
      "tree": "a2f5b98598948525de77ab594e4432f09a230388",
      "parents": [
        "25890454667b3295f67b3372352be90705f8667c"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:57 2006 -0700"
      },
      "message": "[PATCH] delay accounting taskstats interface send tgid once\n\nSend per-tgid data only once during exit of a thread group instead of once\nwith each member thread exit.\n\nCurrently, when a thread exits, besides its per-tid data, the per-tgid data\nof its thread group is also sent out, if its thread group is non-empty.\nThe per-tgid data sent consists of the sum of per-tid stats for all\n*remaining* threads of the thread group.\n\nThis patch modifies this sending in two ways:\n\n- the per-tgid data is sent only when the last thread of a thread group\n  exits.  This cuts down heavily on the overhead of sending/receiving\n  per-tgid data, especially when other exploiters of the taskstats\n  interface aren\u0027t interested in per-tgid stats\n\n- the semantics of the per-tgid data sent are changed.  Instead of being\n  the sum of per-tid data for remaining threads, the value now sent is the\n  true total accumalated statistics for all threads that are/were part of\n  the thread group.\n\nThe patch also addresses a minor issue where failure of one accounting\nsubsystem to fill in the taskstats structure was causing the send of\ntaskstats to not be sent at all.\n\nThe patch has been tested for stability and run cerberus for over 4 hours\non an SMP.\n\n[akpm@osdl.org: bugfixes]\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca74e92b4698276b6696f15a801759f50944f387",
      "tree": "26f0de66d8207608e07ee22389bfc173e773c0c2",
      "parents": [
        "e8f4d97e1b58b50ad6449bb2d35e6632c0236abd"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: setup\n\nInitialization code related to collection of per-task \"delay\" statistics which\nmeasure how long it had to wait for cpu, sync block io, swapping etc.  The\ncollection of statistics and the interface are in other patches.  This patch\nsets up the data structures and allows the statistics collection to be\ndisabled through a kernel boot parameter.\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59923a15c12d2b3597af913bf234a0ef264a38b",
      "tree": "b501b52309d68e711b7e162b570c16e535922d32",
      "parents": [
        "f84dfe82962759f3355eacc8e377361bb77b5274"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jul 10 04:45:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:26 2006 -0700"
      },
      "message": "[PATCH] remove the tasklist_lock export\n\nAs announced half a year ago this patch will remove the tasklist_lock\nexport.  The previous two patches got rid of the remaining modular users.\n\nSigned-off-by: 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": "36c8b586896f60cb91a4fd526233190b34316baf",
      "tree": "003246e1e676de33703daa979b3e3109ca202a89",
      "parents": [
        "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, remove task_t, convert to struct task_struct\n\ncleanup: remove task_t and convert all the uses to struct task_struct. I\nintroduced it for the scheduler anno and it was a mistake.\n\nConversion was mostly scripted, the result was reviewed and all\nsecondary whitespace and style impact (if any) was fixed up by hand.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad33945175bed649ca5fe0881269db005bbb449a",
      "tree": "2aac47ea54ac59f33e8188e25e1e9d9807eecae7",
      "parents": [
        "d378834840907326ac9d448056d957d13cc3718f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:08 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate -\u003emmap_sem\n\nTeach special (recursive) locking code to the lock validator.  Has no effect\non non-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fbb9ce9530fd9b66096d5187fa6a115d16d9746c",
      "tree": "1151a55e5d56045bac17b9766e6a4696cff0a26f",
      "parents": [
        "cae2ed9aa573415c6e5de9a09b7ff0d74af793bc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:03 2006 -0700"
      },
      "message": "[PATCH] lockdep: core\n\nDo \u0027make oldconfig\u0027 and accept all the defaults for new config options -\nreboot into the kernel and if everything goes well it should boot up fine and\nyou should have /proc/lockdep and /proc/lockdep_stats files.\n\nTypically if the lock validator finds some problem it will print out\nvoluminous debug output that begins with \"BUG: ...\" and which syslog output\ncan be used by kernel developers to figure out the precise locking scenario.\n\nWhat does the lock validator do?  It \"observes\" and maps all locking rules as\nthey occur dynamically (as triggered by the kernel\u0027s natural use of spinlocks,\nrwlocks, mutexes and rwsems).  Whenever the lock validator subsystem detects a\nnew locking scenario, it validates this new rule against the existing set of\nrules.  If this new rule is consistent with the existing set of rules then the\nnew rule is added transparently and the kernel continues as normal.  If the\nnew rule could create a deadlock scenario then this condition is printed out.\n\nWhen determining validity of locking, all possible \"deadlock scenarios\" are\nconsidered: assuming arbitrary number of CPUs, arbitrary irq context and task\ncontext constellations, running arbitrary combinations of all the existing\nlocking scenarios.  In a typical system this means millions of separate\nscenarios.  This is why we call it a \"locking correctness\" validator - for all\nrules that are observed the lock validator proves it with mathematical\ncertainty that a deadlock could not occur (assuming that the lock validator\nimplementation itself is correct and its internal data structures are not\ncorrupted by some other kernel subsystem).  [see more details and conditionals\nof this statement in include/linux/lockdep.h and\nDocumentation/lockdep-design.txt]\n\nFurthermore, this \"all possible scenarios\" property of the validator also\nenables the finding of complex, highly unlikely multi-CPU multi-context races\nvia single single-context rules, increasing the likelyhood of finding bugs\ndrastically.  In practical terms: the lock validator already found a bug in\nthe upstream kernel that could only occur on systems with 3 or more CPUs, and\nwhich needed 3 very unlikely code sequences to occur at once on the 3 CPUs.\nThat bug was found and reported on a single-CPU system (!).  So in essence a\nrace will be found \"piecemail-wise\", triggering all the necessary components\nfor the race, without having to reproduce the race scenario itself!  In its\nshort existence the lock validator found and reported many bugs before they\nactually caused a real deadlock.\n\nTo further increase the efficiency of the validator, the mapping is not per\n\"lock instance\", but per \"lock-class\".  For example, all struct inode objects\nin the kernel have inode-\u003einotify_mutex.  If there are 10,000 inodes cached,\nthen there are 10,000 lock objects.  But -\u003einotify_mutex is a single \"lock\ntype\", and all locking activities that occur against -\u003einotify_mutex are\n\"unified\" into this single lock-class.  The advantage of the lock-class\napproach is that all historical -\u003einotify_mutex uses are mapped into a single\n(and as narrow as possible) set of locking rules - regardless of how many\ndifferent tasks or inode structures it took to build this set of rules.  The\nset of rules persist during the lifetime of the kernel.\n\nTo see the rough magnitude of checking that the lock validator does, here\u0027s a\nportion of /proc/lockdep_stats, fresh after bootup:\n\n lock-classes:                            694 [max: 2048]\n direct dependencies:                  1598 [max: 8192]\n indirect dependencies:               17896\n all direct dependencies:             16206\n dependency chains:                    1910 [max: 8192]\n in-hardirq chains:                      17\n in-softirq chains:                     105\n in-process chains:                    1065\n stack-trace entries:                 38761 [max: 131072]\n combined max dependencies:         2033928\n hardirq-safe locks:                     24\n hardirq-unsafe locks:                  176\n softirq-safe locks:                     53\n softirq-unsafe locks:                  137\n irq-safe locks:                         59\n irq-unsafe locks:                      176\n\nThe lock validator has observed 1598 actual single-thread locking patterns,\nand has validated all possible 2033928 distinct locking scenarios.\n\nMore details about the design of the lock validator can be found in\nDocumentation/lockdep-design.txt, which can also found at:\n\n   http://redhat.com/~mingo/lockdep-patches/lockdep-design.txt\n\n[bunk@stusta.de: cleanups]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de30a2b355ea85350ca2f58f3b9bf4e5bc007986",
      "tree": "0bef670aff65614b3c78ca13b20307355b8221d5",
      "parents": [
        "5bdc9b447c0076f494a56fdcd93ee8c5e78a2afd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:03 2006 -0700"
      },
      "message": "[PATCH] lockdep: irqtrace subsystem, core\n\nAccurate hard-IRQ-flags and softirq-flags state tracing.\n\nThis allows us to attach extra functionality to IRQ flags on/off\nevents (such as trace-on/off).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a11b49a805665e13a56aa067afaf81d43ec1514",
      "tree": "bf499956e3f67d1211d68ab1e2eb76645f453dfb",
      "parents": [
        "fb7e42413a098cc45b3adf858da290033af62bae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: better lock debugging\n\nGeneric lock debugging:\n\n - generalized lock debugging framework. For example, a bug in one lock\n   subsystem turns off debugging in all lock subsystems.\n\n - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from\n   the mutex/rtmutex debugging code: it caused way too much prototype\n   hackery, and lockdep will give the same information anyway.\n\n - ability to do silent tests\n\n - check lock freeing in vfree too.\n\n - more finegrained debugging options, to allow distributions to\n   turn off more expensive debugging features.\n\nThere\u0027s no separate \u0027held mutexes\u0027 list anymore - but there\u0027s a \u0027held locks\u0027\nstack within lockdep, which unifies deadlock detection across all lock\nclasses.  (this is independent of the lockdep validation stuff - lockdep first\nchecks whether we are holding a lock already)\n\nHere are the current debugging options:\n\nCONFIG_DEBUG_MUTEXES\u003dy\nCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\nwhich do:\n\n config DEBUG_MUTEXES\n          bool \"Mutex debugging, basic checks\"\n\n config DEBUG_LOCK_ALLOC\n         bool \"Detect incorrect freeing of live mutexes\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "c87e2837be82df479a6bae9f155c43516d2feebc",
      "tree": "ad6ab35f0b78f71abaa7b05185e9e3f97809c6de",
      "parents": [
        "0cdbee9920fb37eb2dc49b860c2b28862d647adc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: futex_lock_pi/futex_unlock_pi support\n\nThis adds the actual pi-futex implementation, based on rt-mutexes.\n\n[dino@in.ibm.com: fix an oops-causing race]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Dinakar Guniguntala \u003cdino@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "23f78d4a03c53cbd75d87a795378ea540aa08c86",
      "tree": "27dfe06337990911380fe8c5949ae9acd8e9568a",
      "parents": [
        "b29739f902ee76a05493fb7d2303490fc75364f4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex core\n\nCore functions for the rt-mutex subsystem.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf2dfbfbf4c5cb489ea12defd85a484307b955b8",
      "tree": "c6aa61378a738694390c2728957ed72608b4a183",
      "parents": [
        "5debfa6da5b06954bc79fe8deed0d1062c58dcec"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Jun 26 00:26:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:27 2006 -0700"
      },
      "message": "[PATCH] coredump: copy_process: don\u0027t check SIGNAL_GROUP_EXIT\n\nAfter the previous patch SIGNAL_GROUP_EXIT implies a pending SIGKILL, we\ncan remove this check from copy_process() because we already checked\n!signal_pending().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48e6484d49020dba3578ad117b461e8a391e8f0f",
      "tree": "7824ca84bfe71c3fe2c09a1fedc31106fec4f500",
      "parents": [
        "662795deb854b31501e0ffb42b7f0cce802c134a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Rewrite the proc dentry flush on exit optimization\n\nTo keep the dcache from filling up with dead /proc entries we flush them on\nprocess exit.  However over the years that code has gotten hairy with a\ndentry_pointer and a lock in task_struct and misdocumented as a correctness\nfeature.\n\nI have rewritten this code to look and see if we have a corresponding entry in\nthe dcache and if so flush it on process exit.  This removes the extra fields\nin the task_struct and allows me to trivially handle the case of a\n/proc/\u003ctgid\u003e/task/\u003cpid\u003e entry as well as the current /proc/\u003cpid\u003e entries.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0e4648141af02331f21aabcd34940c70f09a2d04",
      "tree": "3e4dea992a8e3f3194be04a0fd3e14c24a313ee7",
      "parents": [
        "6bc392741d661eb84be503d1fdf14b6746615e4c"
      ],
      "author": {
        "name": "KaiGai Kohei",
        "email": "kaigai@ak.jp.nec.com",
        "time": "Sun Jun 25 05:49:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:25 2006 -0700"
      },
      "message": "[PATCH] pacct: add pacct_struct to fix some pacct bugs.\n\nThe pacct facility need an i/o operation when an accounting record is\ngenerated.  There is a possibility to wake OOM killer up.  If OOM killer is\nactivated, it kills some processes to make them release process memory\nregions.\n\nBut acct_process() is called in the killed processes context before calling\nexit_mm(), so those processes cannot release own memory.  In the results, any\nprocesses stop in this point and it finally cause a system stall.\n"
    },
    {
      "commit": "6e6672604773b9bae44d88d38afdf0763c104b1c",
      "tree": "fa597c1b9d46d3f7ed6743f2230a0ac9813693a7",
      "parents": [
        "538c5902b81cc384e93ad3834b6d4a0b3fcb2285"
      ],
      "author": {
        "name": "Prasanna Meda",
        "email": "mlp@google.com",
        "time": "Fri Jun 23 02:05:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:04 2006 -0700"
      },
      "message": "[PATCH] dup fd error fix\n\nSet errorp in dup_fd, it will be used in sys_unshare also.\n\nSigned-off-by: Prasanna Meda \u003cmlp@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ae26f1b3159f3acb21ae1e866c3c7e16edd450f",
      "tree": "28a86cc8682ad5b247f597773572e410b9457d72",
      "parents": [
        "32797f976d62af709943aae38a9457b5a6dbcd8a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 23 02:05:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:03 2006 -0700"
      },
      "message": "[PATCH] mmput() might sleep\n\nexit_aio() and exit_mmap() can sleep.  But it\u0027s easy to accidentally call\nmmput() from inside locks.\n\nCc: Dave Peterson \u003cdsp@llnl.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa84cb935d4ec601528f5e2f0d5d31e7876a5044",
      "tree": "ba0694902a1fec4e32ff15503fc316c24b4a4501",
      "parents": [
        "d6fe3945b42d09a1eca7ad180a1646e585b8594f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 29 20:30:19 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:06:13 2006 -0400"
      },
      "message": "[PATCH] move call of audit_free() into do_exit()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a0aa7f68afeeb92f6274b395177c20e617c8ed2d",
      "tree": "6750a82e5799dd2fe9cd8eb8320a98107f0f5d05",
      "parents": [
        "7daac4902053045450fa29db42aba19a4581f850"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Apr 20 13:05:33 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Apr 20 13:05:33 2006 +0200"
      },
      "message": "[PATCH] Don\u0027t inherit -\u003esplice_pipe across forks\n\nIt\u0027s really task private, so clear that field on fork after copying\ntask structure.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "5e85d4abe3f43bb5362f384bab0e20ef082ce0b5",
      "tree": "cd3a29086e5274fd08bc8d22d15568deab144755",
      "parents": [
        "181ae4005d0a4010802be534d929b38c42b9ac06"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Apr 18 22:20:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:49 2006 -0700"
      },
      "message": "[PATCH] task: Make task list manipulations RCU safe\n\nWhile we can currently walk through thread groups, process groups, and\nsessions with just the rcu_read_lock, this opens the door to walking the\nentire task list.\n\nWe already have all of the other RCU guarantees so there is no cost in\ndoing this, this should be enough so that proc can stop taking the\ntasklist lock during readdir.\n\nprev_task was killed because it has no users, and using it will miss new\ntasks when doing an rcu traversal.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64541d19702cfdb7ea946fdc20faee849f6874b1",
      "tree": "0eb2fbcac51359b590b9692b112fe662fee49a4a",
      "parents": [
        "1f60245479ca6d4d3f2cf4a47c7dd18caf5afdf2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Apr 14 12:43:15 2006 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Apr 14 17:43:57 2006 -0700"
      },
      "message": "[PATCH] kill unushed __put_task_struct_cb\n\nSomehow in the midst of dotting i\u0027s and crossing t\u0027s during\nthe merge up to rc1 we wound up keeping __put_task_struct_cb\nwhen it should have been killed as it no longer has any users.\nSorry I probably should have caught this while it was\nstill in the -mm tree.\n\nHaving the old code there gets confusing when reading\nthrough the code and trying to understand what is\nhappening.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "428622986858aebddc32d022af65e88b9d2ea8bb",
      "tree": "888b968f53e55d81386836ae3f43f46cea4ad6ce",
      "parents": [
        "e358c1a2c45f7ec32d77cc09a2bb42d6823a4193"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Fri Mar 31 17:58:46 2006 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:25:46 2006 -0800"
      },
      "message": "[PATCH] wrong error path in dup_fd() leading to oopses in RCU\n\nWrong error path in dup_fd() - it should return NULL on error,\nnot an address of already freed memory :/\n\nTriggered by OpenVZ stress test suite.\n\nWhat is interesting is that it was causing different oopses in RCU like\nbelow:\nCall Trace:\n   [\u003cc013492c\u003e] rcu_do_batch+0x2c/0x80\n   [\u003cc0134bdd\u003e] rcu_process_callbacks+0x3d/0x70\n   [\u003cc0126cf3\u003e] tasklet_action+0x73/0xe0\n   [\u003cc01269aa\u003e] __do_softirq+0x10a/0x130\n   [\u003cc01058ff\u003e] do_softirq+0x4f/0x60\n   \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n   [\u003cc0113817\u003e] smp_apic_timer_interrupt+0x77/0x110\n   [\u003cc0103b54\u003e] apic_timer_interrupt+0x1c/0x24\n  Code:  Bad EIP value.\n   \u003c0\u003eKernel panic - not syncing: Fatal exception in interrupt\n\nSigned-Off-By: Pavel Emelianov \u003cxemul@sw.ru\u003e\nSigned-Off-By: Dmitry Mishin \u003cdim@openvz.org\u003e\nSigned-Off-By: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-Off-By: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92476d7fc0326a409ab1d3864a04093a6be9aca7",
      "tree": "ea50a5a31522492d9915e0763a7adc6ac87c4fbc",
      "parents": [
        "8c7904a00b06d2ee51149794b619e07369fcf9d4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Mar 31 02:31:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:19:00 2006 -0800"
      },
      "message": "[PATCH] pidhash: Refactor the pid hash table\n\nSimplifies the code, reduces the need for 4 pid hash tables, and makes the\ncode more capable.\n\nIn the discussions I had with Oleg it was felt that to a large extent the\ncleanup itself justified the work.  With struct pid being dynamically\nallocated meant we could create the hash table entry when the pid was\nallocated and free the hash table entry when the pid was freed.  Instead of\nplaying with the hash lists when ever a process would attach or detach to a\nprocess.\n\nFor myself the fact that it gave what my previous task_ref patch gave for free\nwith simpler code was a big win.  The problem is that if you hold a reference\nto struct task_struct you lock in 10K of low memory.  If you do that in a user\ncontrollable way like /proc does, with an unprivileged but hostile user space\napplication with typical resource limits of 1000 fds and 100 processes I can\ntrigger the OOM killer by consuming all of low memory with task structs, on a\nmachine wight 1GB of low memory.\n\nIf I instead hold a reference to struct pid which holds a pointer to my\ntask_struct, I don\u0027t suffer from that problem because struct pid is 2 orders\nof magnitude smaller.  In fact struct pid is small enough that most other\nkernel data structures dwarf it, so simply limiting the number of referring\ndata structures is enough to prevent exhaustion of low memory.\n\nThis splits the current struct pid into two structures, struct pid and struct\npid_link, and reduces our number of hash tables from PIDTYPE_MAX to just one.\nstruct pid_link is the per process linkage into the hash tables and lives in\nstruct task_struct.  struct pid is given an indepedent lifetime, and holds\npointers to each of the pid types.\n\nThe independent life of struct pid simplifies attach_pid, and detach_pid,\nbecause we are always manipulating the list of pids and not the hash table.\nIn addition in giving struct pid an indpendent life it makes the concept much\nmore powerful.\n\nKernel data structures can now embed a struct pid * instead of a pid_t and\nnot suffer from pid wrap around problems or from keeping unnecessarily\nlarge amounts of memory allocated.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "158d9ebd19280582da172626ad3edda1a626dace",
      "tree": "5b821a6faf28d136b65ae30a56e7f731adc11c28",
      "parents": [
        "390e2ff07712468ce6600a43aa91e897b056ce12"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 31 02:31:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] resurrect __put_task_struct\n\nThis just got nuked in mainline.  Bring it back because Eric\u0027s patches use it.\n\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a7e5328a06a2beee3a2bbfaf87ce2a7bbe937de1",
      "tree": "168102a80e9b98d19e8bf39156d35dacdb253c3d",
      "parents": [
        "4a2c7a7837da1b91468e50426066d988050e4d56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] cleanup __exit_signal-\u003ecleanup_sighand path\n\nMove \u0027tsk-\u003esighand \u003d NULL\u0027 from cleanup_sighand() to __exit_signal().  This\nmakes the exit path more understandable and allows us to do\ncleanup_sighand() outside of -\u003esiglock protected section.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a2c7a7837da1b91468e50426066d988050e4d56",
      "tree": "e7e321e1a61b934e3c0d938360cc4b990407fcea",
      "parents": [
        "47e65328a7b1cdfc4e3102e50d60faf94ebba7d3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] make fork() atomic wrt pgrp/session signals\n\nEric W. Biederman wrote:\n\u003e\n\u003e Ok. SUSV3/Posix is clear, fork is atomic with respect\n\u003e to signals.  Either a signal comes before or after a\n\u003e fork but not during. (See the rationale section).\n\u003e http://www.opengroup.org/onlinepubs/000095399/functions/fork.html\n\u003e\n\u003e The tasklist_lock does not stop forks from adding to a process\n\u003e group. The forks stall while the tasklist_lock is held, but a fork\n\u003e that began before we grabbed the tasklist_lock simply completes\n\u003e afterwards, and the child does not receive the signal.\n\nThis also means that SIGSTOP or sig_kernel_coredump() signal can\u0027t\nbe delivered to pgrp/session reliably.\n\nWith this patch copy_process() returns -ERESTARTNOINTR when it\ndetects a pending signal, fork() will be restarted transparently\nafter handling the signals.\n\nThis patch also deletes now unneeded \"group_stop_count \u003e 0\" check,\ncopy_process() can no longer succeed while group stop in progress.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-By: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47e65328a7b1cdfc4e3102e50d60faf94ebba7d3",
      "tree": "78e00a5321cca87767806a91e623e71b5c6637c7",
      "parents": [
        "88531f725bd52e37a7be726860e4ff3f09031d89"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] pids: kill PIDTYPE_TGID\n\nThis patch kills PIDTYPE_TGID pid_type thus saving one hash table in\nkernel/pid.c and speeding up subthreads create/destroy a bit.  It is also a\npreparation for the further tref/pids rework.\n\nThis patch adds \u0027struct list_head thread_group\u0027 to \u0027struct task_struct\u0027\ninstead.\n\nWe don\u0027t detach group leader from PIDTYPE_PID namespace until another\nthread inherits it\u0027s -\u003epid \u003d\u003d -\u003etgid, so we are safe wrt premature\nfree_pidmap(-\u003etgid) call.\n\nCurrently there are no users of find_task_by_pid_type(PIDTYPE_TGID).\nShould the need arise, we can use find_task_by_pid()-\u003egroup_leader.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-By: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c81addc9d3a0ebff2155e0cd86f90820ab97147e",
      "tree": "56eb3a50f71e7a0e2a0f0daef4ec097375b06f8d",
      "parents": [
        "29ff471234d53c7235db287bc52f91884c2977c6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] rename __exit_sighand to cleanup_sighand\n\nCosmetic, rename __exit_sighand to cleanup_sighand and move it close to\ncopy_sighand().\n\nThis matches copy_signal/cleanup_signal naming, and I think it is easier to\nfollow.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b3934ef52712ece50605dfc72e55d00c580831a",
      "tree": "5ec3c4f69a20880f75de6ff8d7d2f67d96328df3",
      "parents": [
        "7001510d0cbf51ad202dd2d0744f54104285cbb9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] copy_process: cleanup bad_fork_cleanup_signal\n\n__exit_signal() does important cleanups atomically under -\u003esiglock.  It is\nalso called from copy_process\u0027s error path.  This is not good, for example we\ncan\u0027t move __unhash_process() under -\u003esiglock for that reason.\n\nWe should not mix these 2 paths, just look at ugly \u0027if (p-\u003esighand)\u0027 under\n\u0027bad_fork_cleanup_sighand:\u0027 label.  For copy_process() case it is sufficient\nto just backout copy_signal(), nothing more.\n\nAgain, nobody can see this task yet.  For CLONE_THREAD case we just decrement\nsignal-\u003ecount, otherwise nobody can see this -\u003esignal and we can free it\nlockless.\n\nThis patch assumes it is safe to do exit_thread_group_keys() without\ntasklist_lock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7001510d0cbf51ad202dd2d0744f54104285cbb9",
      "tree": "1df2a6930c460c12026231634b86d14b153a4a86",
      "parents": [
        "a9e88e84b5245da0a1dadb6ccca70ae84e93ccf6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] copy_process: cleanup bad_fork_cleanup_sighand\n\nThe only caller of exit_sighand(tsk) is copy_process\u0027s error path.  We can\ncall __exit_sighand() directly and kill exit_sighand().\n\nThis \u0027tsk\u0027 was not yet registered in pid_hash[] or init_task.tasks, it has no\nexternal references, nobody can see it, and\n\n\tIF (clone_flags \u0026 CLONE_SIGHAND)\n\t\tAt least \u0027current\u0027 has a reference to -\u003esighand, this\n\t\tmeans atomic_dec_and_test(sighand-\u003ecount) can\u0027t be true.\n\n\tELSE\n\t\tNobody can see this -\u003esighand, this means we can free it\n\t\twithout any locking.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aa1757f90bea3f598b6e5d04d922a6a60200f1da",
      "tree": "4f8f3804b2595031d0b84de7086dc28375290f0d",
      "parents": [
        "1f09f9749cdde4e69f95d62d96d2e03f50b3353c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] convert sighand_cache to use SLAB_DESTROY_BY_RCU\n\nThis patch borrows a clever Hugh\u0027s \u0027struct anon_vma\u0027 trick.\n\nWithout tasklist_lock held we can\u0027t trust task-\u003esighand until we locked it\nand re-checked that it is still the same.\n\nBut this means we don\u0027t need to defer \u0027kmem_cache_free(sighand)\u0027.  We can\nreturn the memory to slab immediately, all we need is to be sure that\nsighand-\u003esiglock can\u0027t dissapear inside rcu protected section.\n\nTo do so we need to initialize -\u003esiglock inside ctor function,\nSLAB_DESTROY_BY_RCU does the rest.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73b9ebfe126a4a886ee46cbab637374d7024668a",
      "tree": "d7ba00d4ce76b49c1569334956cd196b35977a04",
      "parents": [
        "c97d98931ac52ef110b62d9b75c6a6f2bfbc1898"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] pidhash: don\u0027t count idle threads\n\nfork_idle() does unhash_process() just after copy_process().  Contrary,\nboot_cpu\u0027s idle thread explicitely registers itself for each pid_type with nr\n\u003d 0.\n\ncopy_process() already checks p-\u003epid !\u003d 0 before process_counts++, I think we\ncan just skip attach_pid() calls and job control inits for idle threads and\nkill unhash_process().  We don\u0027t need to cleanup -\u003eproc_dentry in fork_idle()\nbecause with this patch idle threads are never hashed in\nkernel/pid.c:pid_hash[].\n\nWe don\u0027t need to hash pid \u003d\u003d 0 in pidmap_init().  free_pidmap() is never\ncalled with pid \u003d\u003d 0 arg, so it will never be reused.  So it is still possible\nto use pid \u003d\u003d 0 in any PIDTYPE_xxx namespace from kernel/pid.c\u0027s POV.\n\nHowever with this patch we don\u0027t hash pid \u003d\u003d 0 for PIDTYPE_PID case.  We still\nhave have PIDTYPE_PGID/PIDTYPE_SID entries with pid \u003d\u003d 0: /sbin/init and\nkernel threads which don\u0027t call daemonize().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c97d98931ac52ef110b62d9b75c6a6f2bfbc1898",
      "tree": "f811f8b2862692c2eb7ee92e62e8f0afcfd37a2d",
      "parents": [
        "9b678ece42893b53aae5ed7cb8d7cb261cacb72c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] kill SET_LINKS/REMOVE_LINKS\n\nBoth SET_LINKS() and SET_LINKS/REMOVE_LINKS() have exactly one caller, and\nthese callers already check thread_group_leader().\n\nThis patch kills theese macros, they mix two different things: setting\nprocess\u0027s parent and registering it in init_task.tasks list.  Callers are\nupdated to do these actions by hand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f17d3a5049d32392b79925c73a0cf99ce6d5af0",
      "tree": "3c2aa0cbe337684d353dd2cfb0c177b4ae15217c",
      "parents": [
        "8fdd6c6df7889dc89df3d9fe0f5bbe6733e39f48"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes updates\n\n- fix: initialize the robust list(s) to NULL in copy_process.\n\n- doc update\n\n- cleanup: rename _inuser to _inatomic\n\n- __user cleanups and other small cleanups\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ae21d1bb376436285cd5346d3e4b3655d6dd1b9",
      "tree": "8f889770fae721da63bd378c1834a87e2eb1cfb5",
      "parents": [
        "f9b4192923fa6e38331e88214b1fe5fc21583fcc",
        "e9415777b1cd0eaf4d1d3d61772f0e6d5c2551ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment\n  Kconfig help: MTD_JEDECPROBE already supports Intel\n  Remove ugly debugging stuff\n  do_mounts.c: Minor ROOT_DEV comment cleanup\n  BUG_ON() Conversion in drivers/s390/block/dasd_devmap.c\n  BUG_ON() Conversion in mm/mempool.c\n  BUG_ON() Conversion in mm/memory.c\n  BUG_ON() Conversion in kernel/fork.c\n  BUG_ON() Conversion in ipc/sem.c\n  BUG_ON() Conversion in fs/ext2/\n  BUG_ON() Conversion in fs/hfs/\n  BUG_ON() Conversion in fs/dcache.c\n  BUG_ON() Conversion in fs/buffer.c\n  BUG_ON() Conversion in input/serio/hp_sdc_mlc.c\n  BUG_ON() Conversion in md/dm-table.c\n  BUG_ON() Conversion in md/dm-path-selector.c\n  BUG_ON() Conversion in drivers/isdn\n  BUG_ON() Conversion in drivers/char\n  BUG_ON() Conversion in drivers/mtd/\n"
    },
    {
      "commit": "05cfb614ddbf3181540ce09d44d96486f8ba8d6a",
      "tree": "aafed98638557a4643141d906fbb2406f0764a94",
      "parents": [
        "df869b630d9d9131c10cf073fb61646048874b2f"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:03 2006 -0800"
      },
      "message": "[PATCH] hrtimers: remove data field\n\nThe nanosleep cleanup allows to remove the data field of hrtimer.  The\ncallback function can use container_of() to get it\u0027s own data.  Since the\nhrtimer structure is anyway embedded in other structures, this adds no\noverhead.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "910dea7fdda22f0ee83d26d459e460c79ed94557",
      "tree": "46e68906b0026e11ed567cedb7993060c89da9e2",
      "parents": [
        "27315c96a4c3d5f24a902111dae537cdc28302e4"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Mar 26 18:29:26 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Mar 26 18:29:26 2006 +0200"
      },
      "message": "BUG_ON() Conversion in kernel/fork.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "c61afb181c649754ea221f104e268cbacfc993e3",
      "tree": "870917b3f9175cf1663a2620d989856913cfb5f8",
      "parents": [
        "101a50019ae5e370d73984ee05d56dd3b08f330a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread slab cache optimizations\n\nThe hooks in the slab cache allocator code path for support of NUMA\nmempolicies and cpuset memory spreading are in an important code path.  Many\nsystems will use neither feature.\n\nThis patch optimizes those hooks down to a single check of some bits in the\ncurrent tasks task_struct flags.  For non NUMA systems, this hook and related\ncode is already ifdef\u0027d out.\n\nThe optimization is done by using another task flag, set if the task is using\na non-default NUMA mempolicy.  Taking this flag bit along with the\nPF_SPREAD_PAGE and PF_SPREAD_SLAB flag bits added earlier in this \u0027cpuset\nmemory spreading\u0027 patch set, one can check for the combination of any of these\nspecial case memory placement mechanisms with a single test of the current\ntasks task_struct flags.\n\nThis patch also tightens up the code, to save a few bytes of kernel text\nspace, and moves some of it out of line.  Due to the nested inlines called\nfrom multiple places, we were ending up with three copies of this code, which\nonce we get off the main code path (for local node allocation) seems a bit\nwasteful of instruction memory.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4",
      "tree": "d4fe59a7ca0c110690937085548936a4535c39db",
      "parents": [
        "6dac40a7ce2483a47b54af07afebeb84131c7228"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "message": "[PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "0c9e63fd38a2fb2181668a0cdd622a3c23cfd567",
      "tree": "8fdb91603347b1da2e83a095ebcaab44b2c3c237",
      "parents": [
        "d8733c2956968a01394a4d2a9e97a8b431a78776"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Mar 23 03:00:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:09 2006 -0800"
      },
      "message": "[PATCH] Shrinks sizeof(files_struct) and better layout\n\n1) Reduce the size of (struct fdtable) to exactly 64 bytes on 32bits\n   platforms, lowering kmalloc() allocated space by 50%.\n\n2) Reduce the size of (files_struct), using a special 32 bits (or\n   64bits) embedded_fd_set, instead of a 1024 bits fd_set for the\n   close_on_exec_init and open_fds_init fields.  This save some ram (248\n   bytes per task) as most tasks dont open more than 32 files.  D-Cache\n   footprint for such tasks is also reduced to the minimum.\n\n3) Reduce size of allocated fdset.  Currently two full pages are\n   allocated, that is 32768 bits on x86 for example, and way too much.  The\n   minimum is now L1_CACHE_BYTES.\n\nUP and SMP should benefit from this patch, because most tasks will touch\nonly one cache line when open()/close() stdin/stdout/stderr (0/1/2),\n(next_fd, close_on_exec_init, open_fds_init, fd_array[0 ..  2] being in the\nsame cache line)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "06f9d4f94a075285d25253edbf57f2cda07d4ff3",
      "tree": "56a3d3c05606811b15ab7b301c25815e9ac5e1e8",
      "parents": [
        "b40607fc02f8248828d52d88f91b7d68df1933b0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 22 00:07:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:55 2006 -0800"
      },
      "message": "[PATCH] unshare: Error if passed unsupported flags\n\nA bare bones trivial patch to ensure we always get -EINVAL on the\nunsupported cases for sys_unshare.  If this goes in before 2.6.16 it allows\nus to forward compatible with future applications using sys_unshare.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: JANAK DESAI \u003cjanak@us.ibm.com\u003e\nCc: \u003cstable@kerenl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d61b86775a5676a8fba2ba2f0f869564e35c630",
      "tree": "afdb967ec1bb3ddd212acdd8f25675c371f7e6e7",
      "parents": [
        "265a92856b17524c87da0258ac0d3cec80ae1d35"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Mar 18 20:41:10 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 18 10:49:36 2006 -0800"
      },
      "message": "[PATCH] disable unshare(CLONE_VM) for now\n\nsys_unshare() does mmput(new_mm).  This is not enough if we have\nmm-\u003ecore_waiters.\n\nThis patch is a temporary fix for soon to be released 2.6.16.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\n[ Checked with Uli: \"I\u0027m not planning to use unshare(CLONE_VM).  It\u0027s\n  not needed for any functionality planned so far.  What we (as in Red\n  Hat) need unshare() for now is the filesystem side.\" ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0e8eb54d8ae0c4cfd1d297f6351b08a7f635c5f",
      "tree": "e6f6442aca13fe9d20d149ed9b414f038d90778f",
      "parents": [
        "232a347a444e687b5f8cf0f6485704db1c6024d3"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Mar 16 10:31:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 17 07:46:59 2006 -0800"
      },
      "message": "[PATCH] unshare: Use rcu_assign_pointer when setting sighand\n\nThe sighand pointer only needs the rcu_read_lock on the\nread side.  So only depending on task_lock protection\nwhen setting this pointer is not enough.  We also need\na memory barrier to ensure the initialization is seen first.\n\nUse rcu_assign_pointer as it does this for us, and clearly\ndocuments that we are setting an rcu readable pointer.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9a3879abf2f1a27c39915e6074b8ff15a24cb55",
      "tree": "67a133c1957e992ee10f8d33e312616f494d7b07",
      "parents": [
        "63e1fd41c7127650d355e7db7dd92890edf5523b"
      ],
      "author": {
        "name": "GOTO Masanori",
        "email": "gotom@sanori.org",
        "time": "Mon Mar 13 21:20:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 14 07:57:17 2006 -0800"
      },
      "message": "[PATCH] Fix sigaltstack corruption among cloned threads\n\nThis patch fixes alternate signal stack corruption among cloned threads\nwith CLONE_SIGHAND (and CLONE_VM) for linux-2.6.16-rc6.\n\nThe value of alternate signal stack is currently inherited after a call of\nclone(...  CLONE_SIGHAND | CLONE_VM).  But if sigaltstack is set by a\nparent thread, and then if multiple cloned child threads (+ parent threads)\ncall signal handler at the same time, some threads may be conflicted -\nbecause they share to use the same alternative signal stack region.\nFinally they get sigsegv.  It\u0027s an undesirable race condition.  Note that\nchild threads created from NPTL pthread_create() also hit this conflict\nwhen the parent thread uses sigaltstack, without my patch.\n\nTo fix this problem, this patch clears the child threads\u0027 sigaltstack\ninformation like exec().  This behavior follows the SUSv3 specification.\nIn SUSv3, pthread_create() says \"The alternate stack shall not be inherited\n(when new threads are initialized)\".  It means that sigaltstack should be\ncleared when sigaltstack memory space is shared by cloned threads with\nCLONE_SIGHAND.\n\nNote that I chose \"if (clone_flags \u0026 CLONE_SIGHAND)\" line because:\n  - If clone_flags line is not existed, fork() does not inherit sigaltstack.\n  - CLONE_VM is another choice, but vfork() does not inherit sigaltstack.\n  - CLONE_SIGHAND implies CLONE_VM, and it looks suitable.\n  - CLONE_THREAD is another candidate, and includes CLONE_SIGHAND + CLONE_VM,\n    but this flag has a bit different semantics.\nI decided to use CLONE_SIGHAND.\n\n[ Changed to test for CLONE_VM \u0026\u0026 !CLONE_VFORK after discussion --Linus ]\n\nSigned-off-by: GOTO Masanori \u003cgotom@sanori.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7cd9013be6c22f3ff6f777354f766c8c0b955e17",
      "tree": "328e45aadb4c5bc9b6cd530be03572070201f5e5",
      "parents": [
        "27d162e26a873883937b64526445877bd3341d23"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Mar 11 03:27:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 11 09:19:34 2006 -0800"
      },
      "message": "[PATCH] remove __put_task_struct_cb export again\n\nThe patch \u0027[PATCH] RCU signal handling\u0027 [1] added an export for\n__put_task_struct_cb, a put_task_struct helper newly introduced in that\npatch.  But the put_task_struct couldn\u0027t be used modular previously as\n__put_task_struct wasn\u0027t exported.  There are not callers of it in modular\ncode, and it shouldn\u0027t be exported because we don\u0027t want drivers to hold\nreferences to task_structs.\n\nThis patch removes the export and folds __put_task_struct into\n__put_task_struct_cb as there\u0027s no other caller.\n\n[1] http://www2.kernel.org/git/gitweb.cgi?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommit;h\u003de56d090310d7625ecb43a1eeebd479f04affb48b\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dadac81b1b86196fcc48fb87620403c4a7174f06",
      "tree": "fc19d44716915e55b237af3fb01a09f5be6d91c3",
      "parents": [
        "3f17da699431ec48540beabc55c54d4b5e66c8e7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Feb 15 22:13:26 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 15 10:21:24 2006 -0800"
      },
      "message": "[PATCH] fix kill_proc_info() vs fork() theoretical race\n\ncopy_process:\n\n\tattach_pid(p, PIDTYPE_PID, p-\u003epid);\n\tattach_pid(p, PIDTYPE_TGID, p-\u003etgid);\n\nWhat if kill_proc_info(p-\u003epid) happens in between?\n\ncopy_process() holds current-\u003esighand.siglock, so we are safe\nin CLONE_THREAD case, because current-\u003esighand \u003d\u003d p-\u003esighand.\n\nOtherwise, p-\u003esighand is unlocked, the new process is already\nvisible to the find_task_by_pid(), but have a copy of parent\u0027s\n\u0027struct pid\u0027 in -\u003epids[PIDTYPE_TGID].\n\nThis means that __group_complete_signal() may hang while doing\n\n\tdo ... while (next_thread() !\u003d p)\n\nWe can solve this problem if we reverse these 2 attach_pid()s:\n\n\tattach_pid() does wmb()\n\n\tgroup_send_sig_info() calls spin_lock(), which\n\tprovides a read barrier. // Yes ?\n\nI don\u0027t think we can hit this race in practice, but still.\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: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3f17da699431ec48540beabc55c54d4b5e66c8e7",
      "tree": "0cc68e5daea5d4532a0225aa47cce193a32f6655",
      "parents": [
        "7775aa7690c26b3c5606090a43533a7a7429eb91"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Feb 15 22:13:24 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 15 10:21:23 2006 -0800"
      },
      "message": "[PATCH] fix kill_proc_info() vs CLONE_THREAD race\n\nThere is a window after copy_process() unlocks -\u003esighand.siglock\nand before it adds the new thread to the thread list.\n\nIn that window __group_complete_signal(SIGKILL) will not see the\nnew thread yet, so this thread will start running while the whole\nthread group was supposed to exit.\n\nI beleive we have another good reason to place attach_pid(PID/TGID)\nunder -\u003esighand.siglock. We can do the same for\n\n\trelease_task()-\u003e__unhash_process()\n\n\tde_thread()-\u003eswitch_exec_pids()\n\nAfter that we don\u0027t need tasklist_lock to iterate over the thread\nlist, and we can simplify things, see for example do_sigaction()\nor sys_times().\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: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a016f3389c06606dd80e687942ff3c71d41823c4",
      "tree": "c6fdc00cc6762d98fea1fad64d851119d5e7aa45",
      "parents": [
        "a0a7ec308f1be5957b20a1a535d21f683dfd83f0"
      ],
      "author": {
        "name": "JANAK DESAI",
        "email": "janak@us.ibm.com",
        "time": "Tue Feb 07 12:59:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:34 2006 -0800"
      },
      "message": "[PATCH] unshare system call -v5: unshare files\n\nIf the file descriptor structure is being shared, allocate a new one and copy\ninformation from the current, shared, structure.\n\nSigned-off-by: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0a7ec308f1be5957b20a1a535d21f683dfd83f0",
      "tree": "3814ee7b6aa51558d7c2200e41d587c9150389e5",
      "parents": [
        "741a295130606143edbf9fc740f633dbc1e6225f"
      ],
      "author": {
        "name": "JANAK DESAI",
        "email": "janak@us.ibm.com",
        "time": "Tue Feb 07 12:59:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:34 2006 -0800"
      },
      "message": "[PATCH] unshare system call -v5: unshare vm\n\nIf vm structure is being shared, allocate a new one and copy information from\nthe current, shared, structure.\n\nSigned-off-by: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "741a295130606143edbf9fc740f633dbc1e6225f",
      "tree": "3679047dd44e94ba94ee1487880a94def93a06f9",
      "parents": [
        "99d1419d96d7df9cfa56bc977810be831bd5ef64"
      ],
      "author": {
        "name": "JANAK DESAI",
        "email": "janak@us.ibm.com",
        "time": "Tue Feb 07 12:59:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:34 2006 -0800"
      },
      "message": "[PATCH] unshare system call -v5: unshare namespace\n\nIf the namespace structure is being shared, allocate a new one and copy\ninformation from the current, shared, structure.\n\nSigned-off-by: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99d1419d96d7df9cfa56bc977810be831bd5ef64",
      "tree": "994e2fe33cef91933d299af9c26ddb9a92da58f4",
      "parents": [
        "cf2e340f4249b781b3d2beb41e891d08581f0e10"
      ],
      "author": {
        "name": "JANAK DESAI",
        "email": "janak@us.ibm.com",
        "time": "Tue Feb 07 12:58:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:34 2006 -0800"
      },
      "message": "[PATCH] unshare system call -v5: unshare filesystem info\n\nIf filesystem structure is being shared, allocate a new one and copy\ninformation from the current, shared, structure.\n\nSigned-off-by: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf2e340f4249b781b3d2beb41e891d08581f0e10",
      "tree": "77130c96dbf86a2659bd346f14ccc3b0857a3e7c",
      "parents": [
        "0d4c3e7a8c65892c7d6a748fdbb4499e988880db"
      ],
      "author": {
        "name": "JANAK DESAI",
        "email": "janak@us.ibm.com",
        "time": "Tue Feb 07 12:58:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:34 2006 -0800"
      },
      "message": "[PATCH] unshare system call -v5: system call handler function\n\nsys_unshare system call handler function accepts the same flags as clone\nsystem call, checks constraints on each of the flags and invokes corresponding\nunshare functions to disassociate respective process context if it was being\nshared with another task.\n\nHere is the link to a program for testing unshare system call.\n\nhttp://prdownloads.sourceforge.net/audit/unshare_test.c?download\n\nPlease note that because of a problem in rmdir associated with bind mounts and\nclone with CLONE_NEWNS, the test fails while trying to remove temporary test\ndirectory.  You can remove that temporary directory by doing rmdir, twice,\nfrom the command line.  The first will fail with EBUSY, but the second will\nsucceed.  I have reported the problem to Ram Pai and Al Viro with a small\nprogram which reproduces the problem.  Al told us yesterday that he will be\nlooking at the problem soon.  I have tried multiple rmdirs from the\nunshare_test program itself, but for some reason that is not working.  Doing\ntwo rmdirs from command line does seem to remove the directory.\n\nSigned-off-by: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7978672c4d9a1e6a6081de3a9d9ba5e5b24904a0",
      "tree": "a7deb3a6e339e691078c770d4b9cbc05d99a2243",
      "parents": [
        "ff60a5dc4fa584d47022d2533bc5c53b80096fb5"
      ],
      "author": {
        "name": "George Anzinger",
        "email": "george@wildturkeyranch.net",
        "time": "Wed Feb 01 03:05:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:13 2006 -0800"
      },
      "message": "[PATCH] hrtimers: cleanups and simplifications\n\nClean up the interface to hrtimers by changing the init code to pass the mode\nas well as the clock.  This allow the init code to select the correct base and\neliminates extra timer re-init code in posix-timers.  We also simplify the\nrestart interface nanosleep use.\n\nSigned-off-by: George Anzinger \u003cgeorge@mvista.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5fd63b308569060ffa40af52ed122d9734111bff",
      "tree": "746c2701ec42374b1ec389a6af0d438c9105a9d7",
      "parents": [
        "99f7b77d3c62045bb47dfc4228a2341ba71bff1d"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Wed Jan 11 22:46:15 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:05:01 2006 -0800"
      },
      "message": "[PATCH] x86_64: Inclusion of ScaleMP vSMP architecture patches - vsmp_align\n\nvSMP specific alignment patch to\n1. Define INTERNODE_CACHE_SHIFT for vSMP\n2. Use this for alignment of critical structures\n3. Use INTERNODE_CACHE_SHIFT for ARCH_MIN_TASKALIGN,\n   and let the slab align task_struct allocations to the internode cacheline size\n4. Introduce and use ARCH_MIN_MMSTRUCT_ALIGN for mm_struct slab allocations.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalemp.com\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalemp.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59ede7b78db329949d9cdcd7064e22d357560ef",
      "tree": "f9dc9d464fdad5bfd464d983e77c1af031389dda",
      "parents": [
        "e16885c5ad624a6efe1b1bf764e075d75f65a788"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] move capable() to capability.h\n\n- Move capable() from sched.h to capability.h;\n\n- Use \u003clinux/capability.h\u003e where capable() is used\n\t(in include/, block/, ipc/, kernel/, a few drivers/,\n\tmm/, security/, \u0026 sound/;\n\tmany more drivers/ to go)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff678b8da6478d861c1b0ecb3ac14575760e906",
      "tree": "0ca983ce820ac8bb9f6e8b193926e0804116a7e0",
      "parents": [
        "df78488de7befd387e9d060da6e18bb5d1cb882c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 09 20:52:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:38 2006 -0800"
      },
      "message": "[PATCH] hrtimer: switch itimers to hrtimer\n\nswitch itimers to a hrtimers-based implementation\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "408894ee4dd4debfdedd472eb4d8414892fc90f6",
      "tree": "b324c1086b804cc05c2839f9d9675eef2bc7c949",
      "parents": [
        "f3f54ffa703c6298240ffd69616451d645bae4d5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:20 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:20 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, debugging code\n\nmutex implementation - add debugging code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\n"
    },
    {
      "commit": "fe7d37d1fbf8ffe78abd72728b24fb0c64f7af55",
      "tree": "274d82b06d2a711e84381b1357c6332077181d27",
      "parents": [
        "ddc0f846aa7621940b74cee0c91cd26405058a4d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:04:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:01 2006 -0800"
      },
      "message": "[PATCH] copy_process: error path cleanup\n\nThis patch moves \u0027fork_out:\u0027 under \u0027bad_fork_free:\u0027, and removes now\nunneeded \u0027if (retval)\u0027 check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a5d3023e626a0baf86ac6b892c983b3db13f22b",
      "tree": "41d1be6513fc3a5367414654eeaf11bbb12d4814",
      "parents": [
        "fb86a35b9ded8a7e53a432cbf28df603cdd4849c"
      ],
      "author": {
        "name": "Oren Laadan",
        "email": "orenl@cs.columbia.edu",
        "time": "Sun Jan 08 01:03:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:00 2006 -0800"
      },
      "message": "[PATCH] fork: fix race in setting child\u0027s pgrp and tty\n\nIn fork, child should recopy parent\u0027s pgrp/tty after it has tasklist_lock.\nOtherwise following a setpgid() on the parent, *after* copy_signal(), the\nchild will own a stale pgrp (which may be reused); (eg.  if copy_mm()\nsleeps a long while due to memory pressure).  Similar issue for the tty.\n\nSigned-off-by: Oren Laadan \u003corenl@cs.columbia.edu\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b4b2641843db124637fa3d2cb2101982035dcc82",
      "tree": "fe8ed223f2e1828a6d14090711bad1c864aded09",
      "parents": [
        "59dac16fb95f09253b8086134443abeb439703cd"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:43 2006 -0800"
      },
      "message": "[PATCH] cpuset: fork hook fix\n\nFix obscure, never seen in real life, cpuset fork race.  The cpuset_fork()\ncall in fork.c was setting up the correct task-\u003ecpuset pointer after the\ntasklist_lock was dropped, which briefly exposed the newly forked process with\nan unsafe (copied from parent without locks or usage counter increment) cpuset\npointer.\n\nIn theory, that exposed cpuset pointer could have been pointing at a cpuset\nthat was already freed and removed, and in theory another task that had been\nsitting on the tasklist_lock waiting to scan the task list could have raced\ndown the entire tasklist, found our new child at the far end, and dereferenced\nthat bogus cpuset pointer.\n\nTo fix, setup up the correct cpuset pointer in the new child by calling\ncpuset_fork() before the new task is linked into the tasklist, and with that,\nadd a fork failure case, to dereference that cpuset, if the fork fails along\nthe way, after cpuset_fork() was called.\n\nHad to remove a BUG_ON() from cpuset_exit(), because it was no longer valid -\nthe call to cpuset_exit() from a failed fork would not have PF_EXITING set.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e56d090310d7625ecb43a1eeebd479f04affb48b",
      "tree": "2f479215dff4a2d8f3a9ed85200a5bc4f51534be",
      "parents": [
        "4369ef3c3e9d3bd9b879580678778f558d481e90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 08 01:01:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:40 2006 -0800"
      },
      "message": "[PATCH] RCU signal handling\n\nRCU tasklist_lock and RCU signal handling: send signals RCU-read-locked\ninstead of tasklist_lock read-locked.  This is a scalability improvement on\nSMP and a preemption-latency improvement under PREEMPT_RCU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c4b8add83c93306b07d78469fd351dc462e4b66",
      "tree": "e99523b961cb84f0462057d329de27e1d85546e6",
      "parents": [
        "3148890bfa4f36c9949871264e06ef4d449eeff9"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Mon Nov 28 13:44:05 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:24 2005 -0800"
      },
      "message": "[PATCH] cpuset fork locking fix\n\nMove the cpuset_fork() call below the write_unlock_irq call in\nkernel/fork.c copy_process().\n\nSince the cpuset-dual-semaphore-locking-overhaul.patch, the cpuset_fork()\nroutine acquires task_lock(), so cannot be called while holding the\ntasklist_lock for write.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c13cf856cbe16aec3007604dc013cbf3a16c6686",
      "tree": "0d05f46a20de1abf59c02af4e819ccfae0a8d009",
      "parents": [
        "ff88a3b2f56ae4f3296ea957ea38f99f8bd0e5a8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 28 13:43:48 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] fork.c: proc_fork_connector() called under write_lock()\n\nDon\u0027t do that - it does GFP_KERNEL allocations, for a start.\n\n(Reported by Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e)\n\nAcked-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b0db14c536debd92328819fe6c51a49717e8440",
      "tree": "9fb2df9bc06a30bbc44d980614e441974be55660",
      "parents": [
        "689bcebfda16d7bace742740bfb3137fff30b529"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:20 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:43 2005 -0800"
      },
      "message": "[PATCH] unpaged: copy_page_range vma\n\nFor copy_one_pte\u0027s print_bad_pte to show the task correctly (instead of\n\"???\"), dup_mmap must pass down parent vma rather than child vma.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20dcae32439384b6863c626bb3b2a09bed65b33e",
      "tree": "9750c39119447fb32963448bf1935e1ba22b2f9d",
      "parents": [
        "4557398f8cbaf9f254cff747534b4724c7f75c4f"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Sun Nov 13 16:07:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:16 2005 -0800"
      },
      "message": "[PATCH] aio: remove kioctx from mm_struct\n\nSync iocbs have a life cycle that don\u0027t need a kioctx.  Their retrying, if\nany, is done in the context of their owner who has allocated them on the\nstack.\n\nThe sole user of a sync iocb\u0027s ctx reference was aio_complete() checking for\nan elevated iocb ref count that could never happen.  No path which grabs an\niocb ref has access to sync iocbs.\n\nIf we were to implement sync iocb cancelation it would be done by the owner of\nthe iocb using its on-stack reference.\n\nRemoving this chunk from aio_complete allows us to remove the entire kioctx\ninstance from mm_struct, reducing its size by a third.  On a i386 testing box\nthe slab size went from 768 to 504 bytes and from 5 to 8 per page.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nAcked-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "10ebffde3d3916026974352b7900e44afe2b243f",
      "tree": "ac88fa33694f5bea1b6958e1e56bcd4c9b95b002",
      "parents": [
        "a1261f54611ec4ad6a7ab7080f86747e3ac3685b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: introduce setup_thread_stack() and end_of_stack()\n\nencapsulates the rest of arch-dependent operations with thread_info access.\nTwo new helpers - setup_thread_stack() and end_of_stack().  For normal case\nthe former consists of copying thread_info of parent to new thread_info and\nthe latter returns pointer immediately past the end of thread_info.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1261f54611ec4ad6a7ab7080f86747e3ac3685b",
      "tree": "8a65c419da590e3712543f69284fb5f8cd613a37",
      "parents": [
        "7feacd53347c04aee789ba5d632eda0c3fc421c4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: introduce task_thread_info\n\nnew helper - task_thread_info(task).  On platforms that have thread_info\nallocated separately (i.e.  in default case) it simply returns\ntask-\u003ethread_info.  m68k wants (and for good reasons) to embed its thread_info\ninto task_struct.  So it will (in later patch) have task_thread_info() of its\nown.  For now we just add a macro for generic case and convert existing\ninstances of its body in core kernel to uses of new macro.  Obviously safe -\nall normal architectures get the same preprocessor output they used to get.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dedeb0029b9c83420fc1337d4ee53daa7b2a0ad4",
      "tree": "d87e66e1d6240cd412c20ecbc12f5b810c9807e4",
      "parents": [
        "b8ae48656db860d4c83a29aa7b0588fc89361935"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 07 14:09:01 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 07 14:09:01 2005 -0800"
      },
      "message": "[SPARC64] mm: context switch ptlock\n\nsparc64 is unique among architectures in taking the page_table_lock in\nits context switch (well, cris does too, but erroneously, and it\u0027s not\nyet SMP anyway).\n\nThis seems to be a private affair between switch_mm and activate_mm,\nusing page_table_lock as a per-mm lock, without any relation to its uses\nelsewhere.  That\u0027s fine, but comment it as such; and unlock sooner in\nswitch_mm, more like in activate_mm (preemption is disabled here).\n\nThere is a block of \"if (0)\"ed code in smp_flush_tlb_pending which would\nhave liked to rely on the page_table_lock, in switch_mm and elsewhere;\nbut its comment explains how dup_mmap\u0027s flush_tlb_mm defeated it.  And\nthough that could have been changed at any time over the past few years,\nnow the chance vanishes as we push the page_table_lock downwards, and\nperhaps split it per page table page.  Just delete that block of code.\n\nWhich leaves the mysterious spin_unlock_wait(\u0026oldmm-\u003epage_table_lock)\nin kernel/fork.c copy_mm.  Textual analysis (supported by Nick Piggin)\nsuggests that the comment was written by DaveM, and that it relates to\nthe defeated approach in the sparc64 smp_flush_tlb_pending.  Just delete\nthis block too.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9f46080c41d5f3f7c00b4e169ba4b0b2865258bf",
      "tree": "e2c029ef7f0cd5fb8ea9b78db3f7be5badaf59b1",
      "parents": [
        "49364ce2534418462d681ad99e52e79a00b0f40b"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Nov 07 00:59:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:35 2005 -0800"
      },
      "message": "[PATCH] Process Events Connector\n\nThis patch adds a connector that reports fork, exec, id change, and exit\nevents for all processes to userspace.  It replaces the fork_advisor patch\nthat ELSA is currently using.  Applications that may find these events\nuseful include accounting/auditing (e.g.  ELSA), system activity monitoring\n(e.g.  top), security, and resource management (e.g.  CKRM).\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c74df32c724a1652ad8399b4891bb02c9d43743a",
      "tree": "5a79d56fdcf7dc2053a277dbf6db7c3b339e9659",
      "parents": [
        "1bb3630e89cb8a7b3d3807629c20c5bad88290ff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: ptd_alloc take ptlock\n\nSecond step in pushing down the page_table_lock.  Remove the temporary\nbridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not\nto hold page_table_lock, whether it\u0027s on init_mm or a user mm; take\npage_table_lock internally to check if a racing task already allocated.\n\nConvert their callers from common code.  But avoid coming back to change them\nagain later: instead of moving the spin_lock(\u0026mm-\u003epage_table_lock) down,\nswitch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which\nencapsulate the mapping+locking and unlocking+unmapping together, and in the\nend may use alternatives to the mm page_table_lock itself.\n\nThese callers all hold mmap_sem (some exclusively, some not), so at no level\ncan a page table be whipped away from beneath them; and pte_alloc uses the\n\"atomic\" pmd_present to test whether it needs to allocate.  It appears that on\nall arches we can safely descend without page_table_lock.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ee78232501ea9de2b6c8f10d32c9a0fee541357",
      "tree": "2041a36a13bdd8b096dfbf52b63a87739ea97d6b",
      "parents": [
        "fd3e42fcc888a773572282575d2fdbf5cfd6216e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: dup_mmap down new mmap_sem\n\nOne anomaly remains from when Andrea rationalized the responsibilities of\nmmap_sem and page_table_lock: in dup_mmap we add vmas to the child holding its\npage_table_lock, but not the mmap_sem which normally guards the vma list and\nrbtree.  Which could be an issue for unuse_mm: though since it just walks down\nthe list (today with page_table_lock, tomorrow not), it\u0027s probably okay.  Will\nneed a memory barrier?  Oh, keep it simple, Nick and I agreed, no harm in\ntaking child\u0027s mmap_sem here.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd3e42fcc888a773572282575d2fdbf5cfd6216e",
      "tree": "ffe2c223b9200185eb67881582f784d534958883",
      "parents": [
        "ae859762332f19bfc06f4c4a1b1fefb41e9e1084"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: dup_mmap use oldmm more\n\nUse the parent\u0027s oldmm throughout dup_mmap, instead of perversely going back\nto current-\u003emm.  (Can you hear the sigh of relief from those mpnts?  Usually I\nsquash them, but not today.)\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "404351e67a9facb475abf1492245374a28d13e90",
      "tree": "5ef4e78b399b36a46eda339ad0cd27556fc5b9a2",
      "parents": [
        "fc2acab31be8e869b2d5f6de12f557f6f054f19c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: mm_init set_mm_counters\n\nHow is anon_rss initialized?  In dup_mmap, and by mm_alloc\u0027s memset; but\nthat\u0027s not so good if an mm_counter_t is a special type.  And how is rss\ninitialized?  By set_mm_counter, all over the place.  Come on, we just need to\ninitialize them both at once by set_mm_counter in mm_init (which follows the\nmemcpy when forking).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab50b8ed818016cfecd747d6d4bb9139986bc029",
      "tree": "33c666578c14dccce05b3f7a5538405098eebcc4",
      "parents": [
        "72866f6f277ec0ddd6df7a3b6ecdcf59a28de115"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: vm_stat_account unshackled\n\nThe original vm_stat_account has fallen into disuse, with only one user, and\nonly one user of vm_stat_unaccount.  It\u0027s easier to keep track if we convert\nthem all to __vm_stat_account, then free it from its __shackles.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d1209d049bbc3df66650f8417637be4f7b57b604",
      "tree": "0712622c596cd3ca93234e8eca661240b5fa042b",
      "parents": [
        "f9b25fabfddf142b5af8268692701d386cf37e4f"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Oct 19 21:23:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:04:31 2005 -0700"
      },
      "message": "[PATCH] Threads shouldn\u0027t inherit PF_NOFREEZE\n\nThe PF_NOFREEZE process flag should not be inherited when a thread is\nforked.  This patch (as585) removes the flag from the child.\n\nThis problem is starting to show up more and more as drivers turn to the\nkthread API instead of using kernel_thread().  As a result, their kernel\nthreads are now children of the kthread worker instead of modprobe, and\nthey inherit the PF_NOFREEZE flag.  This can cause problems during system\nsuspend; the kernel threads are not getting frozen as they ought to be.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "26ff6ad9786abf6f40a6d3cbb89753b4fa50cb00"
}
