)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
