)]}'
{
  "log": [
    {
      "commit": "b95f1b31b75588306e32b2afd32166cad48f670b",
      "tree": "b5496144e41b117cfe5ae70b145b5351709ec4d0",
      "parents": [
        "b9e15bafdf1aa20791cdefdcbf1ccf7d7aa03aaa"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Oct 16 02:01:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "mm: Map most files to use export.h instead of module.h\n\nThe files changed within are only using the EXPORT_SYMBOL\nmacro variants.  They are not using core modular infrastructure\nand hence don\u0027t need module.h but only the export.h header.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd50cfa89153a67429935a15e577a5eb5f10dd1b",
      "tree": "0eb282956b1298bb8cf33a6bd7d996b091b6d0b1",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 07 07:18:45 2011 -0400"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Jun 07 21:38:07 2011 +0300"
      },
      "message": "slob/lockdep: Fix gfp flags passed to lockdep\n\nDoing a ktest.pl randconfig, I stumbled across the following bug\non boot up:\n\n------------[ cut here ]------------\nWARNING: at /home/rostedt/work/autotest/nobackup/linux-test.git/kernel/lockdep.c:2649 lockdep_trace_alloc+0xed/0x100()\nHardware name:\nModules linked in:\nPid: 0, comm: swapper Not tainted 3.0.0-rc1-test-00054-g1d68b67 #1\nCall Trace:\n [\u003cffffffff810626ad\u003e] warn_slowpath_common+0xad/0xf0\n [\u003cffffffff8106270a\u003e] warn_slowpath_null+0x1a/0x20\n [\u003cffffffff810b537d\u003e] lockdep_trace_alloc+0xed/0x100\n [\u003cffffffff81182fb0\u003e] __kmalloc_node+0x30/0x2f0\n [\u003cffffffff81153eda\u003e] pcpu_mem_alloc+0x13a/0x180\n [\u003cffffffff82be022c\u003e] percpu_init_late+0x48/0xc2\n [\u003cffffffff82bd630c\u003e] ? mem_init+0xd8/0xe3\n [\u003cffffffff82bbcc73\u003e] start_kernel+0x1c2/0x449\n [\u003cffffffff82bbc35c\u003e] x86_64_start_reservations+0x163/0x167\n [\u003cffffffff82bbc493\u003e] x86_64_start_kernel+0x133/0x142^M\n---[ end trace a7919e7f17c0a725 ]---\n\nThen I ran a ktest.pl config_bisect and it came up with this config\nas the problem:\n\n  CONFIG_SLOB\n\nLooking at what is different between SLOB and SLAB and SLUB, I found\nthat the gfp flags are masked against gfp_allowed_mask in\nSLAB and SLUB, but not SLOB.\n\nOn boot up, interrupts are disabled and lockdep will warn if some flags\nare set in gfp and interrupts are disabled. But these flags are masked\noff with the gfp_allowed_mask during boot. Because SLOB does not\nmask the flags against gfp_allowed_mask it triggers the warn on.\n\nAdding this mask fixes the bug. I also found that kmem_cache_alloc_node()\nwas missing both the mask and the lockdep check, and that was added too.\n\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "63310467a3d1ed6a0460ec1f4268126cd1ceec2e",
      "tree": "f5bf7e48fe119bffe1111b50767280c4af310505",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Thu Jan 20 11:12:26 2011 -0600"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sun Jan 23 21:00:05 2011 +0200"
      },
      "message": "mm: Remove support for kmem_cache_name()\n\nThe last user was ext4 and Eric Sandeen removed the call in a recent patch. See\nthe following URL for the discussion:\n\nhttp://marc.info/?l\u003dlinux-ext4\u0026m\u003d129546975702198\u0026w\u003d2\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "ccd35fb9f4da856b105ea0f1e0cab3702e8ae6ba",
      "tree": "acb71aa4ae7d1f1ed17bdd79033a6bad5e27186d",
      "parents": [
        "786a5e15b613a9cee4fc9139fc3113a5ab0fde79"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:17 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:16 2011 +1100"
      },
      "message": "kernel: kmem_ptr_validate considered harmful\n\nThis is a nasty and error prone API. It is no longer used, remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "8df275af8db8220d7e3f1bf97b6ac7aad05f96f0",
      "tree": "7f61075da7730d615724e791f6d63e193443bb76",
      "parents": [
        "c1d508365ea07f9f8849c7da5b02186601570f8b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Sun Aug 22 16:16:06 2010 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sat Oct 02 10:24:28 2010 +0300"
      },
      "message": "slob: fix gfp flags for order-0 page allocations\n\nkmalloc_node() may allocate higher order slob pages, but the __GFP_COMP\nbit is only passed to the page allocator and not represented in the\ntracepoint event.  The bit should be passed to trace_kmalloc_node() as\nwell.\n\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "b57bdda58cda0aaf6def042d101dd85977a286ed",
      "tree": "7f63afddb8275d67214d7a89cfc8a65815e79d42",
      "parents": [
        "cc41f5cede3c63836d1c0958204630b07f5b5ee7",
        "415cb47998c54195710d413c3d95e37a9339c1e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:08 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slub: Allow removal of slab caches during boot\n  Revert \"slub: Allow removal of slab caches during boot\"\n  slub numa: Fix rare allocation from unexpected node\n  slab: use deferable timers for its periodic housekeeping\n  slub: Use kmem_cache flags to detect if slab is in debugging mode.\n  slub: Allow removal of slab caches during boot\n  slub: Check kasprintf results in kmem_cache_init()\n  SLUB: Constants need UL\n  slub: Use a constant for a unspecified node.\n  SLOB: Free objects to their own list\n  slab: fix caller tracking on !CONFIG_DEBUG_SLAB \u0026\u0026 CONFIG_TRACING\n"
    },
    {
      "commit": "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
      "tree": "1f69733e5daab4915a76a41de0e4d1dc61e12cfb",
      "parents": [
        "3a3527b6461b1298cc53ce72f336346739297ac8",
        "fc9ea5a1e53ee54f681e226d735008e2a6f8f470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)\n  tracing/kprobes: unregister_trace_probe needs to be called under mutex\n  perf: expose event__process function\n  perf events: Fix mmap offset determination\n  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period\n  perf, powerpc: Convert the FSL driver to use local64_t\n  perf tools: Don\u0027t keep unreferenced maps when unmaps are detected\n  perf session: Invalidate last_match when removing threads from rb_tree\n  perf session: Free the ref_reloc_sym memory at the right place\n  x86,mmiotrace: Add support for tracing STOS instruction\n  perf, sched migration: Librarize task states and event headers helpers\n  perf, sched migration: Librarize the GUI class\n  perf, sched migration: Make the GUI class client agnostic\n  perf, sched migration: Make it vertically scrollable\n  perf, sched migration: Parameterize cpu height and spacing\n  perf, sched migration: Fix key bindings\n  perf, sched migration: Ignore unhandled task states\n  perf, sched migration: Handle ignored migrate out events\n  perf: New migration tool overview\n  tracing: Drop cpparg() macro\n  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n  ...\n\nFix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "d602dabaeba79df90cc67c32d5fe4ee0d5e2b73a",
      "tree": "7aa3b395f4c2934adde7b07a6678c347c84a7d35",
      "parents": [
        "1c5474a65bf15a4cb162dfff86d6d0b5a08a740c"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Sat Jul 10 18:05:33 2010 +0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jul 16 11:03:20 2010 +0300"
      },
      "message": "SLOB: Free objects to their own list\n\nSLOB has alloced smaller objects from their own list in reduce overall external\nfragmentation and increase repeatability, free to their own list also.\n\nThis is /proc/meminfo result in my test machine:\n\n  without this patch:\n  \u003d\u003d\u003d\n  MemTotal:        1030720 kB\n  MemFree:          750012 kB\n  Buffers:           15496 kB\n  Cached:           160396 kB\n  SwapCached:            0 kB\n  Active:           105024 kB\n  Inactive:         145604 kB\n  Active(anon):      74816 kB\n  Inactive(anon):     2180 kB\n  Active(file):      30208 kB\n  Inactive(file):   143424 kB\n  Unevictable:          16 kB\n  ....\n\n  with this patch:\n  \u003d\u003d\u003d\n  MemTotal:        1030720 kB\n  MemFree:          751908 kB\n  Buffers:           15492 kB\n  Cached:           160280 kB\n  SwapCached:            0 kB\n  Active:           102720 kB\n  Inactive:         146140 kB\n  Active(anon):      73168 kB\n  Inactive(anon):     2180 kB\n  Active(file):      29552 kB\n  Inactive(file):   143960 kB\n  Unevictable:          16 kB\n  ...\n\nThe result shows an improvement of 1 MB!\n\nAnd when I tested it on a embeded system with 64 MB, I found this path is never\ncalled during kernel bootup.\n\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "875352c94224c88f5aa28cb77206f993bd31b7a2",
      "tree": "945688f1860b157a2f09a2d8ef1e2ec5b91b18a3",
      "parents": [
        "b97181f24212f4c29197890ce1b2b9100bcc184d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 17:14:24 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 14 16:37:26 2010 -0700"
      },
      "message": "mm: remove all rcu head initializations\n\nRemove all rcu head inits. We don\u0027t care about the RCU head state before passing\nit to call_rcu() anyway. Only leave the \"on_stack\" variants so debugobjects can\nkeep track of objects on stack.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "039ca4e74a1cf60bd7487324a564ecf5c981f254",
      "tree": "61c6fa8409961d2e22ef9d04ac54442734ebd41a",
      "parents": [
        "30dbb20e68e6f7df974b77d2350ebad5eb6f6c9e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 26 17:22:17 2010 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jun 09 17:31:22 2010 +0200"
      },
      "message": "tracing: Remove kmemtrace ftrace plugin\n\nWe have been resisting new ftrace plugins and removing existing\nones, and kmemtrace has been superseded by kmem trace events\nand perf-kmem, so we remove it.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n[ remove kmemtrace from the makefile, handle slob too ]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "bac49ce42a33f53beb7cf04e9a0600879d6265ca",
      "tree": "fa13848cc4dbb3cc178767dac55c567107044c29",
      "parents": [
        "1f0ce8b3dd667dca720a47869f8110c298f0e5b8"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 19 12:01:43 2010 +0100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed May 19 22:03:13 2010 +0300"
      },
      "message": "mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to \u003clinux/slob_def.h\u003e\n\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "bbff2e433e80fae72c8d00d482927d52ec19ba33",
      "tree": "ff20e2ccf53e8ee9ca02f83680d9c00c893285dc",
      "parents": [
        "ed680c4ad478d0fee9740f7d029087f181346564"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Aug 06 11:36:25 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Aug 06 11:36:25 2009 +0300"
      },
      "message": "slab: remove duplicate kmem_cache_init_late() declarations\n\nkmem_cache_init_late() has been declared in slab.h\n\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nCC: Matt Mackall \u003cmpm@selenic.com\u003e\nCC: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "7ed9f7e5db58c6e8c2b4b738a75d5dcd8e17aad5",
      "tree": "c8ee9b63e1e8d3925b8a08a2b21a331434d183b5",
      "parents": [
        "28d0325ce6e0a52f53d8af687e6427fee59004d3"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 25 12:31:37 2009 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 26 12:10:47 2009 +0300"
      },
      "message": "fix RCU-callback-after-kmem_cache_destroy problem in sl[aou]b\n\nJesper noted that kmem_cache_destroy() invokes synchronize_rcu() rather than\nrcu_barrier() in the SLAB_DESTROY_BY_RCU case, which could result in RCU\ncallbacks accessing a kmem_cache after it had been destroyed.\n\nCc: \u003cstable@kernel.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nReported-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "e03ab9d415c47e1ff485b646f95604d3e3a91708",
      "tree": "61e9eecfbc46cf546a7e9c5ab206ae64fb860550",
      "parents": [
        "65795efbd380a832ae508b04dba8f8e53f0b84d9",
        "a234bdc9aecc299ba41ffe8023b3ea110df9f51b",
        "6746136520cd0827320a83e62d0a023a5a433650",
        "7303f240981888884412a97ac742772527356880",
        "95f8598931bd86a5775073db2fa2004b892dd3d0"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jun 17 08:30:15 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jun 17 08:30:15 2009 +0300"
      },
      "message": "Merge branches \u0027slab/documentation\u0027, \u0027slab/fixes\u0027, \u0027slob/cleanups\u0027 and \u0027slub/fixes\u0027 into for-linus\n"
    },
    {
      "commit": "6484eb3e2a81807722c5f28efef94d8338b7b996",
      "tree": "10ce36f412c2ff0c7eb399af1a189f8e354f56db",
      "parents": [
        "b3c466ce512923298ae8c0121d3e9f397a3f1210"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: do not check NUMA node ID when the caller knows the node is valid\n\nCallers of alloc_pages_node() can optionally specify -1 as a node to mean\n\"allocate from the current node\".  However, a number of the callers in\nfast paths know for a fact their node is valid.  To avoid a comparison and\nbranch, this patch adds alloc_pages_exact_node() that only checks the nid\nwith VM_BUG_ON().  Callers that know their node is valid are then\nconverted.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\t[for the SLOB NUMA bits]\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4374e616d28e65265a5b433ceece275449f3d2e3",
      "tree": "3261fe75f806c87b447f8273dd4c101bd656881d",
      "parents": [
        "d5cff635290aec9ad7e6ee546aa4fae895361cbb"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:23:17 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:03:30 2009 +0100"
      },
      "message": "kmemleak: Add the slob memory allocation/freeing hooks\n\nThis patch adds the callbacks to kmemleak_(alloc|free) functions from the\nslob allocator.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "7303f240981888884412a97ac742772527356880",
      "tree": "e5bcc86cf4e33e862dbcb37787ed9a8f2ec2b32b",
      "parents": [
        "ce8a7424d23a36f043d0de8484f888971c831119"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon May 11 09:59:34 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon May 11 09:59:34 2009 +0300"
      },
      "message": "slob: use PG_slab for identifying SLOB pages\n\nFor the sake of consistency.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "1f0532eb617d28f65c93593a1491f662f14f7eac",
      "tree": "6023123bae2ed717b35c1c70be0de692e439bf80",
      "parents": [
        "1eb5ac6466d4be7b15b38ce3ab709600f1bc891f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue May 05 19:13:45 2009 +1000"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed May 06 10:23:17 2009 +0300"
      },
      "message": "mm: SLOB fix reclaim_state\n\nSLOB does not correctly account reclaim_state.reclaimed_slab, so it will\nbreak memory reclaim. Account it like SLAB does.\n\nCc: stable@kernel.org\nCc: linux-mm@kvack.org\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "02af61bb50f5d5f0322dbe5ab2a0d75808d25c7b",
      "tree": "fa087ed8a584d7b66016e6a1421e538369d52e5a",
      "parents": [
        "abd41443ac76d3e9c29a8c1d9e9a3312306cc55e"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Apr 10 14:26:18 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Apr 12 15:22:55 2009 +0200"
      },
      "message": "tracing, kmemtrace: Separate include/trace/kmemtrace.h to kmemtrace part and tracepoint part\n\nImpact: refactor code for future changes\n\nCurrent kmemtrace.h is used both as header file of kmemtrace and kmem\u0027s\ntracepoints definition.\n\nTracepoints\u0027 definition file may be used by other code, and should only have\ndefinition of tracepoint.\n\nWe can separate include/trace/kmemtrace.h into 2 files:\n\n  include/linux/kmemtrace.h: header file for kmemtrace\n  include/trace/kmem.h:      definition of kmem tracepoints\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nAcked-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c49DEE68A.5040902@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2121db74ba0fd2259f0e2265511684fadda9ac49",
      "tree": "823401f3bce7018535ceea69103a28accd5794f7",
      "parents": [
        "c826e3cd0c931d60d548f2468122da570d145556"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Mar 25 11:05:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:10 2009 +0200"
      },
      "message": "kmemtrace: trace kfree() calls with NULL or zero-length objects\n\nImpact: also output kfree(NULL) entries\n\nThis patch moves the trace_kfree() calls before the ZERO_OR_NULL_PTR\ncheck so that we can trace call-sites that call kfree() with NULL many\ntimes which might be an indication of a bug.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c1237971957.30175.18.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca2b84cb3c4a0d4d2143b46ec072cdff5d1b3b87",
      "tree": "7163bac040f11c444b24cab53c4a784df73fa4f3",
      "parents": [
        "ac44021fccd8f1f2b267b004f23a2e8d7ef05f7b"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:06 2009 +0200"
      },
      "message": "kmemtrace: use tracepoints\n\nkmemtrace now uses tracepoints instead of markers. We no longer need to\nuse format specifiers to pass arguments.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\n[ folded: Use the new TP_PROTO and TP_ARGS to fix the build.     ]\n[ folded: fix build when CONFIG_KMEMTRACE is disabled.           ]\n[ folded: define tracepoints when CONFIG_TRACEPOINTS is enabled. ]\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003cae61c0f37156db8ec8dc0d5778018edde60a92e3.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8302294f43250dc337108c51882a6007f2b1e2e0",
      "tree": "85acd4440799c46a372df9cad170fa0c21e59096",
      "parents": [
        "4fe70410d9a219dabb47328effccae7e7f2a6e26",
        "2e572895bf3203e881356a4039ab0fa428ed2639"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 21:54:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 02 00:49:02 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core-v2\u0027 into tracing-for-linus\n\nConflicts:\n\tinclude/linux/slub_def.h\n\tlib/Kconfig.debug\n\tmm/slob.c\n\tmm/slub.c\n"
    },
    {
      "commit": "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
      "tree": "2a2ca00bed0fc22b4eb83db092c9178868d8f76b",
      "parents": [
        "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
        "2f8501815256af8498904e68bd0984b1afffd6f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)\n  lockdep: fix deadlock in lockdep_trace_alloc\n  lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n  lockdep: annotate reclaim context (__GFP_NOFS), fix\n  lockdep: build fix for !PROVE_LOCKING\n  lockstat: warn about disabled lock debugging\n  lockdep: use stringify.h\n  lockdep: simplify check_prev_add_irq()\n  lockdep: get_user_chars() redo\n  lockdep: simplify get_user_chars()\n  lockdep: add comments to mark_lock_irq()\n  lockdep: remove macro usage from mark_held_locks()\n  lockdep: fully reduce mark_lock_irq()\n  lockdep: merge the !_READ mark_lock_irq() helpers\n  lockdep: merge the _READ mark_lock_irq() helpers\n  lockdep: simplify mark_lock_irq() helpers #3\n  lockdep: further simplify mark_lock_irq() helpers\n  lockdep: simplify the mark_lock_irq() helpers\n  lockdep: split up mark_lock_irq()\n  lockdep: generate usage strings\n  lockdep: generate the state bit definitions\n  ...\n"
    },
    {
      "commit": "19cefdffbfe0f7e280f21e80875937e8700e99e2",
      "tree": "7a82d84609af22469d3f96d371d14b7dcf65d1f2",
      "parents": [
        "6700ec65c207068a81a535e9dca616fefac21671"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 15 06:03:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 22:59:44 2009 +0200"
      },
      "message": "lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n\nImpact: build fix\n\nfix typo in mm/slob.c:\n\n mm/slob.c:469: error: ‘flags’ undeclared (first use in this function)\n mm/slob.c:469: error: (Each undeclared identifier is reported only once\n mm/slob.c:469: error: for each function it appears in.)\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090128135457.350751756@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15a5b0a4912d98a9615ef457c7bde8d08195a771",
      "tree": "8a1b974d95acdc5a5c9cc96b9a5772f6b20bafda",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84",
        "6e9ed0cc4b963fde66ab47d9fb19147631e44555",
        "6fb8f424393025674fde7869b59f485d1e352182",
        "c0bdb232b23b51c23e551041510ad6bea5ce5a92",
        "1a00df4a2cc001dd9f45890e690548c24b2fa2d9",
        "e8120ff1ffc51102ead1f4c98a3fd5d26fefc722"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Mar 24 10:25:21 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Mar 24 10:25:21 2009 +0200"
      },
      "message": "Merge branches \u0027topic/slob/cleanups\u0027, \u0027topic/slob/fixes\u0027, \u0027topic/slub/core\u0027, \u0027topic/slub/cleanups\u0027 and \u0027topic/slub/perf\u0027 into for-linus\n"
    },
    {
      "commit": "6fb8f424393025674fde7869b59f485d1e352182",
      "tree": "1ba7de5a6c9cba9cf3c3e57b2355b56cb5eb670f",
      "parents": [
        "b578f3fcca1e78624dfb5f358776e63711d7fda2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Mon Mar 16 21:00:28 2009 +1100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Mar 23 10:40:45 2009 +0200"
      },
      "message": "slob: fix lockup in slob_free()\n\nDon\u0027t hold SLOB lock when freeing the page. Reduces lock hold width. See\nthe following thread for discussion of the bug:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d123709983214143\u0026w\u003d2\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "28b1bd1cbc33cae95a309691d814399a69cf3070",
      "tree": "6474d10332662f5302be0df8527c9e9e31e32a95",
      "parents": [
        "2602c3ba4508f528db024c1d209256513ea05de6",
        "1075414b06109a99b0e87601e84c74a95bd45681"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:49:19 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:49:19 2009 +0100"
      },
      "message": "Merge branch \u0027core/locking\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "cf40bd16fdad42c053040bcd3988f5fdedbb6c57",
      "tree": "d97ab25726981712be806d77650b7f65167cfc88",
      "parents": [
        "6f2b9b9a9d750a9175dc79c74bfed5add840983c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 21 08:12:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 14 23:27:49 2009 +0100"
      },
      "message": "lockdep: annotate reclaim context (__GFP_NOFS)\n\nHere is another version, with the incremental patch rolled up, and\nadded reclaim context annotation to kswapd, and allocation tracing\nto slab allocators (which may only ever reach the page allocator\nin rare cases, so it is good to put annotations here too).\n\nHaven\u0027t tested this version as such, but it should be getting closer\nto merge worthy ;)\n\n--\nAfter noticing some code in mm/filemap.c accidentally perform a __GFP_FS\nallocation when it should not have been, I thought it might be a good idea to\ntry to catch this kind of thing with lockdep.\n\nI coded up a little idea that seems to work. Unfortunately the system has to\nactually be in __GFP_FS page reclaim, then take the lock, before it will mark\nit. But at least that might still be some orders of magnitude more common\n(and more debuggable) than an actual deadlock condition, so we have some\nimprovement I hope (the concept is no less complete than discovery of a lock\u0027s\ninterrupt contexts).\n\nI guess we could even do the same thing with __GFP_IO (normal reclaim), and\neven GFP_NOIO locks too... but filesystems will have the most locks and fiddly\ncode paths, so let\u0027s start there and see how it goes.\n\nIt *seems* to work. I did a quick test.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: inconsistent lock state ]\n2.6.28-rc6-00007-ged31348-dirty #26\n---------------------------------\ninconsistent {in-reclaim-W} -\u003e {ov-reclaim-W} usage.\nmodprobe/8526 [HC0[0]:SC0[0]:HE1:SE1] takes:\n (testlock){--..}, at: [\u003cffffffffa0020055\u003e] brd_init+0x55/0x216 [brd]\n{in-reclaim-W} state was registered at:\n  [\u003cffffffff80267bdb\u003e] __lock_acquire+0x75b/0x1a60\n  [\u003cffffffff80268f71\u003e] lock_acquire+0x91/0xc0\n  [\u003cffffffff8070f0e1\u003e] mutex_lock_nested+0xb1/0x310\n  [\u003cffffffffa002002b\u003e] brd_init+0x2b/0x216 [brd]\n  [\u003cffffffff8020903b\u003e] _stext+0x3b/0x170\n  [\u003cffffffff80272ebf\u003e] sys_init_module+0xaf/0x1e0\n  [\u003cffffffff8020c3fb\u003e] system_call_fastpath+0x16/0x1b\n  [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\nirq event stamp: 3929\nhardirqs last  enabled at (3929): [\u003cffffffff8070f2b5\u003e] mutex_lock_nested+0x285/0x310\nhardirqs last disabled at (3928): [\u003cffffffff8070f089\u003e] mutex_lock_nested+0x59/0x310\nsoftirqs last  enabled at (3732): [\u003cffffffff8061f623\u003e] sk_filter+0x83/0xe0\nsoftirqs last disabled at (3730): [\u003cffffffff8061f5b6\u003e] sk_filter+0x16/0xe0\n\nother info that might help us debug this:\n1 lock held by modprobe/8526:\n #0:  (testlock){--..}, at: [\u003cffffffffa0020055\u003e] brd_init+0x55/0x216 [brd]\n\nstack backtrace:\nPid: 8526, comm: modprobe Not tainted 2.6.28-rc6-00007-ged31348-dirty #26\nCall Trace:\n [\u003cffffffff80265483\u003e] print_usage_bug+0x193/0x1d0\n [\u003cffffffff80266530\u003e] mark_lock+0xaf0/0xca0\n [\u003cffffffff80266735\u003e] mark_held_locks+0x55/0xc0\n [\u003cffffffffa0020000\u003e] ? brd_init+0x0/0x216 [brd]\n [\u003cffffffff802667ca\u003e] trace_reclaim_fs+0x2a/0x60\n [\u003cffffffff80285005\u003e] __alloc_pages_internal+0x475/0x580\n [\u003cffffffff8070f29e\u003e] ? mutex_lock_nested+0x26e/0x310\n [\u003cffffffffa0020000\u003e] ? brd_init+0x0/0x216 [brd]\n [\u003cffffffffa002006a\u003e] brd_init+0x6a/0x216 [brd]\n [\u003cffffffffa0020000\u003e] ? brd_init+0x0/0x216 [brd]\n [\u003cffffffff8020903b\u003e] _stext+0x3b/0x170\n [\u003cffffffff8070f8b9\u003e] ? mutex_unlock+0x9/0x10\n [\u003cffffffff8070f83d\u003e] ? __mutex_unlock_slowpath+0x10d/0x180\n [\u003cffffffff802669ec\u003e] ? trace_hardirqs_on_caller+0x12c/0x190\n [\u003cffffffff80272ebf\u003e] sys_init_module+0xaf/0x1e0\n [\u003cffffffff8020c3fb\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c511f740fe7031867f51831854360e8be1ba34c",
      "tree": "bd678fbc8117f751a3d1f8dc93b91c215ceaf66f",
      "parents": [
        "e7669b8e329255bbcb40af65b38e342825d97a46",
        "00f62f614bb713027b9296068d1879fbca511eb7",
        "b22f4858126a6aa852ad745b94f6b25dbdea708e",
        "071a0bc2ceace31266836801510879407a3701fa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 13 10:25:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 13 10:25:18 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/ring-buffer\u0027, \u0027tracing/sysprof\u0027, \u0027tracing/urgent\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "b1aabecd55931ee754f6a913969516b26a0e682e",
      "tree": "a52357aabb016960d80fce9a7ad0f78441e9f5c1",
      "parents": [
        "b578f3fcca1e78624dfb5f358776e63711d7fda2"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Feb 10 15:21:44 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Feb 12 17:50:46 2009 +0200"
      },
      "message": "mm: Export symbol ksize()\n\nCommit 7b2cd92adc5430b0c1adeb120971852b4ea1ab08 (\"crypto: api - Fix\nzeroing on free\") added modular user of ksize(). Export that to fix\ncrypto.ko compilation.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "6e9ed0cc4b963fde66ab47d9fb19147631e44555",
      "tree": "e758725d3d6202f96268770c89f7d348c7d23763",
      "parents": [
        "a6525042bfdfcab128bd91fad264de10fd24a55e"
      ],
      "author": {
        "name": "Américo Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Jan 19 02:00:38 2009 +0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jan 19 10:10:22 2009 +0200"
      },
      "message": "slob: clean up the code\n\n- Use NULL instead of plain 0;\n- Rename slob_page() to is_slob_page();\n- Define slob_page() to convert void* to struct slob_page*;\n- Rename slob_new_page() to slob_new_pages();\n- Define slob_free_pages() accordingly.\n\nCompile tests only.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "36994e58a48fb8f9651c7dc845a6de298aba5bfc",
      "tree": "fac4b8a1c30560e91460651487f3a57ef7f2b5cc",
      "parents": [
        "7a51cffbd10886c0557677dd916c090097c691ef"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Dec 29 13:42:23 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 30 09:36:13 2008 +0100"
      },
      "message": "tracing/kmemtrace: normalize the raw tracer event to the unified tracing API\n\nImpact: new tracer plugin\n\nThis patch adapts kmemtrace raw events tracing to the unified tracing API.\n\nTo enable and use this tracer, just do the following:\n\n echo kmemtrace \u003e /debugfs/tracing/current_tracer\n cat /debugfs/tracing/trace\n\nYou will have the following output:\n\n # tracer: kmemtrace\n #\n #\n # ALLOC  TYPE  REQ   GIVEN  FLAGS           POINTER         NODE    CALLER\n # FREE   |      |     |       |              |   |            |        |\n # |\n\ntype_id 1 call_site 18446744071565527833 ptr 18446612134395152256\ntype_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1\ntype_id 1 call_site 18446744071565585534 ptr 18446612134405955584\ntype_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1\ntype_id 0 call_site 18446744071565636711 ptr 18446612134345164672 bytes_req 240 bytes_alloc 240 gfp_flags 208 node -1\ntype_id 1 call_site 18446744071565585534 ptr 18446612134405955584\ntype_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1\ntype_id 0 call_site 18446744071565636711 ptr 18446612134345164912 bytes_req 240 bytes_alloc 240 gfp_flags 208 node -1\ntype_id 1 call_site 18446744071565585534 ptr 18446612134405955584\ntype_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1\ntype_id 0 call_site 18446744071565636711 ptr 18446612134345165152 bytes_req 240 bytes_alloc 240 gfp_flags 208 node -1\ntype_id 0 call_site 18446744071566144042 ptr 18446612134346191680 bytes_req 1304 bytes_alloc 1312 gfp_flags 208 node -1\ntype_id 1 call_site 18446744071565585534 ptr 18446612134405955584\ntype_id 0 call_site 18446744071565585597 ptr 18446612134405955584 bytes_req 4096 bytes_alloc 4096 gfp_flags 208 node -1\ntype_id 1 call_site 18446744071565585534 ptr 18446612134405955584\n\nThat was to stay backward compatible with the format output produced in\ninux/tracepoint.h.\n\nThis is the default ouput, but note that I tried something else.\n\nIf you change an option:\n\necho kmem_minimalistic \u003e /debugfs/trace_options\n\nand then cat /debugfs/trace, you will have the following output:\n\n # tracer: kmemtrace\n #\n #\n # ALLOC  TYPE  REQ   GIVEN  FLAGS           POINTER         NODE    CALLER\n # FREE   |      |     |       |              |   |            |        |\n # |\n\n   -      C                            0xffff88007c088780          file_free_rcu\n   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname\n   -      C                            0xffff88007cad6000          putname\n   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname\n   +      K    240    240   000000d0   0xffff8800790dc780     -1   d_alloc\n   -      C                            0xffff88007cad6000          putname\n   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname\n   +      K    240    240   000000d0   0xffff8800790dc870     -1   d_alloc\n   -      C                            0xffff88007cad6000          putname\n   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname\n   +      K    240    240   000000d0   0xffff8800790dc960     -1   d_alloc\n   +      K   1304   1312   000000d0   0xffff8800791d7340     -1   reiserfs_alloc_inode\n   -      C                            0xffff88007cad6000          putname\n   +      K   4096   4096   000000d0   0xffff88007cad6000     -1   getname\n   -      C                            0xffff88007cad6000          putname\n   +      K    992   1000   000000d0   0xffff880079045b58     -1   alloc_inode\n   +      K    768   1024   000080d0   0xffff88007c096400     -1   alloc_pipe_info\n   +      K    240    240   000000d0   0xffff8800790dca50     -1   d_alloc\n   +      K    272    320   000080d0   0xffff88007c088780     -1   get_empty_filp\n   +      K    272    320   000080d0   0xffff88007c088000     -1   get_empty_filp\n\nYeah I shall confess kmem_minimalistic should be: kmem_alternative.\n\nWhatever, I find it more readable but this a personal opinion of course.\nWe can drop it if you want.\n\nOn the ALLOC/FREE column, + means an allocation and - a free.\n\nOn the type column, you have K \u003d kmalloc, C \u003d cache, P \u003d page\n\nI would like the flags to be GFP_* strings but that would not be easy to not\nbreak the column with strings....\n\nAbout the node...it seems to always be -1. I don\u0027t know why but that shouldn\u0027t\nbe difficult to find.\n\nI moved linux/tracepoint.h to trace/tracepoint.h as well. I think that would\nbe more easy to find the tracer headers if they are all in their common\ndirectory.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ff9f9d9629bf9530fe2ab8d803d612761ffc059",
      "tree": "b22e3fddffbc0f58b1e1974f4819896d58b7bdaf",
      "parents": [
        "0f01f07fad4ee11d98fe6faa442afbeb0328a378",
        "a4900437f3d76761a1646cd90254ccb01714a9ed"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 29 15:16:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 29 15:16:24 2008 +0100"
      },
      "message": "Merge branch \u0027topic/kmemtrace\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 into tracing/kmemtrace\n"
    },
    {
      "commit": "3eae2cb24a96509e0a38cc48dc1538a2826f4e33",
      "tree": "d59f2c69d8b377c12222deba8b07d065ade73818",
      "parents": [
        "36555751c6751a5bdfd6d7bdf0648343bb1ef0de"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Sun Aug 10 20:14:07 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 15:34:05 2008 +0200"
      },
      "message": "kmemtrace: SLOB hooks.\n\nThis adds hooks for the SLOB allocator, to allow tracing with kmemtrace.\n\nWe also convert some inline functions to __always_inline to make sure\n_RET_IP_, which expands to __builtin_return_address(0), always works\nas expected.\n\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "5e18e2b8b3d453e68accc3e295643fe4b5bbc295",
      "tree": "f5569258355ed616ddc26c10b24c3dfad2d3c9d7",
      "parents": [
        "35024c384ba4faaeac361a1ffee05a1475f9a9ed"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Dec 15 13:54:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 15 16:27:06 2008 -0800"
      },
      "message": "slob: do not pass the SLAB flags as GFP in kmem_cache_create()\n\nThe kmem_cache_create() function in the slob allocator passes the SLAB\nflags as GFP flags to the slob_alloc() function.  The patch changes this\ncall to pass GFP_KERNEL as the other allocators seem to do.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70096a561d1e09120bae1f293f3632cedbfd5c68",
      "tree": "6c5f7474089ceeff06aa515a5b39cb38e7318efe",
      "parents": [
        "69849375d6b13e94d08cdc94b49b11fbab454a0e"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Wed Oct 08 14:51:57 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 09 12:18:27 2008 -0700"
      },
      "message": "SLOB: fix bogus ksize calculation fix\n\nThis fixes the previous fix, which was completely wrong on closer\ninspection. This version has been manually tested with a user-space\ntest harness and generates sane values. A nearly identical patch has\nbeen boot-tested.\n\nThe problem arose from changing how kmalloc/kfree handled alignment\npadding without updating ksize to match. This brings it in sync.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85ba94ba0592296053f7f2846812173424afe1cb",
      "tree": "08b988ee8ebae30f31830801a44a62e0eec4856e",
      "parents": [
        "e09e6e2b6a5daf653794926ab50a784b14b6de53"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Oct 07 11:37:35 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 07 11:19:23 2008 -0700"
      },
      "message": "SLOB: fix bogus ksize calculation\n\nSLOB\u0027s ksize calculation was braindamaged and generally harmlessly\nunderreported the allocation size. But for very small buffers, it could\nin fact overreport them, leading code depending on krealloc to overrun\nthe allocation and trample other data.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nTested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "231367fd9bccbb36309ab5bf5012e11a84231031",
      "tree": "31c9282fd2c4f17ec8f7d22bb975ba84e081a22a",
      "parents": [
        "6e86841d05f371b5b9b86ce76c02aaee83352298"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jul 22 20:21:16 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Jul 29 23:44:26 2008 +0300"
      },
      "message": "mm: unexport ksize\n\nThis patch removes the obsolete and no longer used exports of ksize.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9023cb7e8564d95a1893f8cb6895a293be9a71fe",
      "tree": "641e9918124a2a9e6642916ed9d23f97fbf95526",
      "parents": [
        "8a38082d21cbc5ec961da7dda195e98a9a064dcf"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "slob: record page flag overlays explicitly\n\nSLOB reuses two page bits for internal purposes, it overlays PG_active and\nPG_private.  This is hidden away in slob.c.  Document these overlays\nexplicitly in the main page-flags enum along with all the others.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "239f49c0800778c863585a103805c58afbad6748",
      "tree": "bc49ae2d4405b4431e6e7463b3eac52245793a02",
      "parents": [
        "f26a3988917913b3d11b2bd741601a2c64ab9204"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon May 19 22:12:08 2008 +0900"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon May 19 20:55:25 2008 +0300"
      },
      "message": "slob: Fix to return wrong pointer\n\nAlthough slob_alloc return NULL, __kmalloc_node returns NULL + align.\nBecause align always can be changed, it is very hard for debugging\nproblem of no page if it don\u0027t return NULL.\n\nWe have to return NULL in case of no page.\n\n[penberg@cs.helsinki.fi: fix formatting as suggested by Matt.]\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "0701a9e649bf0ffdac0a761d3c3d1041f5375d90",
      "tree": "1af2937107ca0ee1552523accac89c696125ba69",
      "parents": [
        "b69d3987f4360a5e7e9e55465b3cdd0cc204b79e"
      ],
      "author": {
        "name": "Yi Li",
        "email": "yi.li@analog.com",
        "time": "Fri Apr 25 19:49:21 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Apr 27 18:25:51 2008 +0300"
      },
      "message": "slob: fix bug - when slob allocates \"struct kmem_cache\", it does not force alignment.\n\nThis may trigger misaligned memory access exception.\n\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Yi Li \u003cyi.li@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "20cecbae44528d347c46e71f40650b75e0dcbc8e",
      "tree": "fae7206c9aff698b76c5c6aab796539d047947bc",
      "parents": [
        "679299b32dbf9bac4bdaedc850fb95d0f81b4963"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "slob: reduce external fragmentation by using three free lists\n\nBy putting smaller objects on their own list, we greatly reduce overall\nexternal fragmentation and increase repeatability.  This reduces total SLOB\noverhead from \u003e 50% to ~6% on a simple boot test.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "679299b32dbf9bac4bdaedc850fb95d0f81b4963",
      "tree": "1dc7edbdaf67611958273345b24d271f188371a8",
      "parents": [
        "8bc3be2751b4f74ab90a446da1912fd8204d53f7"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "slob: fix free block merging at head of subpage\n\nWe weren\u0027t merging freed blocks at the beginning of the free list.  Fixing\nthis showed a 2.5% efficiency improvement in a userspace test harness.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fd272550bd43cc1d7289ef0ab2fa50de137e767",
      "tree": "85c2ae7f4a7f5df3cc2cbd27056ff052ae0de5e2",
      "parents": [
        "94545baded0bfbabdc30a3a4cb48b3db479dd6ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Dec 09 10:14:36 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Dec 09 10:17:52 2007 -0800"
      },
      "message": "Avoid double memclear() in SLOB/SLUB\n\nBoth slob and slub react to __GFP_ZERO by clearing the allocation, which\nmeans that passing the GFP_ZERO bit down to the page allocator is just\nwasteful and pointless.\n\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8fcc93319faa09272185af100fb24e71b02ab03",
      "tree": "5696f15acbe0d8ad6895d7eef7566e72bacf8abc",
      "parents": [
        "4b01a0b1613beeb01e12c78feb69e98f0da0a69a"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Tue Dec 04 23:45:08 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Dec 05 09:21:18 2007 -0800"
      },
      "message": "Add EXPORT_SYMBOL(ksize);\n\nmm/slub.c exports ksize(), but mm/slob.c and mm/slab.c don\u0027t.\n\nIt\u0027s used by binfmt_flat, which can be built as a module.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d32ddd8f20e7d7a49c45c337c2079be03c77dc41",
      "tree": "a56dae80e045a8928bb8da74e6edb3874d297ee2",
      "parents": [
        "a3474224e6a01924be40a8255636ea5522c1023a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Nov 15 12:32:04 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 15 08:36:27 2007 -0800"
      },
      "message": "slob: fix memory corruption\n\nPreviously, it would be possible for prev-\u003enext to point to\n\u0026free_slob_pages, and thus we would try to move a list onto itself, and\nbad things would happen.\n\nIt seems a bit hairy to be doing list operations with the list marker as\nan entry, rather than a head, but...\n\nthis resolves the following crash:\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d9379\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\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": "ef8b4520bd9f8294ffce9abd6158085bde5dc902",
      "tree": "c099a16691ac06208f4d3d65b71e7adaf7361fcd",
      "parents": [
        "0da7e01f5f37f441cccd7c8c0586e06db0981907"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:24:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "Slab allocators: fail if ksize is called with a NULL parameter\n\nA NULL pointer means that the object was not allocated.  One cannot\ndetermine the size of an object that has not been allocated.  Currently we\nreturn 0 but we really should BUG() on attempts to determine the size of\nsomething nonexistent.\n\nkrealloc() interprets NULL to mean a zero sized object.  Handle that\nseparately in krealloc().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2408c55037c3f7d51a8a100025c47595e71b838c",
      "tree": "71940f72dbadf6a6744ffbd062ef4fd8754aa623",
      "parents": [
        "c92ff1bde06f69d59b40f3194016aee51cc5da55"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Tue Oct 16 01:24:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:53 2007 -0700"
      },
      "message": "{slub, slob}: use unlikely() for kfree(ZERO_OR_NULL_PTR) check\n\nConsidering kfree(NULL) would normally occur only in error paths and\nkfree(ZERO_SIZE_PTR) is uncommon as well, so let\u0027s use unlikely() for the\ncondition check in SLUB\u0027s and SLOB\u0027s kfree() to optimize for the common\ncase.  SLAB has this already.\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\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": "d6269543ef24aa012aa228c27af3adb074f7b36b",
      "tree": "5e0c24ce1dd5ed3947ea00b7863782e24848b8d3",
      "parents": [
        "41f9dc5c871600f53c8912b2975971d2a11c1c25"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sat Jul 21 04:37:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 17:49:16 2007 -0700"
      },
      "message": "slob: reduce list scanning\n\nThe version of SLOB in -mm always scans its free list from the beginning,\nwhich results in small allocations and free segments clustering at the\nbeginning of the list over time.  This causes the average search to scan\nover a large stretch at the beginning on each allocation.\n\nBy starting each page search where the last one left off, we evenly\ndistribute the allocations and greatly shorten the average search.\n\nWithout this patch, kernel compiles on a 1.5G machine take a large amount\nof system time for list scanning.  With this patch, compiles are within a\nfew seconds of performance of a SLAB kernel with no notable change in\nsystem time.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\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": "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": "81cda6626178cd55297831296ba8ecedbfd8b52d",
      "tree": "fa35a6a04db63080bbeb42f33f4b4a891b7fc96c",
      "parents": [
        "ce15fea8274acca06daa1674322d37a7d3f0036b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Jul 17 04:03:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:01 2007 -0700"
      },
      "message": "Slab allocators: Cleanup zeroing allocations\n\nIt becomes now easy to support the zeroing allocs with generic inline\nfunctions in slab.h.  Provide inline definitions to allow the continued use of\nkzalloc, kmem_cache_zalloc etc but remove other definitions of zeroing\nfunctions from the slab allocators and util.c.\n\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": "d07dbea46405b37d59495eb4de9d1056dcfb7c6d",
      "tree": "221376c8c5509a88f8942246180685d5c01baf46",
      "parents": [
        "6cb8f91320d3e720351c21741da795fed580b21b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Jul 17 04:03:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:01 2007 -0700"
      },
      "message": "Slab allocators: support __GFP_ZERO in all allocators\n\nA kernel convention for many allocators is that if __GFP_ZERO is passed to an\nallocator then the allocated memory should be zeroed.\n\nThis is currently not supported by the slab allocators.  The inconsistency\nmakes it difficult to implement in derived allocators such as in the uncached\nallocator and the pool allocators.\n\nIn addition the support zeroed allocations in the slab allocators does not\nhave a consistent API.  There are no zeroing allocator functions for NUMA node\nplacement (kmalloc_node, kmem_cache_alloc_node).  The zeroing allocations are\nonly provided for default allocs (kzalloc, kmem_cache_zalloc_node).\n__GFP_ZERO will make zeroing universally available and does not require any\naddititional functions.\n\nSo add the necessary logic to all slab allocators to support __GFP_ZERO.\n\nThe code is added to the hot path.  The gfp flags are on the stack and so the\ncacheline is readily available for checking if we want a zeroed object.\n\nZeroing while allocating is now a frequent operation and we seem to be\ngradually approaching a 1-1 parity between zeroing and not zeroing allocs.\nThe current tree has 3476 uses of kmalloc vs 2731 uses of kzalloc.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cb8f91320d3e720351c21741da795fed580b21b",
      "tree": "c9f73c8b82cd0f6c534939b8b9f36e8615b0ab2d",
      "parents": [
        "ef2ad80c7d255ed0449eda947c2d700635b7e0f5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Jul 17 04:03:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:01 2007 -0700"
      },
      "message": "Slab allocators: consistent ZERO_SIZE_PTR support and NULL result semantics\n\nDefine ZERO_OR_NULL_PTR macro to be able to remove the checks from the\nallocators.  Move ZERO_SIZE_PTR related stuff into slab.h.\n\nMake ZERO_SIZE_PTR work for all slab allocators and get rid of the\nWARN_ON_ONCE(size \u003d\u003d 0) that is still remaining in SLAB.\n\nMake slub return NULL like the other allocators if a too large memory segment\nis requested via __kmalloc.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef2ad80c7d255ed0449eda947c2d700635b7e0f5",
      "tree": "bc44916bdb25de29c8211566a4b5a1c041fa8ab6",
      "parents": [
        "d45f39cb06610ea456e1d689149b9becacda8b40"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Jul 17 04:03:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:01 2007 -0700"
      },
      "message": "Slab allocators: consolidate code for krealloc in mm/util.c\n\nThe size of a kmalloc object is readily available via ksize().  ksize is\nprovided by all allocators and thus we can implement krealloc in a generic\nway.\n\nImplement krealloc in mm/util.c and drop slab specific implementations of\nkrealloc.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84a01c2f8ea9bf210b961c6301e8e870a46505a6",
      "tree": "cf61ff3302d5bfa339f1449bc3302eded09349fd",
      "parents": [
        "5dc4ac6324094cd52dc77ddf88296a94b90bbafc"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sun Jul 15 23:38:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "slob: sparsemem support\n\nCurrently slob is disabled if we\u0027re using sparsemem, due to an earlier\npatch from Goto-san.  Slob and static sparsemem work without any trouble as\nit is, and the only hiccup is a missing slab_is_available() in the case of\nsparsemem extreme.  With this, we\u0027re rid of the last set of restrictions\nfor slob usage.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\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": "6193a2ff180920f84ee06977165ebf32431fc2d2",
      "tree": "d3c6423c50463ea741080a58a2e654cf103431f3",
      "parents": [
        "f7977793240d836e60ff413e94e6914f08e10941"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sun Jul 15 23:38:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "slob: initial NUMA support\n\nThis adds preliminary NUMA support to SLOB, primarily aimed at systems with\nsmall nodes (tested all the way down to a 128kB SRAM block), whether\nasymmetric or otherwise.\n\nWe follow the same conventions as SLAB/SLUB, preferring current node\nplacement for new pages, or with explicit placement, if a node has been\nspecified.  Presently on UP NUMA this has the side-effect of preferring\nnode#0 allocations (since numa_node_id() \u003d\u003d 0, though this could be\nreworked if we could hand off a pfn to determine node placement), so\nsingle-CPU NUMA systems will want to place smaller nodes further out in\nterms of node id.  Once a page has been bound to a node (via explicit node\nid typing), we only do block allocations from partial free pages that have\na matching node id in the page flags.\n\nThe current implementation does have some scalability problems, in that all\npartial free pages are tracked in the global freelist (with contention due\nto the single spinlock).  However, these are things that are being reworked\nfor SMP scalability first, while things like per-node freelists can easily\nbe built on top of this sort of functionality once it\u0027s been added.\n\nMore background can be found in:\n\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d118117916022379\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d118170446306199\u0026w\u003d2\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d118187859420048\u0026w\u003d2\n\nand subsequent threads.\n\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\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": "553948491c18413928b85a9025b92af80e7d61d6",
      "tree": "fcb6adcb743533c7d6818bbd13511062f6fda737",
      "parents": [
        "d87a133fc21d842e3cc285e6bbff727181abec81"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jul 15 23:38:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:35 2007 -0700"
      },
      "message": "slob: improved alignment handling\n\nRemove the core slob allocator\u0027s minimum alignment restrictions, and instead\nintroduce the alignment restrictions at the slab API layer.  This lets us heed\nthe ARCH_KMALLOC/SLAB_MINALIGN directives, and also use __alignof__ (unsigned\nlong) for the default alignment (which should allow relaxed alignment\narchitectures to take better advantage of SLOB\u0027s small minimum alignment).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d87a133fc21d842e3cc285e6bbff727181abec81",
      "tree": "1f89a5dab95c7813eca37039a94e39c73a797cdc",
      "parents": [
        "95b35127f13661abb0dc3459042cdb417d21e692"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jul 15 23:38:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:35 2007 -0700"
      },
      "message": "slob: remove bigblock tracking\n\nRemove the bigblock lists in favour of using compound pages and going directly\nto the page allocator.  Allocation size is stored in page-\u003eprivate, which also\nmakes ksize more accurate than it previously was.\n\nSaves ~.5K of code, and 12-24 bytes overhead per \u003e\u003d PAGE_SIZE allocation.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95b35127f13661abb0dc3459042cdb417d21e692",
      "tree": "d3a8a407cb7a54332edef69ae6077a2f23c5fffc",
      "parents": [
        "698827fa9f45019df1609bb686bc51c94e127fbc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jul 15 23:38:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:35 2007 -0700"
      },
      "message": "slob: rework freelist handling\n\nImprove slob by turning the freelist into a list of pages using struct page\nfields, then each page has a singly linked freelist of slob blocks via a\npointer in the struct page.\n\n- The first benefit is that the slob freelists can be indexed by a smaller\n  type (2 bytes, if the PAGE_SIZE is reasonable).\n\n- Next is that freeing is much quicker because it does not have to traverse\n  the entire freelist. Allocation can be slightly faster too, because we can\n  skip almost-full freelist pages completely.\n\n- Slob pages are then freed immediately when they become empty, rather than\n  having a periodic timer try to free them. This gives efficiency and memory\n  consumption improvement.\n\nThen, we don\u0027t encode seperate size and next fields into each slob block,\nrather we use the sign bit to distinguish between \"size\" or \"next\". Then\nsize 1 blocks contain a \"next\" offset, and others contain the \"size\" in\nthe first unit and \"next\" in the second unit.\n\n- This allows minimum slob allocation alignment to go from 8 bytes to 2\n  bytes on 32-bit and 12 bytes to 2 bytes on 64-bit. In practice, it is\n  best to align them to word size, however some architectures (eg. cris)\n  could gain space savings from turning off this extra alignment.\n\nThen, make kmalloc use its own slob_block at the front of the allocation\nin order to encode allocation size, rather than rely on not overwriting\nslob\u0027s existing header block.\n\n- This reduces kmalloc allocation overhead similarly to alignment reductions.\n\n- Decouples kmalloc layer from the slob allocator.\n\nThen, add a page flag specific to slob pages.\n\n- This means kfree of a page aligned slob block doesn\u0027t have to traverse\n  the bigblock list.\n\nI would get benchmarks, but my test box\u0027s network doesn\u0027t come up with\nslob before this patch. I think something is timing out. Anyway, things\nare faster after the patch.\n\nCode size goes up about 1K, however dynamic memory usage _should_ be\nlower even on relatively small memory systems.\n\nFuture todo item is to restore the cyclic free list search, rather than\nto always begin at the start.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a35afb830f8d71ec211531aeb9a621b09a2efb39",
      "tree": "198280081e1f8b2f6c450742a5075cc7904a3d58",
      "parents": [
        "5577bd8a85c8b7643a241789b14fafa9c8a6c7db"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Remove SLAB_CTOR_CONSTRUCTOR\n\nSLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c59def9f222d44bb7e2f0a559f2906191a0862d7",
      "tree": "51bc0c12906b13887c6e53d1e06b48b411443129",
      "parents": [
        "afc0cedbe9138e3e8b38bfa1e4dfd01a2c537d62"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:03 2007 -0700"
      },
      "message": "Slab allocators: Drop support for destructors\n\nThere is no user of destructors left.  There is no reason why we should keep\nchecking for destructors calls in the slab allocators.\n\nThe RFC for this patch was discussed at\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d117882364330705\u0026w\u003d2\n\nDestructors were mainly used for list management which required them to take a\nspinlock.  Taking a spinlock in a destructor is a bit risky since the slab\nallocators may run the destructors anytime they decide a slab is no longer\nneeded.\n\nPatch drops destructor support.  Any attempt to use a destructor will BUG().\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\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": "afc0cedbe9138e3e8b38bfa1e4dfd01a2c537d62",
      "tree": "0df03f95645ef76a387dd541da062b682319c921",
      "parents": [
        "b2cd64153b94473f6bd82448a68b8e8c041676ea"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Wed May 16 22:10:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:02 2007 -0700"
      },
      "message": "slob: implement RCU freeing\n\nThe SLOB allocator should implement SLAB_DESTROY_BY_RCU correctly, because\neven on UP, RCU freeing semantics are not equivalent to simply freeing\nimmediately.  This also allows SLOB to be used on SMP.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ab688c51226188f2d4ad4f789032c107944ef89",
      "tree": "f0793bf529ada8da81a764766996db90073a020f",
      "parents": [
        "5bc98594d59672303c4c9c07262ecc373dc374da"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Sun May 06 14:50:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slob: fix page order calculation on not 4KB page\n\nSLOB doesn\u0027t calculate correct page order when page size is not 4KB.  This\npatch fixes it with using get_order() instead of find_order() which is SLOB\nversion of get_order().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.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": "5af60839909b8e3b28ca7cd7912fa0b23475617f",
      "tree": "774b068673ad7bb6fc67d29339c9a07bf12a7789",
      "parents": [
        "96018fdacbfcaf6a0694d066b525f67c24025688"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "slab allocators: Remove obsolete SLAB_MUST_HWCACHE_ALIGN\n\nThis patch was recently posted to lkml and acked by Pekka.\n\nThe flag SLAB_MUST_HWCACHE_ALIGN is\n\n1. Never checked by SLAB at all.\n\n2. A duplicate of SLAB_HWCACHE_ALIGN for SLUB\n\n3. Fulfills the role of SLAB_HWCACHE_ALIGN for SLOB.\n\nThe only remaining use is in sparc64 and ppc64 and their use there\nreflects some earlier role that the slab flag once may have had. If\nits specified then SLAB_HWCACHE_ALIGN is also specified.\n\nThe flag is confusing, inconsistent and has no purpose.\n\nRemove it.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\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": "bc0055aee40ba40627361d8ffd8530d315920f18",
      "tree": "62e4f2821b7c7202df9d6b9e9ff9c7d01070ae5c",
      "parents": [
        "3a2cba993b0a04f258ab75e15cf3f08ada268dbd"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Sun May 06 14:49:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:54 2007 -0700"
      },
      "message": "slob: handle SLAB_PANIC flag\n\nkmem_cache_create() for slob doesn\u0027t handle SLAB_PANIC.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\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": "fd76bab2fa6d8f3ef6b326a4c6ae442fa21d30a4",
      "tree": "66f310ab9d7cdadfb79486700f1e01df7923ec14",
      "parents": [
        "e3ebadd95cb621e2c7436f3d3646447ac9d5c16d"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun May 06 14:48:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:50 2007 -0700"
      },
      "message": "slab: introduce krealloc\n\nThis introduce krealloc() that reallocates memory while keeping the contents\nunchanged.  The allocator avoids reallocation if the new size fits the\ncurrently used cache.  I also added a simple non-optimized version for\nmm/slob.c for compatibility.\n\n[akpm@linux-foundation.org: fix warnings]\nAcked-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcb4ddb46a4c66d64d091e7ffa951b2aa1ba537f",
      "tree": "80ba7ced73f4a329e8cb84dd2b0a192708a033f0",
      "parents": [
        "131612dfe7923bd0ce5f82d6ed8303a7ef96e574"
      ],
      "author": {
        "name": "Dimitri Gorokhovik",
        "email": "dimitri.gorokhovik@free.fr",
        "time": "Fri Dec 29 16:48:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:42 2006 -0800"
      },
      "message": "[PATCH] MM: SLOB is broken by recent cleanup of slab.h\n\nRecent cleanup of slab.h broke SLOB allocator: the routine kmem_cache_init\nhas now the __init attribute for both slab.c and slob.c.  This routine\ncannot be removed after init in the case of slob.c -- it serves as a timer\ncallback.\n\nProvide a separate timer callback routine, call it once from kmem_cache_init,\nkeep the __init attribute on the latter.\n\nSigned-off-by: Dimitri Gorokhovik \u003cdimitri.gorokhovik@free.fr\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": "55935a34a428a1497e3b37982e2782c09c6f914d",
      "tree": "270e68db0a0c8819986fd5150d942812a02d8f42",
      "parents": [
        "2e892f43ccb602e8ffad73396a1000f2040c9e0b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 13 00:34:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] More slab.h cleanups\n\nMore cleanups for slab.h\n\n1. Remove tabs from weird locations as suggested by Pekka\n\n2. Drop the check for NUMA and SLAB_DEBUG from the fallback section\n   as suggested by Pekka.\n\n3. Uses static inline for the fallback defs as also suggested by Pekka.\n\n4. Make kmem_ptr_valid take a const * argument.\n\n5. Separate the NUMA fallback definitions from the kmalloc_track fallback\n   definitions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2e892f43ccb602e8ffad73396a1000f2040c9e0b",
      "tree": "2f799810eccebeb5d432daed93ed9654238887b6",
      "parents": [
        "872225ca77519a243d7e19270b062b0ac53418d8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 13 00:34:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] Cleanup slab headers / API to allow easy addition of new slab allocators\n\nThis is a response to an earlier discussion on linux-mm about splitting\nslab.h components per allocator.  Patch is against 2.6.19-git11.  See\nhttp://marc.theaimsgroup.com/?l\u003dlinux-mm\u0026m\u003d116469577431008\u0026w\u003d2\n\nThis patch cleans up the slab header definitions.  We define the common\nfunctions of slob and slab in slab.h and put the extra definitions needed\nfor slab\u0027s kmalloc implementations in \u003clinux/slab_def.h\u003e.  In order to get\na greater set of common functions we add several empty functions to slob.c\nand also rename slob\u0027s kmalloc to __kmalloc.\n\nSlob does not need any special definitions since we introduce a fallback\ncase.  If there is no need for a slab implementation to provide its own\nkmalloc mess^H^H^Hacros then we simply fall back to __kmalloc functions.\nThat is sufficient for SLOB.\n\nSort the function in slab.h according to their functionality.  First the\nfunctions operating on struct kmem_cache * then the kmalloc related\nfunctions followed by special debug and fallback definitions.\n\nAlso redo a lot of comments.\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": "133d205a18b7a4d8cb52959c5310f6664277cf61",
      "tree": "be3056dedc3190d06647a07425e8fcdcce5da868",
      "parents": [
        "1a1d92c10dd24bbdc28b3d6e2d03ec199dd3a65b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 27 01:49:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:11 2006 -0700"
      },
      "message": "[PATCH] Make kmem_cache_destroy() return void\n\nun-, de-, -free, -destroy, -exit, etc functions should in general return\nvoid.  Also,\n\nThere is very little, say, filesystem driver code can do upon failed\nkmem_cache_destroy().  If it will be decided to BUG in this case, BUG\nshould be put in generic code, instead.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "972d1a7b140569084439a81265a0f15b74e924e0",
      "tree": "e86e676e407503ef3d98020a88bb925235f11434",
      "parents": [
        "8417bba4b151346ed475fcc923693c9e3be89063"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] ZVC: Support NR_SLAB_RECLAIMABLE / NR_SLAB_UNRECLAIMABLE\n\nRemove the atomic counter for slab_reclaim_pages and replace the counter\nand NR_SLAB with two ZVC counter that account for unreclaimable and\nreclaimable slab pages: NR_SLAB_RECLAIMABLE and NR_SLAB_UNRECLAIMABLE.\n\nChange the check in vmscan.c to refer to to NR_SLAB_RECLAIMABLE.  The\nintend seems to be to check for slab pages that could be freed.\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": "d00bcc98d7ec2c87391c9d9e1cca519ef64d33ef",
      "tree": "08b7d0fafba03d7b1d4d1d861897f78658aba173",
      "parents": [
        "39bbcb8f88154c4ac9853baf3f1134af4c987517"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] Extract the allocpercpu functions from the slab allocator\n\nThe allocpercpu functions __alloc_percpu and __free_percpu() are heavily\nusing the slab allocator.  However, they are conceptually slab.  This also\nsimplifies SLOB (at this point slob may be broken in mm.  This should fix\nit).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.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": "75129e297e861e6c61038aa4cdbf604b022de4ff",
      "tree": "48392ab6ae43547ae2d81a312eb22708af0dc515",
      "parents": [
        "4a3b98a422a20dedf3a2a40c44892d6e7e665157"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Tue Apr 18 22:20:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:49 2006 -0700"
      },
      "message": "[PATCH] mm/slob.c: for_each_possible_cpu(), not NR_CPUS\n\nConvert for-loops that explicitly reference \"NR_CPUS\" into the\npotentially more efficient for_each_possible_cpu() construct.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8c0f9a41f88da703ade33f9c1626a55c786e8bb",
      "tree": "8c2904597c61b873bfd85eed4ac196dd66e6f125",
      "parents": [
        "871751e25d956ad24f129ca972b7851feaa61d53"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Mar 25 03:06:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] slab: introduce kmem_cache_zalloc allocator\n\nIntroduce a memory-zeroing variant of kmem_cache_alloc.  The allocator\nalready exits in XFS and there are potential users for it so this patch\nmakes the allocator available for the general public.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9934a7939e1cdce62ece9ef7d25ebb3c55547fac",
      "tree": "89925b09c257207f4d839c68a4d2f9a764f4c8cc",
      "parents": [
        "30e9656cc340035e102fea46e1908689494b042d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 08 10:11:56 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 08 07:52:58 2006 -0800"
      },
      "message": "[PATCH] SLOB\u003dy \u0026\u0026 SMP\u003dy fix\n\nfix CONFIG_SLOB\u003dy (when CONFIG_SMP\u003dy): get rid of the \u0027align\u0027 parameter\nfrom its __alloc_percpu() implementation. Boot-tested on x86.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "10cef6029502915bdb3cf0821d425cf9dc30c817",
      "tree": "2c9dfef95d58b64dcf4cdf3c32b18164928b438e",
      "parents": [
        "30992c97ae9d01b17374fbfab76a869fb4bba500"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:01:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:41 2006 -0800"
      },
      "message": "[PATCH] slob: introduce the SLOB allocator\n\nconfigurable replacement for slab allocator\n\nThis adds a CONFIG_SLAB option under CONFIG_EMBEDDED.  When CONFIG_SLAB is\ndisabled, the kernel falls back to using the \u0027SLOB\u0027 allocator.\n\nSLOB is a traditional K\u0026R/UNIX allocator with a SLAB emulation layer,\nsimilar to the original Linux kmalloc allocator that SLAB replaced.  It\u0027s\nsignicantly smaller code and is more memory efficient.  But like all\nsimilar allocators, it scales poorly and suffers from fragmentation more\nthan SLAB, so it\u0027s only appropriate for small systems.\n\nIt\u0027s been tested extensively in the Linux-tiny tree.  I\u0027ve also\nstress-tested it with make -j 8 compiles on a 3G SMP+PREEMPT box (not\nrecommended).\n\nHere\u0027s a comparison for otherwise identical builds, showing SLOB saving\nnearly half a megabyte of RAM:\n\n$ size vmlinux*\n   text    data     bss     dec     hex filename\n3336372  529360  190812 4056544  3de5e0 vmlinux-slab\n3323208  527948  190684 4041840  3dac70 vmlinux-slob\n\n$ size mm/{slab,slob}.o\n   text    data     bss     dec     hex filename\n  13221     752      48   14021    36c5 mm/slab.o\n   1896      52       8    1956     7a4 mm/slob.o\n\n/proc/meminfo:\n                  SLAB          SLOB      delta\nMemTotal:        27964 kB      27980 kB     +16 kB\nMemFree:         24596 kB      25092 kB    +496 kB\nBuffers:            36 kB         36 kB       0 kB\nCached:           1188 kB       1188 kB       0 kB\nSwapCached:          0 kB          0 kB       0 kB\nActive:            608 kB        600 kB      -8 kB\nInactive:          808 kB        812 kB      +4 kB\nHighTotal:           0 kB          0 kB       0 kB\nHighFree:            0 kB          0 kB       0 kB\nLowTotal:        27964 kB      27980 kB     +16 kB\nLowFree:         24596 kB      25092 kB    +496 kB\nSwapTotal:           0 kB          0 kB       0 kB\nSwapFree:            0 kB          0 kB       0 kB\nDirty:               4 kB         12 kB      +8 kB\nWriteback:           0 kB          0 kB       0 kB\nMapped:            560 kB        556 kB      -4 kB\nSlab:             1756 kB          0 kB   -1756 kB\nCommitLimit:     13980 kB      13988 kB      +8 kB\nCommitted_AS:     4208 kB       4208 kB       0 kB\nPageTables:         28 kB         28 kB       0 kB\nVmallocTotal:  1007312 kB    1007312 kB       0 kB\nVmallocUsed:        48 kB         48 kB       0 kB\nVmallocChunk:  1007264 kB    1007264 kB       0 kB\n\n(this work has been sponsored in part by CELF)\n\nFrom: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n   Fix 32-bitness bugs in mm/slob.c.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\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"
    }
  ]
}
