)]}'
{
  "log": [
    {
      "commit": "6ff2d39b91aec3dcae951afa982059e3dd9b49dc",
      "tree": "8d480975d95adf85f3a87dd478e36e4ac0b0edd0",
      "parents": [
        "1d678f365dae28420fa7329a2a35390b3582678d"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Dec 01 13:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:25 2008 -0800"
      },
      "message": "lib/idr.c: fix rcu related race with idr_find\n\n2nd part of the fixes needed for\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11796.\n\nWhen the idr tree is either grown or shrunk, then the update to the number\nof layers and the top pointer were not atomic.  This race caused crashes.\n\nThe attached patch fixes that by replicating the layers counter in each\nlayer, thus idr_find doesn\u0027t need idp-\u003elayers anymore.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Clement Calmels \u003ccboulte@gmail.com\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9c46d6ea5ce138a886c3a0f10a46130afab75f5",
      "tree": "1eedc2428866fb0b3f9f864e52ffb6eaf00911a4",
      "parents": [
        "3219b3b7456d5cf15ba7b1fe7b1bcf15ce8840e2"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:48:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:42 2008 -0700"
      },
      "message": "idr: make idr_find rcu-safe\n\nMake idr_find rcu-safe: it can now be called inside an rcu_read critical\nsection.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nReviewed-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "944ca05c7b4972f2ebf37262e0f4933d178ad6db",
      "tree": "5fb7558b8247bb56b7c1781808e7eaf08e8fff4e",
      "parents": [
        "f098ad655f4dd8e3da98ffbeda9cedcc4459c01a"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:47:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:41 2008 -0700"
      },
      "message": "idr: error checking factorization\n\nDo some code factorization in the return code analysis.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2027d1abc25ff770cc3bc936abd33570ce85d85a",
      "tree": "0b98b112518d3325deaaad5e8ee78c001235471e",
      "parents": [
        "95b68dec0d52c7b8fea3698b3938cf3ab936436b"
      ],
      "author": {
        "name": "Nadia Derbey",
        "email": "Nadia.Derbey@bull.net",
        "time": "Fri Jul 25 01:47:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:41 2008 -0700"
      },
      "message": "idr: change the idr structure\n\nAfter scalability problems have been detected when using the sysV ipcs, I have\nproposed to use an RCU based implementation of the IDR api instead (see\nthreads http://lkml.org/lkml/2008/4/11/212 and\nhttp://lkml.org/lkml/2008/4/29/295).\n\nThis resulted in many people asking to convert the idr API and make it rcu\nsafe (because most of the code was duplicated and thus unmaintanable and\nunreviewable).\n\nSo here is a first attempt.\n\nThe important change wrt to the idr API itself is during idr removes: idr\nlayers are freed after a grace period, instead of being moved to the free\nlist.\n\nThe important change wrt to ipcs, is that idr_find() can now be called\nlocklessly inside a rcu read critical section.\n\nHere are the results I\u0027ve got for the pmsg test sent by Manfred:\n\n   2.6.25-rc3-mm1   2.6.25-rc3-mm1+   2.6.25-mm1   Patched 2.6.25-mm1\n1         1168441           1064021       876000               947488\n2         1094264            921059      1549592              1730685\n3         2082520           1738165      1694370              2324880\n4         2079929           1695521       404553              2400408\n5         2898758            406566       391283              3246580\n6         2921417            261275       263249              3752148\n7         3308761            126056       191742              4243142\n8         3329456            100129       141722              4275780\n\n1st column: stock 2.6.25-rc3-mm1\n2nd column: 2.6.25-rc3-mm1 + ipc patches (store ipcs into idrs)\n3nd column: stock 2.6.25-mm1\n4th column: 2.6.25-mm1 + this pacth series.\n\nThis patch:\n\nAdd an rcu_head to the idr_layer structure in order to free it after a grace\nperiod.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nReviewed-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Jim Houston \u003cjim.houston@comcast.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "199f0ca514f9c17668eec4f935c4ba24cd789f85",
      "tree": "54406e3eb5be58e3350d8f60a64ac78ec3990f97",
      "parents": [
        "801678c5a3b4c79236970bcca27c733f5559e0d1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Apr 29 01:03:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:25 2008 -0700"
      },
      "message": "idr: create idr_layer_cache at boot time\n\nAvoid a possible kmem_cache_create() failure by creating idr_layer_cache\nunconditionary at boot time rather than creating it on-demand when idr_init()\nis called the first time.\n\nThis change also enables us to eliminate the check every time idr_init() is\ncalled.\n\n[akpm@linux-foundation.org: rename init_id_cache() to idr_init_cache()]\n[akpm@linux-foundation.org: fix alpha build]\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23936cc0b5d89619c34c2dab11d8cf3d6f7ca028",
      "tree": "506ec36cc37d3bc7dbf0ca68d1b271f9247fa458",
      "parents": [
        "96d7fa421e6424ad9ef6d1d039375dc2edb63fe8"
      ],
      "author": {
        "name": "Kristian Hoegsberg",
        "email": "krh@redhat.com",
        "time": "Sun Jul 15 23:37:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "lib: add idr_remove_all\n\nRemove all ids from the given idr tree.  idr_destroy() only frees up\nunused, cached idp_layers, but this function will remove all id mappings\nand leave all idp_layers unused.\n\nA typical clean-up sequence for objects stored in an idr tree, will use\nidr_for_each() to free all objects, if necessay, then idr_remove_all() to\nremove all ids, and idr_destroy() to free up the cached idr_layers.\n\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96d7fa421e6424ad9ef6d1d039375dc2edb63fe8",
      "tree": "ba8a8200bda4576e1e4dcce2ff27a7a7a94723a2",
      "parents": [
        "de7d4f0e1172a72277d660fa0be59654ea02bed0"
      ],
      "author": {
        "name": "Kristian Hoegsberg",
        "email": "krh@redhat.com",
        "time": "Sun Jul 15 23:37:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:34 2007 -0700"
      },
      "message": "lib: add idr_for_each()\n\nThis patch adds an iterator function for the idr data structure.  Compared\nto just iterating through the idr with an integer and idr_find, this\niterator is (almost, but not quite) linear in the number of elements, as\nopposed to the number of integers in the range covered by the idr.  This\nmakes a difference for sparse idrs, but more importantly, it\u0027s a nicer way\nto iterate through the elements.\n\nThe drm subsystem is moving to idr for tracking contexts and drawables, and\nwith this change, we can use the idr exclusively for tracking these\nresources.\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72dba584b695d8bc8c1a50ed54ad4cba7c62314d",
      "tree": "b0938ea773953f869b22101bb021e5710d0a0fec",
      "parents": [
        "e33ac8bdb0c84fe7afd2c45537b763faf28c589e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:13 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:03 2007 -0700"
      },
      "message": "ida: implement idr based id allocator\n\nImplement idr based id allocator.  ida is used the same way idr is\nused but lacks id -\u003e ptr translation and thus consumes much less\nmemory.  struct ida_bitmap is attached as leaf nodes to idr tree which\nis managed by the idr code.  Each ida_bitmap is 128bytes long and\ncontains slightly less than a thousand slots.\n\nida is more aggressive with releasing extra resources acquired using\nida_pre_get().  After every successful id allocation, ida frees one\nreserved idr_layer if possible.  Reserved ida_bitmap is not freed\nautomatically but only one ida_bitmap is reserved and it\u0027s almost\nalways used right away.  Under most circumstances, ida won\u0027t hold on\nto memory for too long which isn\u0027t actively used.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e4d919188554a77c798a267e098059bc9aa39726",
      "tree": "bb5e47e09f5d107db44358ad668988f5ae768ade",
      "parents": [
        "9cebb5526833059f327d237a032422c762378b2a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:02 2006 -0700"
      },
      "message": "[PATCH] lockdep: locking init debugging improvement\n\nLocking init improvement:\n\n - introduce and use __SPIN_LOCK_UNLOCKED for array initializations,\n   to pass in the name string of locks, used by debugging\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": "5806f07cd2c32920d5105e0f9ff3117338f34eec",
      "tree": "65242ea629a19308656a3090fee6b513dfa0f723",
      "parents": [
        "c51c2752491e5e771de6c8861a85ba46752d7888"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Jun 26 00:27:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:34 2006 -0700"
      },
      "message": "[PATCH] lib: add idr_replace\n\nThis patch adds idr_replace() to replace an existing pointer in a single\noperation.\n\nDevice-mapper will use this to update the pointer it stored against a given\nid.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f668ab1acc05fc3f525b97db613b2d1f99efd957",
      "tree": "d27cc368f209e6a996443ce831bf822631efda33",
      "parents": [
        "9abdc4cd8a81a3c29e051eb12963757ac60bd440"
      ],
      "author": {
        "name": "Luben Tuikov",
        "email": "luben_tuikov@adaptec.com",
        "time": "Tue Nov 08 17:14:08 2005 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@r063144.stusta.swh.mhn.de",
        "time": "Tue Nov 08 17:14:08 2005 +0100"
      },
      "message": "include/linux: enclose idr.h in #ifndef\n\nThis patch encloses the idr.h header file in\n#ifndef __IDR_H__ macro.\n\nSigned-off-by: Luben Tuikov \u003cluben_tuikov@adaptec.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "fd4f2df24bc23e6b8fc069765b425c7dacf52347",
      "tree": "f7e993817030747c5e1000d46685ebd2eef11085",
      "parents": [
        "6daa0e28627abf362138244a620a821a9027d816"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:18:50 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: lib/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d3b35914aa54232b27e6a2b57d84092aadc5e86",
      "tree": "809be8fad6743a751964677e68c5c01af3198e4b",
      "parents": [
        "c0fef676bbd75e711711ed3ff5bebb7bfd1bdb00"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 23 12:57:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 23 16:38:39 2005 -0700"
      },
      "message": "[PATCH] inotify/idr leak fix\n\nFix a bug which was reported and diagnosed by\nStefan Jones \u003cstefan.jones@churchillrandoms.co.uk\u003e\n\nIDR trees include a cache of idr_layer objects.  There\u0027s no way to destroy\nthis cache, so when we discard an overall idr tree we end up leaking some\nmemory.\n\nAdd and use idr_destroy() for this.  v9fs and infiniband also need to use\nidr_destroy() to avoid leaks.\n\nOr, we make the cache global, like radix_tree_preload().  Which is probably\nbetter.  Later.\n\nCc: Eric Van Hensbergen \u003cericvh@ericvh.myip.org\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Robert Love \u003crml@novell.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
