)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "26ff6ad9786abf6f40a6d3cbb89753b4fa50cb00",
      "tree": "8abf9b85bc5f081460f05c3e8f76328dc690f167",
      "parents": [
        "fa72e26a640e551637f91122d782d5a85d514f5b"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Fri Sep 16 19:27:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:49:59 2005 -0700"
      },
      "message": "[PATCH] CPU hotplug breaks wake_up_new_task\n\nFix a problem wherein a new-born task is added to a dead CPU.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab2af1f5005069321c5d130f09cce577b03f43ef",
      "tree": "73a70ba486f522cd9eeeef376ede2b5a1c1b473b",
      "parents": [
        "6e72ad2c581de121cc7e772469e2a8f6b1fd4379"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: files struct with RCU\n\nPatch to eliminate struct files_struct.file_lock spinlock on the reader side\nand use rcu refcounting rcuref_xxx api for the f_count refcounter.  The\nupdates to the fdtable are done by allocating a new fdtable structure and\nsetting files-\u003efdt to point to the new structure.  The fdtable structure is\nprotected by RCU thereby allowing lock-free lookup.  For fd arrays/sets that\nare vmalloced, we use keventd to free them since RCU callbacks can\u0027t sleep.  A\nglobal list of fdtable to be freed is not scalable, so we use a per-cpu list.\nIf keventd is already handling the current cpu\u0027s work, we use a timer to defer\nqueueing of that work.\n\nSince the last publication, this patch has been re-written to avoid using\nexplicit memory barriers and use rcu_assign_pointer(), rcu_dereference()\npremitives instead.  This required that the fd information is kept in a\nseparate structure (fdtable) and updated atomically.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "badf16621c1f9d1ac753be056fce11b43d6e0be5",
      "tree": "3fdf833fdf2e3d3a439090743539680449ec3428",
      "parents": [
        "c0dfb2905126e9e94edebbce8d3e05001301f52d"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: break up files struct\n\nIn order for the RCU to work, the file table array, sets and their sizes must\nbe updated atomically.  Instead of ensuring this through too many memory\nbarriers, we put the arrays and their sizes in a separate structure.  This\npatch takes the first step of putting the file table elements in a separate\nstructure fdtable that is embedded withing files_struct.  It also changes all\nthe users to refer to the file table using files_fdtable() macro.  Subsequent\napplciation of RCU becomes easier after this.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0d62e6d5b3318b6b722121d945afa295f7201b5",
      "tree": "9dfed36c97bcdbeaf1576b62752bfcafbfae808a",
      "parents": [
        "f76baf9365bd66216bf0e0ebfc083e22eda6215b"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 09 13:02:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:31 2005 -0700"
      },
      "message": "[PATCH] fix disassociate_ctty vs. fork race\n\nRace is as follows. Process A forks process B, both being part of the same\nsession. Then, A calls disassociate_ctty while B forks C:\n\nA\t\t\t\tB\n\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\n\t\t\t\tfork()\n\t\t\t\t  copy_signal()\ndissasociate_ctty()\t\t....\n\t\t\t\t  attach_pid(p, PIDTYPE_SID, p-\u003esignal-\u003esession);\n\nNow, C can have current-\u003esignal-\u003etty pointing to a freed tty structure, as\nit hasn\u0027t yet been added to the session group (to have its controlling tty\ncleared on the diassociate_ctty() call).\n\nThis has shown up as an oops but could be even more serious.  I haven\u0027t\ntried to create a test case, but a customer has verified that the patch\nbelow resolves the issue, which was occuring quite frequently.  I\u0027ll try\nand post the test case if i can.\n\nThe patch simply checks for a NULL tty *after* it has been attached to the\nproper session group and clears it as necessary.  Alternatively, we could\nsimply do the tty assignment after the the process is added to the proper\nsession group.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b5d37ac02954572e80e09255bb5737277aaee8e",
      "tree": "6072a602430af9a95d2bcadf149bd41c8045ef67",
      "parents": [
        "1299232b5743da454c73853b90b3d2d83dce1737"
      ],
      "author": {
        "name": "Giancarlo Formicuccia",
        "email": "giancarlo.formicuccia@gmail.com",
        "time": "Fri Sep 09 13:01:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:56:43 2005 -0700"
      },
      "message": "[PATCH] Clear task_struct-\u003efs_excl on fork()\n\nAn oversight.  We don\u0027t want to carry the IO scheduler\u0027s \"we hold exclusive fs\nresources\" hint over to the child across fork().\n\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": "ed75e8d58010fdc06e2c3a81bfbebae92314c7e3",
      "tree": "3f6f8dc5a34c9e03f613d4b907e02802ab075a9e",
      "parents": [
        "94c80b2598dbd2b8a6fe5f5c2c3af1beb37f66c7"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "LaurentVivier@wanadoo.fr",
        "time": "Sat Sep 03 15:57:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:20 2005 -0700"
      },
      "message": "[PATCH] UML Support - Ptrace: adds the host SYSEMU support, for UML and general usage\n\n      Jeff Dike \u003cjdike@addtoit.com\u003e,\n      Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade_spam@yahoo.it\u003e,\n      Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\u003e\n\nAdds a new ptrace(2) mode, called PTRACE_SYSEMU, resembling PTRACE_SYSCALL\nexcept that the kernel does not execute the requested syscall; this is useful\nto improve performance for virtual environments, like UML, which want to run\nthe syscall on their own.\n\nIn fact, using PTRACE_SYSCALL means stopping child execution twice, on entry\nand on exit, and each time you also have two context switches; with SYSEMU you\navoid the 2nd stop and so save two context switches per syscall.\n\nAlso, some architectures don\u0027t have support in the host for changing the\nsyscall number via ptrace(), which is currently needed to skip syscall\nexecution (UML turns any syscall into getpid() to avoid it being executed on\nthe host).  Fixing that is hard, while SYSEMU is easier to implement.\n\n* This version of the patch includes some suggestions of Jeff Dike to avoid\n  adding any instructions to the syscall fast path, plus some other little\n  changes, by myself, to make it work even when the syscall is executed with\n  SYSENTER (but I\u0027m unsure about them). It has been widely tested for quite a\n  lot of time.\n\n* Various fixed were included to handle the various switches between\n  various states, i.e. when for instance a syscall entry is traced with one of\n  PT_SYSCALL / _SYSEMU / _SINGLESTEP and another one is used on exit.\n  Basically, this is done by remembering which one of them was used even after\n  the call to ptrace_notify().\n\n* We\u0027re combining TIF_SYSCALL_EMU with TIF_SYSCALL_TRACE or TIF_SINGLESTEP\n  to make do_syscall_trace() notice that the current syscall was started with\n  SYSEMU on entry, so that no notification ought to be done in the exit path;\n  this is a bit of a hack, so this problem is solved in another way in next\n  patches.\n\n* Also, the effects of the patch:\n\"Ptrace - i386: fix Syscall Audit interaction with singlestep\"\nare cancelled; they are restored back in the last patch of this series.\n\nDetailed descriptions of the patches doing this kind of processing follow (but\nI\u0027ve already summed everything up).\n\n* Fix behaviour when changing interception kind #1.\n\n  In do_syscall_trace(), we check the status of the TIF_SYSCALL_EMU flag\n  only after doing the debugger notification; but the debugger might have\n  changed the status of this flag because he continued execution with\n  PTRACE_SYSCALL, so this is wrong.  This patch fixes it by saving the flag\n  status before calling ptrace_notify().\n\n* Fix behaviour when changing interception kind #2:\n  avoid intercepting syscall on return when using SYSCALL again.\n\n  A guest process switching from using PTRACE_SYSEMU to PTRACE_SYSCALL\n  crashes.\n\n  The problem is in arch/i386/kernel/entry.S.  The current SYSEMU patch\n  inhibits the syscall-handler to be called, but does not prevent\n  do_syscall_trace() to be called after this for syscall completion\n  interception.\n\n  The appended patch fixes this.  It reuses the flag TIF_SYSCALL_EMU to\n  remember \"we come from PTRACE_SYSEMU and now are in PTRACE_SYSCALL\", since\n  the flag is unused in the depicted situation.\n\n* Fix behaviour when changing interception kind #3:\n  avoid intercepting syscall on return when using SINGLESTEP.\n\n  When testing 2.6.9 and the skas3.v6 patch, with my latest patch and had\n  problems with singlestepping on UML in SKAS with SYSEMU.  It looped\n  receiving SIGTRAPs without moving forward.  EIP of the traced process was\n  the same for all SIGTRAPs.\n\nWhat\u0027s missing is to handle switching from PTRACE_SYSCALL_EMU to\nPTRACE_SINGLESTEP in a way very similar to what is done for the change from\nPTRACE_SYSCALL_EMU to PTRACE_SYSCALL_TRACE.\n\nI.e., after calling ptrace(PTRACE_SYSEMU), on the return path, the debugger is\nnotified and then wake ups the process; the syscall is executed (or skipped,\nwhen do_syscall_trace() returns 0, i.e.  when using PTRACE_SYSEMU), and\ndo_syscall_trace() is called again.  Since we are on the return path of a\nSYSEMU\u0027d syscall, if the wake up is performed through ptrace(PTRACE_SYSCALL),\nwe must still avoid notifying the parent of the syscall exit.  Now, this\nbehaviour is extended even to resuming with PTRACE_SINGLESTEP.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b6bfcdb116f2cc2cab921fcac6d39d4022952d2",
      "tree": "b9bdc0f85d16bac6de043883880c203627bab9c5",
      "parents": [
        "70d1d47c47c4643af357cb44d0d891c1b765f2ab"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jul 12 13:58:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 12 16:00:58 2005 -0700"
      },
      "message": "[PATCH] lower VM_DONTCOPY total_vm\n\ndup_mmap of a VM_DONTCOPY vma forgot to lower the child\u0027s total_vm.  (But\nno way does this account for the recent report of total_vm seen too low.)\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": "22e2c507c301c3dbbcf91b4948b88f78842ee6c9",
      "tree": "9a97c91d1362e69703aa286021daffb8a5456f4c",
      "parents": [
        "020f46a39eb7b99a575b9f4d105fce2b142acdf1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Mon Jun 27 10:55:12 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:33:29 2005 -0700"
      },
      "message": "[PATCH] Update cfq io scheduler to time sliced design\n\nThis updates the CFQ io scheduler to the new time sliced design (cfq\nv3).  It provides full process fairness, while giving excellent\naggregate system throughput even for many competing processes.  It\nsupports io priorities, either inherited from the cpu nice value or set\ndirectly with the ioprio_get/set syscalls.  The latter closely mimic\nset/getpriority.\n\nThis import is based on my latest from -mm.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "476d139c218e44e045e4bc6d4cc02b010b343939",
      "tree": "82a6537b829b2b35156fba5a312f4e44273a4356",
      "parents": [
        "674311d5b411e9042df4fdf7aef0b3c8217b6240"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Jun 25 14:57:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:44 2005 -0700"
      },
      "message": "[PATCH] sched: consolidate sbe sbf\n\nConsolidate balance-on-exec with balance-on-fork.  This is made easy by the\nsched-domains RCU patches.\n\nAs well as the general goodness of code reduction, this allows the runqueues\nto be unlocked during balance-on-fork.\n\nschedstats is a problem.  Maybe just have balance-on-event instead of\ndistinguishing fork and exec?\n\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "45918e1a8bfcabc1cb4570b8df276655020eac45",
      "tree": "4caf6a8b634de389e758d2b4c037208f098b3141",
      "parents": [
        "91612e0df20a52f61db3cac280c153311b36df7a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jun 21 17:15:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:19 2005 -0700"
      },
      "message": "[PATCH] dup_mmap: update comment on new vma\n\nRemove part of comment on linking new vma in dup_mmap: since anon_vma rmap\ncame in, try_to_unmap_one knows the vma without needing find_vma.  But add\na comment to note that here vma is inserted without mmap_sem.\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": "1363c3cd8603a913a27e2995dccbd70d5312d8e6",
      "tree": "405e7fc1ef44678f3ca0a54c536d0457e6e80f45",
      "parents": [
        "e7c8d5c9955a4d2e88e36b640563f5d6d5aba48a"
      ],
      "author": {
        "name": "Wolfgang Wander",
        "email": "wwc@rentec.com",
        "time": "Tue Jun 21 17:14:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:16 2005 -0700"
      },
      "message": "[PATCH] Avoiding mmap fragmentation\n\nIngo recently introduced a great speedup for allocating new mmaps using the\nfree_area_cache pointer which boosts the specweb SSL benchmark by 4-5% and\ncauses huge performance increases in thread creation.\n\nThe downside of this patch is that it does lead to fragmentation in the\nmmap-ed areas (visible via /proc/self/maps), such that some applications\nthat work fine under 2.4 kernels quickly run out of memory on any 2.6\nkernel.\n\nThe problem is twofold:\n\n  1) the free_area_cache is used to continue a search for memory where\n     the last search ended.  Before the change new areas were always\n     searched from the base address on.\n\n     So now new small areas are cluttering holes of all sizes\n     throughout the whole mmap-able region whereas before small holes\n     tended to close holes near the base leaving holes far from the base\n     large and available for larger requests.\n\n  2) the free_area_cache also is set to the location of the last\n     munmap-ed area so in scenarios where we allocate e.g.  five regions of\n     1K each, then free regions 4 2 3 in this order the next request for 1K\n     will be placed in the position of the old region 3, whereas before we\n     appended it to the still active region 1, placing it at the location\n     of the old region 2.  Before we had 1 free region of 2K, now we only\n     get two free regions of 1K -\u003e fragmentation.\n\nThe patch addresses thes issues by introducing yet another cache descriptor\ncached_hole_size that contains the largest known hole size below the\ncurrent free_area_cache.  If a new request comes in the size is compared\nagainst the cached_hole_size and if the request can be filled with a hole\nbelow free_area_cache the search is started from the base instead.\n\nThe results look promising: Whereas 2.6.12-rc4 fragments quickly and my\n(earlier posted) leakme.c test program terminates after 50000+ iterations\nwith 96 distinct and fragmented maps in /proc/self/maps it performs nicely\n(as expected) with thread creation, Ingo\u0027s test_str02 with 20000 threads\nrequires 0.7s system time.\n\nTaking out Ingo\u0027s patch (un-patch available per request) by basically\ndeleting all mentions of free_area_cache from the kernel and starting the\nsearch for new memory always at the respective bases we observe: leakme\nterminates successfully with 11 distinctive hardly fragmented areas in\n/proc/self/maps but thread creating is gringdingly slow: 30+s(!) system\ntime for Ingo\u0027s test_str02 with 20000 threads.\n\nNow - drumroll ;-) the appended patch works fine with leakme: it ends with\nonly 7 distinct areas in /proc/self/maps and also thread creation seems\nsufficiently fast with 0.71s for 20000 threads.\n\nSigned-off-by: Wolfgang Wander \u003cwwc@rentec.com\u003e\nCredit-to: \"Richard Purdie\" \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e (partly)\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
