)]}'
{
  "log": [
    {
      "commit": "430d275a399175c7c0673459738979287ec1fd22",
      "tree": "e38f1e8b69ba5cad535a14edec4d0ff213bbc477",
      "parents": [
        "22e48eaf587d044ba311a73c6fe0d0deaa8fdb63"
      ],
      "author": {
        "name": "Peter Lund",
        "email": "firefly@vax64.dk",
        "time": "Tue Oct 16 23:29:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:56 2007 -0700"
      },
      "message": "avoid negative (and full-width) shifts in radix-tree.c\n\nNegative shifts are not allowed in C (the result is undefined).  Same thing\nwith full-width shifts.\n\nIt works on most platforms but not on the VAX with gcc 4.0.1 (it results in an\n\"operand reserved\" fault).\n\nShifting by more than the width of the value on the left is also not\nallowed.  I think the extra \u0027\u003e\u003e 1\u0027 tacked on at the end in the original\ncode was an attempt to work around that.  Getting rid of that is an extra\nfeature of this patch.\n\nHere\u0027s the chapter and verse, taken from the final draft of the C99\nstandard (\"6.5.7 Bitwise shift operators\", paragraph 3):\n\n  \"The integer promotions are performed on each of the operands. The\n  type of the result is that of the promoted left operand. If the\n  value of the right operand is negative or is greater than or equal\n  to the width of the promoted left operand, the behavior is\n  undefined.\"\n\nThank you to Jan-Benedict Glaw, Christoph Hellwig, Maciej Rozycki, Pekka\nEnberg, Andreas Schwab, and Christoph Lameter for review.  Special thanks\nto Andreas for spotting that my fix only removed half the undefined\nbehaviour.\n\nSigned-off-by: Peter Lund \u003cfirefly@vax64.dk\u003e\nChristoph Lameter \u003cclameter@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Andreas Schwab \u003cschwab@suse.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957",
      "tree": "191b4f45f926e44b882b1e87a9a85dc12230b892",
      "parents": [
        "b811c202a0edadaac7242ab834fe7ba409978ae7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 23:25:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "Slab API: remove useless ctor parameter and reorder parameters\n\nSlab constructors currently have a flags parameter that is never used.  And\nthe order of the arguments is opposite to other slab functions.  The object\npointer is placed before the kmem_cache pointer.\n\nConvert\n\n        ctor(void *object, struct kmem_cache *s, unsigned long flags)\n\nto\n\n        ctor(struct kmem_cache *s, void *object)\n\nthroughout the kernel\n\n[akpm@linux-foundation.org: coupla fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e12ba74d8ff3e2f73a583500d7095e406df4d093",
      "tree": "a0d3385b65f0b3e1e00b0bbf11b75e7538a93edb",
      "parents": [
        "c361be55b3128474aa66d31092db330b07539103"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 16 01:25:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:00 2007 -0700"
      },
      "message": "Group short-lived and reclaimable kernel allocations\n\nThis patch marks a number of allocations that are either short-lived such as\nnetwork buffers or are reclaimable such as inode allocations.  When something\nlike updatedb is called, long-lived and unmovable kernel allocations tend to\nbe spread throughout the address space which increases fragmentation.\n\nThis patch groups these allocations together as much as possible by adding a\nnew MIGRATE_TYPE.  The MIGRATE_RECLAIMABLE type is for allocations that can be\nreclaimed on demand, but not moved.  i.e.  they can be migrated by deleting\nthem and re-reading the information from elsewhere.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26fb1589cb0aaec3a0b4418c54f30c1a2b1781f6",
      "tree": "1486600f31a6f1387f4f5db276684f0b727eec89",
      "parents": [
        "a4b0672db3a698d0684ee6e54f44e2e162a3da1b"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Tue Oct 16 01:24:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "fix the max path calculation in radix-tree.c\n\nA while back, Nick Piggin introduced a patch to reduce the node memory\nusage for small files (commit cfd9b7df4abd3257c9e381b0e445817b26a51c0c):\n\n-#define RADIX_TREE_MAP_SHIFT\t6\n+#define RADIX_TREE_MAP_SHIFT\t(CONFIG_BASE_SMALL ? 4 : 6)\n\nUnfortunately, he didn\u0027t take into account the fact that the\ncalculation of the maximum path was based on an assumption of having\nto round up:\n\n#define RADIX_TREE_MAX_PATH (RADIX_TREE_INDEX_BITS/RADIX_TREE_MAP_SHIFT + 2)\n\nSo, if CONFIG_BASE_SMALL is set, you will end up with a\nRADIX_TREE_MAX_PATH that is one greater than necessary.  The practical\nupshot of this is just a bit of wasted memory (one long in the\nheight_to_maxindex array, an extra pre-allocated radix tree node per\ncpu, and extra stack usage in a couple of functions), but it seems\nworth getting right.\n\nIt\u0027s also worth noting that I never build with CONFIG_BASE_SMALL.\nWhat I did to test this was duplicate the code in a small user-space\nprogram and check the results of the calculations for max path and the\ncontents of the height_to_maxindex array.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0bc9875b701c588e448302d41181995c21e8040",
      "tree": "c320855d4c04bd51ded6b4888bc5895ab539165f",
      "parents": [
        "b55ed816235cf41c29159d22a4cdeec7deb5821c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:24:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "radix-tree: use indirect bit\n\nRather than sign direct radix-tree pointers with a special bit, sign the\nindirect one that hangs off the root.  This means that, given a lookup_slot\noperation, the invalid result will be differentiated from the valid\n(previously, valid results could have the bit either set or clear).\n\nThis does not affect slot lookups which occur under lock -- they can never\nreturn an invalid result.  Is needed in future for lockless pagecache.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6df8ba4f8a4c4abca9ccad10441d0dddbdff301c",
      "tree": "6ac5cd48d3400a9d32f8affd31106f7942df9547",
      "parents": [
        "f4e6b498d6e06742d72706ef50593a9c4dd72214"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Tue Oct 16 01:24:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:52 2007 -0700"
      },
      "message": "radixtree: introduce radix_tree_next_hole()\n\nIntroduce radix_tree_next_hole(root, index, max_scan) to scan radix tree for\nthe first hole.  It will be used in interleaved readahead.\n\nThe implementation is dumb and obviously correct.  It can help debug(and\ndocument) the possible smart one in future.\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "d7f0923d83dcabfc063257a281529cdbcd5eedb5",
      "tree": "e45e8134c4d3b8c9a80d652063aa296fc222f31d",
      "parents": [
        "faa63e9584df41020440756b8b90b7b63f95e4f6"
      ],
      "author": {
        "name": "David Chinner",
        "email": "dgc@sgi.com",
        "time": "Sat Jul 14 16:05:04 2007 +1000"
      },
      "committer": {
        "name": "Tim Shimmin",
        "email": "tes@chook.melbourne.sgi.com",
        "time": "Sat Jul 14 16:05:04 2007 +1000"
      },
      "message": "[LIB]: export radix_tree_preload()\n\nXFS filestreams functionality uses radix trees and the preload\nfunctions. XFS can be built as a module and hence we need\nradix_tree_preload() exported. radix_tree_preload_end() is a\nstatic inline, so it doesn\u0027t need exporting.\n\nSigned-Off-By: Dave Chinner \u003cdgc@sgi.com\u003e\nSigned-Off-By: Tim Shimmin \u003ctes@sgi.com\u003e\n"
    },
    {
      "commit": "8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d",
      "tree": "f4e305edaedbde05774bb1e4acd89a9475661d2e",
      "parents": [
        "f37bc2712b54ec641e0c0c8634f1a4b61d9956c0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:35:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "Add suspend-related notifications for CPU hotplug\n\nSince nonboot CPUs are now disabled after tasks and devices have been\nfrozen and the CPU hotplug infrastructure is used for this purpose, we need\nspecial CPU hotplug notifications that will help the CPU-hotplug-aware\nsubsystems distinguish normal CPU hotplug events from CPU hotplug events\nrelated to a system-wide suspend or resume operation in progress.  This\npatch introduces such notifications and causes them to be used during\nsuspend and resume transitions.  It also changes all of the\nCPU-hotplug-aware subsystems to take these notifications into consideration\n(for now they are handled in the same way as the corresponding \"normal\"\nones).\n\n[oleg@tv-sign.ru: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02316067852187b8bec781bec07410e91af79627",
      "tree": "856e3f4610c91a6548bf3bf5c70ecbc0b28a4145",
      "parents": [
        "a38a44c1a93078fc5fadc4ac2df8dea4697069e2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 06 20:38:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:39 2006 -0800"
      },
      "message": "[PATCH] hotplug CPU: clean up hotcpu_notifier() use\n\nThere was lots of #ifdef noise in the kernel due to hotcpu_notifier(fn,\nprio) not correctly marking \u0027fn\u0027 as used in the !HOTPLUG_CPU case, and thus\ngenerating compiler warnings of unused symbols, hence forcing people to add\n#ifdefs.\n\nthe compiler can skip truly unused functions just fine:\n\n    text    data     bss     dec     hex filename\n 1624412  728710 3674856 6027978  5bfaca vmlinux.before\n 1624412  728710 3674856 6027978  5bfaca vmlinux.after\n\n[akpm@osdl.org: topology.c fix]\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": "7cf9c2c76c1a17b32f2da85b50cd4fe468ed44b5",
      "tree": "c3ed3e92e21f19ef744c9ea6829f4ff8d06e9f14",
      "parents": [
        "36de6437866bbb1d37e2312ff4f95ee4ed6d2b61"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Dec 06 20:33:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] radix-tree: RCU lockless readside\n\nMake radix tree lookups safe to be performed without locks.  Readers are\nprotected against nodes being deleted by using RCU based freeing.  Readers\nare protected against new node insertion by using memory barriers to ensure\nthe node itself will be properly written before it is visible in the radix\ntree.\n\nEach radix tree node keeps a record of their height (above leaf nodes).\nThis height does not change after insertion -- when the radix tree is\nextended, higher nodes are only inserted in the top.  So a lookup can take\nthe pointer to what is *now* the root node, and traverse down it even if\nthe tree is concurrently extended and this node becomes a subtree of a new\nroot.\n\n\"Direct\" pointers (tree height of 0, where root-\u003ernode points directly to\nthe data item) are handled by using the low bit of the pointer to signal\nwhether rnode is a direct pointer or a pointer to a radix tree node.\n\nWhen a reader wants to traverse the next branch, they will take a copy of\nthe pointer.  This pointer will be either NULL (and the branch is empty) or\nnon-NULL (and will point to a valid node).\n\n[akpm@osdl.org: cleanups]\n[Lee.Schermerhorn@hp.com: bugfixes, comments, simplifications]\n[clameter@sgi.com: build fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20241ad409fbc42d9e7f92f5fdb4783b7f1b36eb",
      "tree": "2f6a12f447a259ba820ab055926bfb22400cb67b",
      "parents": [
        "fa1f5ea860af34d74c1475eddde3364e71fac15d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Oct 10 22:47:57 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 10 15:37:23 2006 -0700"
      },
      "message": "[PATCH] gfp annotations: radix_tree_root\n\nstruct radix_tree_root has unused upper bits of -\u003egfp_mask reused for\ntags bitmap.  Annotated.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5dcd90b53d601a04482db9800336a0ccf190880",
      "tree": "b84936f569134612797cfa069401fe88dcac152d",
      "parents": [
        "3419b23a919698f75944d3e0d97eb1d9c51e4bb6"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Sun Jun 25 05:48:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:13 2006 -0700"
      },
      "message": "[PATCH] radixtree: normalize radix_tree_tag_get() return value\n\nIn radix_tree_tag_get(), return normalized value of 0/1, as indicated\nby its comment.\n\nSigned-off-by: Wu Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c91c3648c620003cb7b21b8858f36cd6132e168",
      "tree": "6572fedb9a18ba0b31695f1ba30a219621b6f20a",
      "parents": [
        "58ce1fd5805647a58a050bbbbd2252ea5ecb47b3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 23 02:03:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] buglet in radix_tree_tag_set\n\nThe comment states: \u0027Setting a tag on a not-present item is a BUG.\u0027 Hence\nif \u0027index\u0027 is larger than the maxindex; the item _cannot_ be presen; it\nshould also be a BUG.\n\nAlso, this allows the following statement (assume a fresh tree):\n\n  radix_tree_tag_set(root, 16, 1);\n\nto fail silently, but when preceded by:\n\n  radix_tree_insert(root, 32, item);\n\nit would BUG, because the height has been extended by the insert.\n\nIn neither case was 16 present.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cfd9b7df4abd3257c9e381b0e445817b26a51c0c",
      "tree": "cd419f98fbf555fbcd92baf7ca41d45a8744f071",
      "parents": [
        "612d6c19db2fd0dc97b0fa370613ecd4a305ffc3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jun 23 02:03:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] radix-tree: small\n\nReduce radix tree node memory usage by about a factor of 4 for small files\n(\u003c 64K).  There are pointer traversal and memory usage costs for large\nfiles with dense pagecache.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "612d6c19db2fd0dc97b0fa370613ecd4a305ffc3",
      "tree": "3ab670895b5c3e389ff922192a572cbfd8159d03",
      "parents": [
        "929f97276bcf7f4a95272ed08a85339b98ba210d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jun 23 02:03:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] radix-tree: direct data\n\nThe ability to have height 0 radix trees (a direct pointer to the data item\nrather than going through a full node-\u003eslot) quietly disappeared with\nold-2.6-bkcvs commit ffee171812d51652f9ba284302d9e5c5cc14bdfd.  On 64-bit\nmachines this causes nearly 600 bytes to be used for every \u003c\u003d 4K file in\npagecache.\n\nRe-introduce this feature, root tags stored in spare -\u003egfp_mask bits.\n\nSimplify radix_tree_delete\u0027s complex tag clearing arrangement (which would\nbecome even more complex) by just falling back to tag clearing functions\n(the pagecache radix-tree never uses this path anyway, so the icache\nsavings will mean it\u0027s actually a speedup).\n\nOn my 4GB G5, this saves 8MB RAM per kernel kernel source+object tree in\npagecache.\n\nPagecache lookup, insertion, and removal speed for small files will also be\nimproved.\n\nThis makes RCU radix tree harder, but it\u0027s worth it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "daff89f324755f87a060d5125a205c0755811ea9",
      "tree": "5b2734bd46c8d73a068b571ba1059e67df014825",
      "parents": [
        "57070d012cd425c3a71663528c56a436abd2d9da"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Sat Mar 25 03:08:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:59 2006 -0800"
      },
      "message": "[PATCH] radix-tree documentation cleanups\n\nDocumentation changes to help radix tree users avoid overrunning the tags\narray.  RADIX_TREE_TAGS moves to linux/radix-tree.h and is now known as\nRADIX_TREE_MAX_TAGS (Nick Piggin\u0027s idea).  Tag parameters are changed to\nunsigned, and some comments are updated.\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "90f9dd8f72773152b69042debd6b9ed6d224703a",
      "tree": "36a122a5672e0bb5f8f77e19619954f6073985b3",
      "parents": [
        "d89b8f40fca43cab829fea5c0e7d3951db2fb4bd"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 16 14:43:01 2006 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Feb 16 08:45:50 2006 -0800"
      },
      "message": "[PATCH] Fix over-zealous tag clearing in radix_tree_delete\n\nIf a tag is set for a node being deleted from a radix_tree, then that\ntag gets cleared from the parent of the node, even if it is set for some\nsiblings of the node begin deleted.\n\nThis patch changes the logic to include a test for any_tag_set similar\nto the logic a little futher down.  Care is taken to ensure that\n\u0027nr_cleared_tags\u0027 remains equals to the number of entries in the \u0027tags\u0027\narray which are set to \u00270\u0027 (which means that this tag is not set in the\ntree below pathp-\u003enode, and should be cleared at pathp-\u003enode and\npossibly above.\n\n[ Nick says: \"Linus FYI, I was able to modify the radix tree test\n  harness to catch the bug and can no longer trigger it after the fix.\n  Resulting code passes all other harness tests as well of course.\" ]\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a5f51c966720fa519c6ce69b169107dbc5769cdf",
      "tree": "084928ba54750ba3959e376988b503f02ca698b8",
      "parents": [
        "d5274261ea46f0aae93820fe36628249120d2f75"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:01:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:41 2006 -0800"
      },
      "message": "[PATCH] radix-tree: reduce tree height upon partial truncation\n\nShrink the height of a radix tree when it is partially truncated - we only do\nshrinkage of full truncation at present.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d5274261ea46f0aae93820fe36628249120d2f75",
      "tree": "e95c41295270c55ef27a3534894f066f31719ecc",
      "parents": [
        "6e954b9e90c3a7157c0c1457dd3919e2a1345d23"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:01:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:41 2006 -0800"
      },
      "message": "[PATCH] radix tree: early termination of tag clearing\n\nCorrectly determine the tags to be cleared in radix_tree_delete() so we\ndon\u0027t keep moving up the tree clearing tags that we don\u0027t need to.  For\nexample, if a tag is simply not set in the deleted item, nor anywhere up\nthe tree, radix_tree_delete() would attempt to clear it up the entire\nheight of the tree.\n\nAlso, tag_set() was made conditional so as not to dirty too many cachelines\nhigh up in the radix tree.  Instead, put this logic into\nradix_tree_tag_set().\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e954b9e90c3a7157c0c1457dd3919e2a1345d23",
      "tree": "61812f63c0b9a354fb9e7f8e9c11cb350afc4c4f",
      "parents": [
        "d4829cd5b4bd1ea58ba1bebad44d562f4027c290"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:01:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:41 2006 -0800"
      },
      "message": "[PATCH] radix tree: code consolidation\n\nIntroduce helper any_tag_set() rather than repeat the same code sequence 4\ntimes.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a43313668f62a06e14c915b8c8994fc8a1257394",
      "tree": "ae02e1ae145b3f277ead948c32b8b6d06a4e23d9",
      "parents": [
        "7361f4d8ca65d23a18ba009b4484612183332c2f"
      ],
      "author": {
        "name": "Hans Reiser",
        "email": "reiser@namesys.com",
        "time": "Mon Nov 07 00:59:29 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:37 2005 -0800"
      },
      "message": "[PATCH] reiser4: add radix_tree_lookup_slot()\n\nReiser4 uses radix trees to solve a trouble reiser4_readdir has serving nfs\nrequests.\n\nUnfortunately, radix tree api lacks an operation suitable for modifying\nexisting entry.  This patch adds radix_tree_lookup_slot which returns pointer\nto found item within the tree.  That location can be then updated.\n\nBoth Nick and Christoph Lameter have patches which need this as well.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "00b61f51922e432fd92a482ba1e0b5f8f326ef46",
      "tree": "8e639c633b9dfd826993ced8dad82e4578b25a6e",
      "parents": [
        "d533f671852cc4e481ea7070aa1a3b6fc75b8e44"
      ],
      "author": {
        "name": "Victor Fusco",
        "email": "victor@cetuc.puc-rio.br",
        "time": "Sat Sep 10 00:26:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:28 2005 -0700"
      },
      "message": "[PATCH] lib/radix-tree: Fix \"nocast type\" warnings\n\nFix the sparse warning \"implicit cast to nocast type\"\n\nSigned-off-by: Victor Fusco \u003cvictor@cetuc.puc-rio.br\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "32605a18152b246df483fadc1c23854addde8755",
      "tree": "cb13f4d0d9040120b5ef6a90c8b174a0619756d0",
      "parents": [
        "201b6264ff3865090747f58f48e087c3a35e0dbc"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo.tosatti@cyclades.com",
        "time": "Tue Sep 06 15:16:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:21 2005 -0700"
      },
      "message": "[PATCH] radix_tag_get(): differentiate between no present node and tag unset cases\n\nSimple patch to radix_tree_tag_get() to return different values for non\npresent node and tag unset.\n\nThe function is not used by any in-kernel callers (yet), but this\ninformation is definitely useful.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "201b6264ff3865090747f58f48e087c3a35e0dbc",
      "tree": "0633a10394d402779465c821d9de57a5e3df2a4b",
      "parents": [
        "987132bb0b136c93cef5f195e7371bb98df64709"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Sep 06 15:16:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:21 2005 -0700"
      },
      "message": "[PATCH] radix-tree: Remove unnecessary indirections and clean up code\n\n- There is frequent use of indirections in the radix code. This patch\n  removes those indirections, makes the code more readable and allows\n  the compilers to generate better code.\n\n- Removing indirections allows the removal of several casts.\n\n- Removing indirections allows the reduction of the radix_tree_path\n  size from 3 to 2 words.\n\n- Use pathp-\u003e consistently.\n\n- Remove unnecessary tmp variable in radix_tree_insert\n\n- Separate the upper layer processing from the lowest layer in __lookup()\n  in order to make it easier to understand what is going on and allow\n  compilers to generate better code for the loop.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c036527a630720063b67d9a65455e8caca2c8fa",
      "tree": "316e947f5f4efcda0205e48044ed1d12665eaed1",
      "parents": [
        "0db925af1db5f3dfe1691c35b39496e2baaff9c9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Thu Jul 07 17:56:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:46 2005 -0700"
      },
      "message": "[PATCH] mostly_read data section\n\nAdd a new section called \".data.read_mostly\" for data items that are read\nfrequently and rarely written to like cpumaps etc.\n\nIf these maps are placed in the .data section then these frequenly read\nitems may end up in cachelines with data is is frequently updated.  In that\ncase all processors in an SMP system must needlessly reload the cachelines\nagain and again containing elements of those frequently used variables.\n\nThe ability to share these cachelines will allow each cpu in an SMP system\nto keep local copies of those shared cachelines thereby optimizing\nperformance.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Shobhit Dayal \u003cshobhit@calsoftinc.com\u003e\nSigned-off-by: Christoph Lameter \u003cchristoph@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.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"
    }
  ]
}
