)]}'
{
  "log": [
    {
      "commit": "b1ab41c4943008375c149a63602d7407f61de5b2",
      "tree": "365413de6ebbfee39aa90c069b7be14a4b9a699e",
      "parents": [
        "b52a834892f17b6c54c34ab65f1fad1a9229e764"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 02 15:44:58 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 02 11:21:10 2006 -0700"
      },
      "message": "[PATCH] slab.c: fix offslab_limit bug\n\nmm/slab.c\u0027s offlab_limit logic is totally broken.\n\nFirstly, \"offslab_limit\" is a global variable while it should either be\ncalculated in situ or should be passed in as a parameter.\n\nSecondly, the more serious problem with it is that the condition for\ncalculating it:\n\n               if (!(OFF_SLAB(sizes-\u003ecs_cachep))) {\n                       offslab_limit \u003d sizes-\u003ecs_size - sizeof(struct slab);\n                       offslab_limit /\u003d sizeof(kmem_bufctl_t);\n\nis in total disconnect with the condition that makes use of it:\n\n               /* More than offslab_limit objects will cause problems */\n               if ((flags \u0026 CFLGS_OFF_SLAB) \u0026\u0026 num \u003e offslab_limit)\n                       break;\n\nbut due to offslab_limit being a global variable this breakage was\nhidden.\n\nUp until lockdep came along and perturbed the slab sizes sufficiently so\nthat the first off-slab cache would still see a (non-calculated) zero\nvalue for offslab_limit and would panic with:\n\n  kmem_cache_create: couldn\u0027t create cache size-512.\n\n  Call Trace:\n   [\u003cffffffff8020a5b9\u003e] show_trace+0x96/0x1c8\n   [\u003cffffffff8020a8f0\u003e] dump_stack+0x13/0x15\n   [\u003cffffffff8022994f\u003e] panic+0x39/0x21a\n   [\u003cffffffff80270814\u003e] kmem_cache_create+0x5a0/0x5d0\n   [\u003cffffffff80aced62\u003e] kmem_cache_init+0x193/0x379\n   [\u003cffffffff80abf779\u003e] start_kernel+0x17f/0x218\n   [\u003cffffffff80abf263\u003e] _sinittext+0x263/0x26a\n\n  Kernel panic - not syncing: kmem_cache_create(): failed to create slab `size-512\u0027\n\nPaolo Ornati\u0027s config on x86_64 managed to trigger it.\n\nThe fix is to move the calculation to the place that makes use of it.\nThis also makes slab.o 54 bytes smaller.\n\nBtw., the check itself is quite silly. Its intention is to test whether\nthe number of objects per slab would be higher than the number of slab\ncontrol pointers possible. In theory it could be triggered: if someone\ntried to allocate 4-byte objects cache and explicitly requested with\nCFLGS_OFF_SLAB. So i kept the check.\n\nOut of historic interest i checked how old this bug was and it\u0027s\nancient, 10 years old! It is the oldest hidden and then truly triggering\nbugs i ever saw being fixed in the kernel!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4523a8b38089478f93bc053c31f678c63f5ee1b",
      "tree": "96f828650d2234aac76fe39ea38b7c7250c49349",
      "parents": [
        "40e59a61669a3cab9e0bd24644e29155d6b00970"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Mon May 15 11:41:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue May 16 07:59:32 2006 -0700"
      },
      "message": "[PATCH] slab: Fix kmem_cache_destroy() on NUMA\n\nWith CONFIG_NUMA set, kmem_cache_destroy() may fail and say \"Can\u0027t\nfree all objects.\"  The problem is caused by sequences such as the\nfollowing (suppose we are on a NUMA machine with two nodes, 0 and 1):\n\n * Allocate an object from cache on node 0.\n * Free the object on node 1.  The object is put into node 1\u0027s alien\n   array_cache for node 0.\n * Call kmem_cache_destroy(), which ultimately ends up in __cache_shrink().\n * __cache_shrink() does drain_cpu_caches(), which loops through all nodes.\n   For each node it drains the shared array_cache and then handles the\n   alien array_cache for the other node.\n\nHowever this means that node 0\u0027s shared array_cache will be drained,\nand then node 1 will move the contents of its alien[0] array_cache\ninto that same shared array_cache.  node 0\u0027s shared array_cache is\nnever looked at again, so the objects left there will appear to be in\nuse when __cache_shrink() calls __node_shrink() for node 0.  So\n__node_shrink() will return 1 and kmem_cache_destroy() will fail.\n\nThis patch fixes this by having drain_cpu_caches() do\ndrain_alien_cache() on every node before it does drain_array() on the\nnodes\u0027 shared array_caches.\n\nThe problem was originally reported by Or Gerlitz \u003cogerlitz@voltaire.com\u003e.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39d24e64263cd3211705d3b61ea4171c65030921",
      "tree": "b527b1395b070180b7f930c0a89530f11bce7b3c",
      "parents": [
        "48564e628bd7662d7a0b3ac81c41cd0e4cc36dae"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "kravetz@us.ibm.com",
        "time": "Mon May 15 09:44:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 15 11:20:56 2006 -0700"
      },
      "message": "[PATCH] add slab_is_available() routine for boot code\n\nslab_is_available() indicates slab based allocators are available for use.\nSPARSEMEM code needs to know this as it can be called at various times\nduring the boot process.\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "693f7d362055261882659475d2ef022e32edbff1",
      "tree": "c363d0ededf3ede77f7f35130931f5fc34ca0e30",
      "parents": [
        "4de0b1ee1b630318553248c4cfc78358720a5c84"
      ],
      "author": {
        "name": "shin, jacob",
        "email": "jacob.shin@amd.com",
        "time": "Fri Apr 28 10:54:37 2006 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Apr 28 09:00:35 2006 -0700"
      },
      "message": "[PATCH] slab: fix crash on __drain_alien_cahce() during CPU Hotplug\n\ntransfer_objects should only be called when all of the cpus in the\nnode are online.  CPU_DEAD notifier callback marks l3-\u003eshared to NULL.\n\nSigned-off-by: Jacob Shin \u003cjacob.shin@amd.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "83d722f7e198b034699b1500d98729beff930efd",
      "tree": "7d790a2fd62165373ec7bacde704837288e0bec3",
      "parents": [
        "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:30:03 2006 -0700"
      },
      "message": "[PATCH] Remove __devinit and __cpuinit from notifier_call definitions\n\nFew of the notifier_chain_register() callers use __init in the definition\nof notifier_call.  It is incorrect as the function definition should be\navailable after the initializations (they do not unregister them during\ninitializations).\n\nThis patch fixes all such usages to _not_ have the notifier_call __init\nsection.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6fef9da19b7acd46e04b7dbbba726b3febeca94",
      "tree": "bcbacfc4edc18a6c3e266717f3928ff9c5167002",
      "parents": [
        "fb7faf3313d527bf68ba2e7ff3a2b6ebf201af73"
      ],
      "author": {
        "name": "Luke Yang",
        "email": "luke.adi@gmail.com",
        "time": "Mon Apr 10 22:52:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:32 2006 -0700"
      },
      "message": "[PATCH] nommu: use compound page in slab allocator\n\nThe earlier patch to consolidate mmu and nommu page allocation and\nrefcounting by using compound pages for nommu allocations had a bug:\nkmalloc slabs who\u0027s pages were initially allocated by a non-__GFP_COMP\nallocator could be passed into mm/nommu.c kmalloc allocations which really\nwanted __GFP_COMP underlying pages.  Fix that by having nommu pass\n__GFP_COMP to all higher order slab allocations.\n\nSigned-off-by: Luke Yang \u003cluke.adi@gmail.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb7faf3313d527bf68ba2e7ff3a2b6ebf201af73",
      "tree": "ca4884d9fb0312eb19480b8319f2e01633298eda",
      "parents": [
        "5b74ada7eea1b0064d2b72384827853f349d803a"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Mon Apr 10 22:52:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:31 2006 -0700"
      },
      "message": "[PATCH] slab: add statistics for alien cache overflows\n\nAdd a statistics counter which is incremented everytime the alien cache\noverflows.  alien_cache limit is hardcoded to 12 right now.  We can use\nthis statistics to tune alien cache if needed in the future.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5b74ada7eea1b0064d2b72384827853f349d803a",
      "tree": "8f2909f8fefc1ed4436b918d9813159e96e4792d",
      "parents": [
        "a283a52520569195c2d26d75455cddab758f530b"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Mon Apr 10 22:52:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:31 2006 -0700"
      },
      "message": "[PATCH] slab: allocate node local memory for off-slab slabmanagement\n\nAllocate off-slab slab descriptors from node local memory.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nAcked-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": "40094fa65238291d51839326320aba997092ab1f",
      "tree": "37cb650caea9290dbecc27ab5732cd95f5e460d0",
      "parents": [
        "75babcacede876608f14ef1a20e795ce17ae637f"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:49:25 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:49:25 2006 +0200"
      },
      "message": "BUG_ON() Conversion in mm/slab.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "0a945022778f100115d0cb6234eb28fc1b15ccaf",
      "tree": "85df4b5f7dd8bf59557091379c59b23b09115bf6",
      "parents": [
        "631d6747e1d877a4baa924cb373b8b9511a53e5e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 01:56:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] for_each_possible_cpu: fixes for generic part\n\nreplaces for_each_cpu with for_each_possible_cpu().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0718dc2a82c865ca75975acabaf984057f9fd488",
      "tree": "0f7e8ed22ea26c79e17712c417593bdce04e7888",
      "parents": [
        "cafeb02e098ecd58fb0bd797b2c9fbba3edf54f8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sat Mar 25 03:06:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:50 2006 -0800"
      },
      "message": "[PATCH] slab: fix memory leak in alloc_kmemlist\n\nWe have had this memory leak for a while now.  The situation is complicated\nby the use of alloc_kmemlist() as a function to resize various caches by\ndo_tune_cpucache().\n\nWhat we do here is first of all make sure that we deallocate properly in\nthe loop over all the nodes.\n\nIf we are just resizing caches then we can simply return with -ENOMEM if an\nallocation fails.\n\nIf the cache is new then we need to rollback and remove all earlier\nallocations.\n\nWe detect that a cache is new by checking if the link to the global cache\nchain has been setup.  This is a bit hackish ....\n\n(also fix up too overlong lines that I added in the last patch...)\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cafeb02e098ecd58fb0bd797b2c9fbba3edf54f8",
      "tree": "f4d03a748184e24cb0ff4c9a56ba6b0eaefd78d3",
      "parents": [
        "e00946fe2351307eb3eda7a3343530f6d2d1af2e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sat Mar 25 03:06:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:50 2006 -0800"
      },
      "message": "[PATCH] alloc_kmemlist: Some cleanup in preparation for a real memory leak fix\n\nInspired by Jesper Juhl\u0027s patch from today\n\n1. Get rid of err\n\tWe do not set it to anything else but zero.\n\n2. Drop the CONFIG_NUMA stuff.\n\tThere are definitions for alloc_alien_cache and free_alien_cache()\n\tthat do the right thing for the non NUMA case.\n\n3. Better naming of variables.\n\n4. Remove redundant cachep-\u003enodelists[node] expressions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e00946fe2351307eb3eda7a3343530f6d2d1af2e",
      "tree": "1567b4abe0ed56fbd960943da2c52278ea196c02",
      "parents": [
        "3ded175a4b7a4548f3358dcf5f3ad65f63cdb4ed"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sat Mar 25 03:06:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] slab: Bypass free lists for __drain_alien_cache()\n\n__drain_alien_cache() currently drains objects by freeing them to the\n(remote) freelists of the original node.  However, each node also has a\nshared list containing objects to be used on any processor of that node.\nWe can avoid a number of remote node accesses by copying the pointers to\nthe free objects directly into the remote shared array.\n\nAnd while we are at it: Skip alien draining if the alien cache spinlock is\nalready taken.\n\nKiran reported that this is a performance benefit.\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": "3ded175a4b7a4548f3358dcf5f3ad65f63cdb4ed",
      "tree": "c27a3da70d638bcf32f75c28d1da3f1eb18cb617",
      "parents": [
        "c5e3b83e97be4e09961c0af101644643e5d03d17"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sat Mar 25 03:06:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] slab: add transfer_objects() function\n\nslabr_objects() can be used to transfer objects between various object\ncaches of the slab allocator.  It is currently only used during\n__cache_alloc() to retrieve elements from the shared array.  We will be\nusing it soon to transfer elements from the alien caches to the remote\nshared array.\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": "c5e3b83e97be4e09961c0af101644643e5d03d17",
      "tree": "29863b7ff7452d10f0af51c3ff7ef72235e81c90",
      "parents": [
        "40c07ae8daa659b8feb149c84731629386873c16"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Mar 25 03:06:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] mm: use kmem_cache_zalloc\n\nConvert mm/ to use the new kmem_cache_zalloc allocator.\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": "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": "871751e25d956ad24f129ca972b7851feaa61d53",
      "tree": "c3213a17481f601339ce0c81a22eebca0946c2c7",
      "parents": [
        "f52ac8fec8a13e207f675b0c16e0d5f800c1c204"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 25 03:06:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] slab: implement /proc/slab_allocators\n\nImplement /proc/slab_allocators.   It produces output like:\n\nidr_layer_cache: 80 idr_pre_get+0x33/0x4e\nbuffer_head: 2555 alloc_buffer_head+0x20/0x75\nmm_struct: 9 mm_alloc+0x1e/0x42\nmm_struct: 20 dup_mm+0x36/0x370\nvm_area_struct: 384 dup_mm+0x18f/0x370\nvm_area_struct: 151 do_mmap_pgoff+0x2e0/0x7c3\nvm_area_struct: 1 split_vma+0x5a/0x10e\nvm_area_struct: 11 do_brk+0x206/0x2e2\nvm_area_struct: 2 copy_vma+0xda/0x142\nvm_area_struct: 9 setup_arg_pages+0x99/0x214\nfs_cache: 8 copy_fs_struct+0x21/0x133\nfs_cache: 29 copy_process+0xf38/0x10e3\nfiles_cache: 30 alloc_files+0x1b/0xcf\nsignal_cache: 81 copy_process+0xbaa/0x10e3\nsighand_cache: 77 copy_process+0xe65/0x10e3\nsighand_cache: 1 de_thread+0x4d/0x5f8\nanon_vma: 241 anon_vma_prepare+0xd9/0xf3\nsize-2048: 1 add_sect_attrs+0x5f/0x145\nsize-2048: 2 journal_init_revoke+0x99/0x302\nsize-2048: 2 journal_init_revoke+0x137/0x302\nsize-2048: 2 journal_init_inode+0xf9/0x1c4\n\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Alexander Nyberg \u003calexn@telia.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nDESC\nslab-leaks3-locking-fix\nEDESC\nFrom: Andrew Morton \u003cakpm@osdl.org\u003e\n\nUpdate for slab-remove-cachep-spinlock.patch\n\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Alexander Nyberg \u003calexn@telia.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b2455396be35383c4eebc6745cc718b1dd9e23df",
      "tree": "9ed4d43f1ca944c23372fad6554508f1747f5e2d",
      "parents": [
        "151a44202d097ae8b1bbaa6d8d2f97df30e3cd1e"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:24 2006 -0800"
      },
      "message": "[PATCH] cpuset: memory_spread_slab drop useless PF_SPREAD_PAGE check\n\nThe hook in the slab cache allocation path to handle cpuset memory\nspreading for tasks in cpusets with \u0027memory_spread_slab\u0027 enabled has a\nmodest performance bug.  The hook calls into the memory spreading handler\nalternate_node_alloc() if either of \u0027memory_spread_slab\u0027 or\n\u0027memory_spread_page\u0027 is enabled, even though the handler does nothing\n(albeit harmlessly) for the page case\n\nFix - drop PF_SPREAD_PAGE from the set of flag bits that are used to\ntrigger a call to alternate_node_alloc().\n\nThe page case is handled by separate hooks -- see the calls conditioned on\ncpuset_do_page_mem_spread() in mm/filemap.c\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c61afb181c649754ea221f104e268cbacfc993e3",
      "tree": "870917b3f9175cf1663a2620d989856913cfb5f8",
      "parents": [
        "101a50019ae5e370d73984ee05d56dd3b08f330a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread slab cache optimizations\n\nThe hooks in the slab cache allocator code path for support of NUMA\nmempolicies and cpuset memory spreading are in an important code path.  Many\nsystems will use neither feature.\n\nThis patch optimizes those hooks down to a single check of some bits in the\ncurrent tasks task_struct flags.  For non NUMA systems, this hook and related\ncode is already ifdef\u0027d out.\n\nThe optimization is done by using another task flag, set if the task is using\na non-default NUMA mempolicy.  Taking this flag bit along with the\nPF_SPREAD_PAGE and PF_SPREAD_SLAB flag bits added earlier in this \u0027cpuset\nmemory spreading\u0027 patch set, one can check for the combination of any of these\nspecial case memory placement mechanisms with a single test of the current\ntasks task_struct flags.\n\nThis patch also tightens up the code, to save a few bytes of kernel text\nspace, and moves some of it out of line.  Due to the nested inlines called\nfrom multiple places, we were ending up with three copies of this code, which\nonce we get off the main code path (for local node allocation) seems a bit\nwasteful of instruction memory.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "101a50019ae5e370d73984ee05d56dd3b08f330a",
      "tree": "f5628837d4bb68a4109dfb8d6601f95b630848c3",
      "parents": [
        "fffb60f93ce5880aade88e01d7133b52a4879710"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread slab cache implementation\n\nProvide the slab cache infrastructure to support cpuset memory spreading.\n\nSee the previous patches, cpuset_mem_spread, for an explanation of cpuset\nmemory spreading.\n\nThis patch provides a slab cache SLAB_MEM_SPREAD flag.  If set in the\nkmem_cache_create() call defining a slab cache, then any task marked with the\nprocess state flag PF_MEMSPREAD will spread memory page allocations for that\ncache over all the allowed nodes, instead of preferring the local (faulting)\nnode.\n\nOn systems not configured with CONFIG_NUMA, this results in no change to the\npage allocation code path for slab caches.\n\nOn systems with cpusets configured in the kernel, but the \"memory_spread\"\ncpuset option not enabled for the current tasks cpuset, this adds a call to a\ncpuset routine and failed bit test of the processor state flag PF_SPREAD_SLAB.\n\nFor tasks so marked, a second inline test is done for the slab cache flag\nSLAB_MEM_SPREAD, and if that is set and if the allocation is not\nin_interrupt(), this adds a call to to a cpuset routine that computes which of\nthe tasks mems_allowed nodes should be preferred for this allocation.\n\n\u003d\u003d\u003e This patch adds another hook into the performance critical\n    code path to allocating objects from the slab cache, in the\n    ____cache_alloc() chunk, below.  The next patch optimizes this\n    hook, reducing the impact of the combined mempolicy plus memory\n    spreading hooks on this critical code path to a single check\n    against the tasks task_struct flags word.\n\nThis patch provides the generic slab flags and logic needed to apply memory\nspreading to a particular slab.\n\nA subsequent patch will mark a few specific slab caches for this placement\npolicy.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "442295c94bf650221af3ef20fc68fa3e93876818",
      "tree": "32d5cae69596ec7729172901487cc08a357448f1",
      "parents": [
        "fdb7cc59084ba7eef935e4e40aaaf538ee34c625"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Mar 22 00:09:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:06 2006 -0800"
      },
      "message": "[PATCH] mm: slab cache interleave rotor fix\n\nThe alien cache rotor in mm/slab.c assumes that the first online node is\nnode 0.  Eventually for some archs, especially with hotplug, this will no\nlonger be true.\n\nFix the interleave rotor to handle the general case of node numbering.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: 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": "b18e7e654d7af741d2bf34a90dc34128d0217fea",
      "tree": "04cbc067da970b8b24c8b5d48a1e7d9520f92b06",
      "parents": [
        "1b55253a7f95adc82eb20937b57b3e3e32ba65df"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:09:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:06 2006 -0800"
      },
      "message": "[PATCH] slab: fix drain_array() so that it works correctly with the shared_array\n\nThe list_lock also protects the shared array and we call drain_array() with\nthe shared array.  Therefore we cannot go as far as I wanted to but have to\ntake the lock in a way so that it also protects the array_cache in\ndrain_pages.\n\n(Note: maybe we should make the array_cache locking more consistent?  I.e.\nalways take the array cache lock for shared arrays and disable interrupts\nfor the per cpu arrays?)\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": "1b55253a7f95adc82eb20937b57b3e3e32ba65df",
      "tree": "5ab3f9e6efa5e2ed2a39843b95dcf95ddb89592a",
      "parents": [
        "aab2207cf8d9c343b6b5f0e4d27e1732f8618d14"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:09:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:05 2006 -0800"
      },
      "message": "[PATCH] slab: remove drain_array_locked\n\nRemove drain_array_locked and use that opportunity to limit the time the l3\nlock is taken further.\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": "aab2207cf8d9c343b6b5f0e4d27e1732f8618d14",
      "tree": "deb851a556ac7d2339a5bc83985a33fe126321ee",
      "parents": [
        "35386e3b0f876bf194982f48f027af0c216499ce"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:09:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:05 2006 -0800"
      },
      "message": "[PATCH] slab: make drain_array more universal by adding more parameters\n\nAnd a parameter to drain_array to control the freeing of all objects and\nthen use drain_array() to replace instances of drain_array_locked with\ndrain_array.  Doing so will avoid taking locks in those locations if the\narrays are empty.\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": "35386e3b0f876bf194982f48f027af0c216499ce",
      "tree": "9fb79545f6797422f5cf666b0e65a4bb1882ee1d",
      "parents": [
        "248a0301e703cbf781aa02a91bcfc6da75870dd7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:09:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:05 2006 -0800"
      },
      "message": "[PATCH] slab: cache_reap(): further reduction in interrupt holdoff\n\ncache_reap takes the l3-\u003elist_lock (disabling interrupts) unconditionally\nand then does a few checks and maybe does some cleanup.  This patch makes\ncache_reap() only take the lock if there is work to do and then the lock is\ntaken and released for each cleaning action.\n\nThe checking of when to do the next reaping is done without any locking and\nbecomes racy.  Should not matter since reaping can also be skipped if the\nslab mutex cannot be acquired.\n\nThe same is true for the touched processing.  If we get this wrong once in\nawhile then we will mistakenly clean or not clean the shared cache.  This\nwill impact performance slightly.\n\nNote that the additional drain_array() function introduced here will fall\nout in a subsequent patch since array cleaning will now be very similar\nfrom all callers.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84097518d1ecd2330f9488e4c2d09953a3340e74",
      "tree": "50981fe0584c456a1a86e6d7f611eec223b5f536",
      "parents": [
        "0f8053a509ceba4a077a50ea7b77039b5559b428"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:01 2006 -0800"
      },
      "message": "[PATCH] mm: nommu use compound pages\n\nNow that compound page handling is properly fixed in the VM, move nommu\nover to using compound pages rather than rolling their own refcounting.\n\nnommu vm page refcounting is broken anyway, but there is no need to have\ndivergent code in the core VM now, nor when it gets fixed.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n\n(Needs testing, please).\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a07fa3944bf924881450884224cbb2f1269cb9fa",
      "tree": "1a418f44586da209b7a05d0e08e6c2b2bc5fe420",
      "parents": [
        "78eef01b0fae087c5fadbd85dd4fe2918c3a015f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:08:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:59 2006 -0800"
      },
      "message": "[PATCH] slab: use on_each_cpu()\n\nSlab duplicates on_each_cpu().\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac2b898ca6fb06196a26869c23b66afe7944e52e",
      "tree": "e82e7bebd89b02813ce23f76fec4aeb5626da655",
      "parents": [
        "911851e6ee6ac4e26f07be342a89632f78494fef"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:08:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:59 2006 -0800"
      },
      "message": "[PATCH] slab: Remove SLAB_NO_REAP option\n\nSLAB_NO_REAP is documented as an option that will cause this slab not to be\nreaped under memory pressure.  However, that is not what happens.  The only\nthing that SLAB_NO_REAP controls at the moment is the reclaim of the unused\nslab elements that were allocated in batch in cache_reap().  Cache_reap()\nis run every few seconds independently of memory pressure.\n\nCould we remove the whole thing?  Its only used by three slabs anyways and\nI cannot find a reason for having this option.\n\nThere is an additional problem with SLAB_NO_REAP.  If set then the recovery\nof objects from alien caches is switched off.  Objects not freed on the\nsame node where they were initially allocated will only be reused if a\ncertain amount of objects accumulates from one alien node (not very likely)\nor if the cache is explicitly shrunk.  (Strangely __cache_shrink does not\ncheck for SLAB_NO_REAP)\n\nGetting rid of SLAB_NO_REAP fixes the problems with alien cache freeing.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "911851e6ee6ac4e26f07be342a89632f78494fef",
      "tree": "898e7150d996eae1800183a5380791270f59263d",
      "parents": [
        "fcc234f888ba2365c44ba0507eb8a18eebf1f594"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Mar 22 00:08:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:59 2006 -0800"
      },
      "message": "[PATCH] slab: fix kernel-doc warnings\n\nFix kernel-doc warnings in mm/slab.c.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b5d8ca7c50826c0b456b4a646875dc573adfde2b",
      "tree": "dc04800243ac331c862c1cdbeebd82bf369602d1",
      "parents": [
        "a737b3e2fcf96f576fa3e2e382236d9ee94f383f"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Wed Mar 22 00:08:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:58 2006 -0800"
      },
      "message": "[PATCH] slab: remove cachep-\u003espinlock\n\nRemove cachep-\u003espinlock.  Locking has moved to the kmem_list3 and most of\nthe structures protected earlier by cachep-\u003espinlock is now protected by\nthe l3-\u003elist_lock.  slab cache tunables like batchcount are accessed always\nwith the cache_chain_mutex held.\n\nPatch tested on SMP and NUMA kernels with dbench processes running,\nconstant onlining/offlining, and constant cache tuning, all at the same\ntime.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a737b3e2fcf96f576fa3e2e382236d9ee94f383f",
      "tree": "8bc2a5e4f0f12ae01c6cb718ada98bc092daecbf",
      "parents": [
        "f30cf7d13eee420f5249b4d7709b46570098ab92"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:08:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:58 2006 -0800"
      },
      "message": "[PATCH] slab cleanup\n\nslab.c has become a bit revolting again.  Try to repair it.\n\n- Coding style fixes\n\n- Don\u0027t do assignments-in-if-statements.\n\n- Don\u0027t typecast assignments to/from void*\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f30cf7d13eee420f5249b4d7709b46570098ab92",
      "tree": "825ad85c9c517efb0be41bf114ceb73a15f5c914",
      "parents": [
        "8fea4e96a8f29ccc34c244f54574680ce9b43631"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Mar 22 00:08:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:58 2006 -0800"
      },
      "message": "[PATCH] slab: extract setup_cpu_cache\n\nExtract setup_cpu_cache() function from kmem_cache_create() to make the\nlatter a little less complex.\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": "8fea4e96a8f29ccc34c244f54574680ce9b43631",
      "tree": "651042fa1d73fd1efa1c4f1b6c9f25ebbe03ea6f",
      "parents": [
        "b50ec7d8070ae7a39fe78e65a8812bbc3ca2f7ac"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Mar 22 00:08:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:58 2006 -0800"
      },
      "message": "[PATCH] slab: object to index mapping cleanup\n\nClean up the object to index mapping that has been spread around mm/slab.c.\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": "f205b2fe62d321403525065a4cb31b6bff1bbe53",
      "tree": "26a2273e7da089e99690097348bf4d35600393f4",
      "parents": [
        "5e9dace8d386def04219134d7160e8a778824764"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:57 2006 -0800"
      },
      "message": "[PATCH] mm: slab less atomics\n\nAtomic operation removal from slab\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8fce4d8e3b9e3cf47cc8afeb6077e22ab795d989",
      "tree": "4930be5756f7a3893717d38f443f6261f11a1f60",
      "parents": [
        "7b61fcda8a640bb87be23f9f09c1f24357b5c6e1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Mar 09 17:33:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 09 19:47:38 2006 -0800"
      },
      "message": "[PATCH] slab: Node rotor for freeing alien caches and remote per cpu pages.\n\nThe cache reaper currently tries to free all alien caches and all remote\nper cpu pages in each pass of cache_reap.  For a machines with large number\nof nodes (such as Altix) this may lead to sporadic delays of around ~10ms.\nInterrupts are disabled while reclaiming creating unacceptable delays.\n\nThis patch changes that behavior by adding a per cpu reap_node variable.\nInstead of attempting to free all caches, we free only one alien cache and\nthe per cpu pages from one remote node.  That reduces the time spend in\ncache_reap.  However, doing so will lengthen the time it takes to\ncompletely drain all remote per cpu pagesets and all alien caches.  The\ntime needed will grow with the number of nodes in the system.  All caches\nare drained when they overflow their respective capacity.  So the drawback\nhere is only that a bit of memory may be wasted for awhile longer.\n\nDetails:\n\n1. Rename drain_remote_pages to drain_node_pages to allow the specification\n   of the node to drain of pcp pages.\n\n2. Add additional functions init_reap_node, next_reap_node for NUMA\n   that manage a per cpu reap_node counter.\n\n3. Add a reap_alien function that reaps only from the current reap_node.\n\nFor us this seems to be a critical issue.  Holdoffs of an average of ~7ms\ncause some HPC benchmarks to slow down significantly.  F.e.  NAS parallel\nslows down dramatically.  NAS parallel has a 12-16 seconds runtime w/o rotor\ncompared to 5.8 secs with the rotor patches.  It gets down to 5.05 secs with\nthe additional interrupt holdoff reductions.\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": "07ed76b2a085a31f427c2a912a562627947dc7de",
      "tree": "da15ed460ffa5e43eb644ca0958925275b4b526b",
      "parents": [
        "731805b49489055c1548f7ccfbd44c9b84013264"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Tue Mar 07 21:55:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:15:04 2006 -0800"
      },
      "message": "[PATCH] slab: allocate larger cache_cache if order 0 fails\n\nkmem_cache_init() incorrectly assumes that the cache_cache object will fit\nin an order 0 allocation.  On very large systems, this is not true.  Change\nthe code to try larger order allocations if order 0 fails.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.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": "f78bb8ad482267b92c122f0e37a7dce69c880247",
      "tree": "0e43a4aabbf7a74c6253b1ecd30e3f6c8eccec43",
      "parents": [
        "7986824e4e31d6c66f39d2f11ab93fcfed21f593"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 10:33:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 10:33:05 2006 -0800"
      },
      "message": "slab: fix calculate_slab_order() for SLAB_RECLAIM_ACCOUNT\n\nInstead of having a hard-to-read and confusing conditional in the\ncaller, just make the slab order calculation handle this special case,\nsince it\u0027s simple and obvious there.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9888e6fa7b68d9c8cc2c162a90979825ab45150a",
      "tree": "83e46fb733008fa753269d338f90ad255cc59f53",
      "parents": [
        "f716d8303345698728d9f8ce76a82a795a5be275"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 17:44:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 17:44:43 2006 -0800"
      },
      "message": "slab: clarify and fix calculate_slab_order()\n\nIf we triggered the \u0027offslab_limit\u0027 test, we would return with\ncachep-\u003egfporder incremented once too many times.\n\nThis clarifies the logic somewhat, and fixes that bug.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "264132bc62fe071d0ff378c1103bae9d33212f10",
      "tree": "8b293d7c7465f28b4fe2788df70e25dfda2be088",
      "parents": [
        "24ed6e2c7894350d9bc06a559d3c23338ecf3323"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 12:10:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 12:10:07 2006 -0800"
      },
      "message": "Fix \"check_slabp\" printout size calculation\n\nWe want to use the \"struct slab\" size, not the size of the pointer to\nsame.  As it is, we\u0027d not print out the last \u003cn\u003e entry pointers in the\nslab (where \u003cn\u003e is ~10, depending on whether it\u0027s a 32-bit or 64-bit\nkernel).\n\nGaah, that slab code was written by somebody who likes unreadable crud.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f0188f47482efdbd2e005103bb4f0224a835dfad",
      "tree": "4d08110ea4560b433eecb4fa4de05dae6ea103e9",
      "parents": [
        "8e36709d8cea48a4d341294ce2b46678a2e77159"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Fri Feb 10 01:51:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 10 08:13:12 2006 -0800"
      },
      "message": "[PATCH] slab: Avoid deadlock at kmem_cache_create/kmem_cache_destroy\n\nPrevents deadlock situation between\nkmem_cache_create()/kmem_cache_destory(), and kmem_cache_create() /cpu\nhotplug.  The locking order probably got moved over time.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a21ef6fe902ac0ad53b45af6851ae5ec3a64299",
      "tree": "1e8c690f6fb644c8ce8873c7907ef0ed934446df",
      "parents": [
        "c265c46bbb8c53db0bd084261ab2996c6d74aebf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:26:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:26:38 2006 -0800"
      },
      "message": "mm/slab.c (non-NUMA): Fix compile warning and clean up code\n\nThe non-NUMA case would do an unmatched \"free_alien_cache()\" on an alien\npointer that had never been allocated.\n\nIt might not matter from a code generation standpoint (since in the\nnon-NUMA case, the code doesn\u0027t actually _do_ anything), but it not only\nresults in a compiler warning, it\u0027s really really ugly too.\n\nFix the compiler warning by just having a matching dummy allocation.\nThat also avoids an unnecessary #ifdef in the code.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4484ebf12bdb0ebcdc6e8951243cbab3d7f6f4c1",
      "tree": "9feabea0bac1e6401742bc95bf381e36d2651fbc",
      "parents": [
        "ca3b9b91735316f0ec7f01976f85842e0bfe5c6e"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sat Feb 04 23:27:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] NUMA slab locking fixes: fix cpu down and up locking\n\nThis fixes locking and bugs in cpu_down and cpu_up paths of the NUMA slab\nallocator.  Sonny Rao \u003csonny@burdell.org\u003e reported problems sometime back on\nPOWER5 boxes, when the last cpu on the nodes were being offlined.  We could\nnot reproduce the same on x86_64 because the cpumask (node_to_cpumask) was not\nbeing updated on cpu down.  Since that issue is now fixed, we can reproduce\nSonny\u0027s problems on x86_64 NUMA, and here is the fix.\n\nThe problem earlier was on CPU_DOWN, if it was the last cpu on the node to go\ndown, the array_caches (shared, alien) and the kmem_list3 of the node were\nbeing freed (kfree) with the kmem_list3 lock held.  If the l3 or the\narray_caches were to come from the same cache being cleared, we hit on\nbadness.\n\nThis patch cleans up the locking in cpu_up and cpu_down path.  We cannot\nreally free l3 on cpu down because, there is no node offlining yet and even\nthough a cpu is not yet up, node local memory can be allocated for it.  So l3s\nare usually allocated at keme_cache_create and destroyed at\nkmem_cache_destroy.  Hence, we don\u0027t need cachep-\u003espinlock protection to get\nto the cachep-\u003enodelist[nodeid] either.\n\nPatch survived onlining and offlining on a 4 core 2 node Tyan box with a 4\ndbench process running all the time.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca3b9b91735316f0ec7f01976f85842e0bfe5c6e",
      "tree": "fc58744ab0371adb5942462ceab3fa70d0ef9375",
      "parents": [
        "2e1217cf96b54d3b2d0162930608159e73507fbf"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sat Feb 04 23:27:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] NUMA slab locking fixes: irq disabling from cahep-\u003espinlock to l3 lock\n\nEarlier, we had to disable on chip interrupts while taking the\ncachep-\u003espinlock because, at cache_grow, on every addition of a slab to a slab\ncache, we incremented colour_next which was protected by the cachep-\u003espinlock,\nand cache_grow could occur at interrupt context.  Since, now we protect the\nper-node colour_next with the node\u0027s list_lock, we do not need to disable on\nchip interrupts while taking the per-cache spinlock, but we just need to\ndisable interrupts when taking the per-node kmem_list3 list_lock.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2e1217cf96b54d3b2d0162930608159e73507fbf",
      "tree": "ac4eba17cc9cec38e003a4bbabb5dae63934f4ac",
      "parents": [
        "64b4a954b03a1153fb8ae38d6ffbd991e01a1e80"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sat Feb 04 23:27:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] NUMA slab locking fixes: move color_next to l3\n\ncolour_next is used as an index to add a colouring offset to a new slab in the\ncache (colour_off * colour_next).  Now with the NUMA aware slab allocator, it\nmakes sense to colour slabs added on the same node sequentially with\ncolour_next.\n\nThis patch moves the colouring index \"colour_next\" per-node by placing it on\nkmem_list3 rather than kmem_cache.\n\nThis also helps simplify locking for CPU up and down paths.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ee13d785eac1fbe7e79ecca77bf7e902734a0b30",
      "tree": "9833d70a3d2cfe84a3259b93fc50af254aa0d1ce",
      "parents": [
        "a70773ddb96b74c7afe5a5bc859ba45e3d02899e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Feb 01 03:05:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: fix sparse warning\n\nmm/slab.c:1522:13: error: incompatible types for operation (\u0026)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a70773ddb96b74c7afe5a5bc859ba45e3d02899e",
      "tree": "7bb27a62bb4230c533cc25f2c8024906e431b80a",
      "parents": [
        "7fd6b1413082c303613fc137aca9a004740cacf0"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Feb 01 03:05:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] mm/slab: add kernel-doc for one function\n\nFix kernel-doc for calculate_slab_order().\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7fd6b1413082c303613fc137aca9a004740cacf0",
      "tree": "3186f4fdecbda4f16558c393a05408f7d3799ad4",
      "parents": [
        "b958f7d9f35bfb61625f201cd92a3fc39504af7a"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: fix kzalloc and kstrdup caller report for CONFIG_DEBUG_SLAB\n\nFix kzalloc() and kstrdup() caller report for CONFIG_DEBUG_SLAB.  We must\npass the caller to __cache_alloc() instead of directly doing\n__builtin_return_address(0) there; otherwise kzalloc() and kstrdup() are\nreported as the allocation site instead of the real one.\n\nThanks to Valdis Kletnieks for reporting the problem and Steven Rostedt for\nthe original idea.\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": "343e0d7a93951e35065fdb5e3dd61aece0ec6b3c",
      "tree": "a9802aac4041b894a80ab6616b532a2fd0b468e6",
      "parents": [
        "9a2dba4b4912b493070cbc170629fdbf440b01d7"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: replace kmem_cache_t with struct kmem_cache\n\nReplace uses of kmem_cache_t with proper struct kmem_cache in mm/slab.c.\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": "9a2dba4b4912b493070cbc170629fdbf440b01d7",
      "tree": "27d798fa2b2e9daf79defd8f617b12796a748b88",
      "parents": [
        "6ed5eb2211204224799b2821656bbbfde26ef200"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: rename ac_data to cpu_cache_get\n\nRename the ac_data() function to more descriptive cpu_cache_get().\n\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "6ed5eb2211204224799b2821656bbbfde26ef200",
      "tree": "46c9c3d34317bcee626343acf9aec12c87ee9f32",
      "parents": [
        "5295a74cc0bcf1291686eb734ccb06baa3d55c1a"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: extract virt_to_{cache|slab}\n\nIntroduce virt_to_cache() and virt_to_slab() functions to reduce duplicate\ncode and introduce a proper abstraction should we want to support other kind\nof mapping for address to slab and cache (eg.  for vmalloc() or I/O memory).\n\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "5295a74cc0bcf1291686eb734ccb06baa3d55c1a",
      "tree": "e90b312f402729893a97f164ce7e03386fe9c5ce",
      "parents": [
        "78d382d77c84229d031431931bf6490d5da6ab86"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: reduce inlining\n\nFrom: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\n\nReduce the amount of inline functions in slab to the functions that\nare used in the hot path:\n\n  - no inline for debug functions\n  - no __always_inline, inline is already __always_inline\n  - remove inline from a few numa support functions.\n\nBefore:\n\n   text    data     bss     dec     hex filename\n  13588     752      48   14388    3834 mm/slab.o (defconfig)\n  16671    2492      48   19211    4b0b mm/slab.o (numa)\n\nAfter:\n\n   text    data     bss     dec     hex filename\n  13366     752      48   14166    3756 mm/slab.o (defconfig)\n  16230    2492      48   18770    4952 mm/slab.o (numa)\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "78d382d77c84229d031431931bf6490d5da6ab86",
      "tree": "bb6b4fa29b05209ebe88beee496b7785644bb874",
      "parents": [
        "12dd36faec5d3bd96da84fa8f76efecc632930ab"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Wed Feb 01 03:05:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: extract slab_{put|get}_obj\n\nCreate two helper functions slab_get_obj() and slab_put_obj() to replace\nduplicated code in mm/slab.c\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "12dd36faec5d3bd96da84fa8f76efecc632930ab",
      "tree": "069ec58bf797166824e92b363720bef041aef712",
      "parents": [
        "fbaccacff1f17c65ae0972085368a7ec75be6062"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Wed Feb 01 03:05:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: extract slab_destroy_objs()\n\nCreate a helper function, slab_destroy_objs() which called from\nslab_destroy().  This makes slab_destroy() smaller and more readable, and\nmoves ifdefs outside the function body.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "fbaccacff1f17c65ae0972085368a7ec75be6062",
      "tree": "a559ee27ac259f7a48c036ec8eba94a04748c25e",
      "parents": [
        "5ec8a847bb8ae2ba6395cfb7cb4bfdc78ada82ed"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 01 03:05:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: cache_estimate cleanup\n\nClean up cache_estimate() in mm/slab.c and improves the algorithm from O(n) to\nO(1).  We first calculate the maximum number of objects a slab can hold after\nstruct slab and kmem_bufctl_t for each object has been given enough space.\nAfter that, to respect alignment rules, we decrease the number of objects if\nnecessary.  As required padding is at most align-1 and memory of obj_size is\nat least align, it is always enough to decrease number of objects by one.\n\nThe optimization was originally made by Balbir Singh with more improvements\nfrom Steven Rostedt.  Manfred Spraul provider further modifications: no loop\nat all for the off-slab case and added comments to explain the background.\n\nAcked-by: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\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": "5ec8a847bb8ae2ba6395cfb7cb4bfdc78ada82ed",
      "tree": "2ef8bf7484700b49bae1b3c1191e04a80b78b102",
      "parents": [
        "18f820f655ce93b1e4d9b48fc6fcafc64157c6bc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 01 03:05:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: have index_of bug at compile time\n\nI noticed the code for index_of is a creative way of finding the cache\nindex using the compiler to optimize to a single hard coded number.  But\nI couldn\u0027t help noticing that it uses two methods to let you know that\nsomeone used it wrong.  One is at compile time (the correct way), and\nthe other is at run time (not good).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "18f820f655ce93b1e4d9b48fc6fcafc64157c6bc",
      "tree": "62c759bb1d7d3675a3dee5dbb345cb63dfa7522b",
      "parents": [
        "3dafccf22751429e69b6266636cf3acf45b48075"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: minor cleanup to kmem_cache_alloc_node\n\nClean up kmem_cache_alloc_node a bit.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "3dafccf22751429e69b6266636cf3acf45b48075",
      "tree": "c65a0217e117155bbfca2bc4c7ad488a42018cc7",
      "parents": [
        "e965f9630c651fa4249039fd4b80c9392d07a856"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Feb 01 03:05:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: distinguish between object and buffer size\n\nAn object cache has two different object lengths:\n\n  - the amount of memory available for the user (object size)\n  - the amount of memory allocated internally (buffer size)\n\nThis patch does some renames to make the code reflect that better.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "9884fd8df195fe48d4e1be2279b419be96127cae",
      "tree": "1438571d206c1d488efb8454c64ae00c51438a2e",
      "parents": [
        "c84db23c6e587d3ab00a41c51fedf758e1f6ecd4"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@linux.intel.com",
        "time": "Wed Feb 01 03:05:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:15 2006 -0800"
      },
      "message": "[PATCH] Use 32 bit division in slab_put_obj()\n\nImprove the performance of slab_put_obj().  Without the cast, gcc considers\nptrdiff_t a 64 bit signed integer and ends up emitting code to use a full\nsigned 128 bit divide on EM64T, which is substantially slower than a 32 bit\nunsigned divide.\n\nI noticed this when looking at the profile of a case where the slab balance\nis just on edge and thrashes back and forth freeing a block.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "86c562a9d6683063e071692fe14e0a18e64ee1be",
      "tree": "dd64f8bff4624f17f2245aeadf962e0d6d5974a0",
      "parents": [
        "dc85da15d42b0efc792b0f5eab774dc5dbc1ceec"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Jan 18 17:42:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:18 2006 -0800"
      },
      "message": "[PATCH] mm: optimize numa policy handling in slab allocator\n\nMove the interrupt check from slab_node into ___cache_alloc and adds an\n\"unlikely()\" to avoid pipeline stalls on some architectures.\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": "dc85da15d42b0efc792b0f5eab774dc5dbc1ceec",
      "tree": "4b347b10dadf3cc7bdbff36709e8cee2bc673996",
      "parents": [
        "fc0abb1451c64c79ac80665d5ba74450ce274e4d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Jan 18 17:42:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:18 2006 -0800"
      },
      "message": "[PATCH] NUMA policies in the slab allocator V2\n\nThis patch fixes a regression in 2.6.14 against 2.6.13 that causes an\nimbalance in memory allocation during bootup.\n\nThe slab allocator in 2.6.13 is not numa aware and simply calls\nalloc_pages().  This means that memory policies may control the behavior of\nalloc_pages().  During bootup the memory policy is set to MPOL_INTERLEAVE\nresulting in the spreading out of allocations during bootup over all\navailable nodes.  The slab allocator in 2.6.13 has only a single list of\nslab pages.  As a result the per cpu slab cache and the spinlock controlled\npage lists may contain slab entries from off node memory.  The slab\nallocator in 2.6.13 makes no effort to discern the locality of an entry on\nits lists.\n\nThe NUMA aware slab allocator in 2.6.14 controls locality of the slab pages\nexplicitly by calling alloc_pages_node().  The NUMA slab allocator manages\nslab entries by having lists of available slab pages for each node.  The\nper cpu slab cache can only contain slab entries associated with the node\nlocal to the processor.  This guarantees that the default allocation mode\nof the slab allocator always assigns local memory if available.\n\nSetting MPOL_INTERLEAVE as a default policy during bootup has no effect\nanymore.  In 2.6.14 all node unspecific slab allocations are performed on\nthe boot processor.  This means that most of key data structures are\nallocated on one node.  Most processors will have to refer to these\nstructures making the boot node a potential bottleneck.  This may reduce\nperformance and cause unnecessary memory pressure on the boot node.\n\nThis patch implements NUMA policies in the slab layer.  There is the need\nof explicit application of NUMA memory policies by the slab allcator itself\nsince the NUMA slab allocator does no longer let the page_allocator control\nlocality.\n\nThe check for policies is made directly at the beginning of __cache_alloc\nusing current-\u003emempolicy.  The memory policy is already frequently checked\nby the page allocator (alloc_page_vma() and alloc_page_current()).  So it\nis highly likely that the cacheline is present.  For MPOL_INTERLEAVE\nkmalloc() will spread out each request to one node after another so that an\nequal distribution of allocations can be obtained during bootup.\n\nIt is not possible to push the policy check to lower layers of the NUMA\nslab allocator since the per cpu caches are now only containing slab\nentries from the current node.  If the policy says that the local node is\nnot to be preferred or forbidden then there is no point in checking the\nslab cache or local list of slab pages.  The allocation better be directed\nimmediately to the lists containing slab entries for the allowed set of\nnodes.\n\nThis way of applying policy also fixes another strange behavior in 2.6.13.\nalloc_pages() is controlled by the memory allocation policy of the current\nprocess.  It could therefore be that one process is running with\nMPOL_INTERLEAVE and would f.e.  obtain a new page following that policy\nsince no slab entries are in the lists anymore.  A page can typically be\nused for multiple slab entries but lets say that the current process is\nonly using one.  The other entries are then added to the slab lists.  These\nare now non local entries in the slab lists despite of the possible\navailability of local pages that would provide faster access and increase\nthe performance of the application.\n\nAnother process without MPOL_INTERLEAVE may now run and expect a local slab\nentry from kmalloc().  However, there are still these free slab entries\nfrom the off node page obtained from the other process via MPOL_INTERLEAVE\nin the cache.  The process will then get an off node slab entry although\nother slab entries may be available that are local to that process.  This\nmeans that the policy if one process may contaminate the locality of the\nslab caches for other processes.\n\nThis patch in effect insures that a per process policy is followed for the\nallocation of slab entries and that there cannot be a memory policy\ninfluence from one process to another.  A process with default policy will\nalways get a local slab entry if one is available.  And the process using\nmemory policies will get its memory arranged as requested.  Off-node slab\nallocation will require the use of spinlocks and will make the use of per\ncpu caches not possible.  A process using memory policies to redirect\nallocations offnode will have to cope with additional lock overhead in\naddition to the latency added by the need to access a remote slab entry.\n\nChanges V1-\u003eV2\n- Remove #ifdef CONFIG_NUMA by moving forward declaration into\n  prior #ifdef CONFIG_NUMA section.\n\n- Give the function determining the node number to use a saner\n  name.\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": "fc0abb1451c64c79ac80665d5ba74450ce274e4d",
      "tree": "30301b6134b122a638104645bd6bd4b45014dd2c",
      "parents": [
        "1743660b911bfb849b1fb33830522254561b9f9b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 18 17:42:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:18 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: mm/slab.c\n\nConvert mm/swapfile.c\u0027s swapon_sem to swapon_mutex.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4fc7ab1d065a9dd89ed0e74439ef87d4a16e980",
      "tree": "6312597ad183ee45e8769b1bc5b0035bfa681d64",
      "parents": [
        "a8b9ee7396ccc8db3bdb4108993556acbe2d3527"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jan 11 14:41:26 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 08:14:16 2006 -0800"
      },
      "message": "[PATCH] fix/simplify mutex debugging code\n\nLet\u0027s switch mutex_debug_check_no_locks_freed() to take (addr, len) as\narguments instead, since all its callers were just calculating the \u0027to\u0027\naddress for themselves anyway... (and sometimes doing so badly).\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de5097c2e73f826302cd8957c225b3725e0c7553",
      "tree": "3d56ab6fd891088ac55a9ef529faf4360391a22f",
      "parents": [
        "408894ee4dd4debfdedd472eb4d8414892fc90f6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, more debugging code\n\nmore mutex debugging: check for held locks during memory freeing,\ntask exit, enable sysrq printouts, etc.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\n"
    },
    {
      "commit": "30992c97ae9d01b17374fbfab76a869fb4bba500",
      "tree": "b1ea66bec56fabd80571696d0b081423dcab2340",
      "parents": [
        "50dd26ba0947aa653f0e42897aad7a4adce4e620"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:01:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:41 2006 -0800"
      },
      "message": "[PATCH] slob: introduce mm/util.c for shared functions\n\nAdd mm/util.c for functions common between SLAB and SLOB.\n\nSigned-off-by: 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": "cd105df4590c89837a1c300843238148cfef9b5f",
      "tree": "bea54d8f24ad97d4af5fda6baac5711fa524af0e",
      "parents": [
        "152194aaa6266d71dfee57882a23def339ef17a4"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@nuerscht.ch",
        "time": "Sun Jan 08 01:00:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:43 2006 -0800"
      },
      "message": "[PATCH] mm: clean up local variables\n\nClean up a local variable with the same name as a variable in a larger\nblock.  Also move a variable into the block where it\u0027s actually used.\n\nSpotted by http://linuxicc.sourceforge.net/\n\nSigned-off-by: Tobias Klauser \u003ctklauser@nuerscht.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b28a02de8c70d41d6b6ba8911e83ed3ccf2e13f8",
      "tree": "dee0feb5d1d9c007d94a9f5d6f3cbf8a83b46b39",
      "parents": [
        "4d268eba1187ef66844a6a33b9431e5d0dadd4ad"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: fix code formatting\n\nThe slab allocator code is inconsistent in coding style and messy.  For this\npatch, I ran Lindent for mm/slab.c and fixed up goofs by hand.\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": "4d268eba1187ef66844a6a33b9431e5d0dadd4ad",
      "tree": "575aa29016688a07b2a80132a15cc8b5a5027f60",
      "parents": [
        "85289f98ddc13f6cea82c59d6ff78f9d205dfccc"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: extract slab order calculation to separate function\n\nThis patch moves the ugly loop that determines the \u0027optimal\u0027 size (page order)\nof cache slabs from kmem_cache_create() to a separate function and cleans it\nup a bit.\n\nThanks to Matthew Wilcox for the help with this patch.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "85289f98ddc13f6cea82c59d6ff78f9d205dfccc",
      "tree": "84db27aed1783fb1bc780f7ebd3d8cd14bdc90bd",
      "parents": [
        "f9f7500521b25dbf1aba476b81230489ad8e2c4b"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: extract slabinfo header printing to separate function\n\nThis patch extracts slabinfo header printing to a separate function\nprint_slabinfo_header() to make s_start() more readable.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9f7500521b25dbf1aba476b81230489ad8e2c4b",
      "tree": "f2bf2f64023c4968ac8d08da54b8aaef86354591",
      "parents": [
        "b792de39d892e06b18ddea85be076bae123d6bf6"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: remove unused align parameter from alloc_percpu\n\n__alloc_percpu and alloc_percpu both take an \u0027align\u0027 argument which is\ncompletely ignored.  snmp6_mib_init() in net/ipv6/af_inet6.c attempts to use\nit, but it will be ignored.  Therefore, remove the \u0027align\u0027 argument and fixup\nthe lone caller.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "50c85a19e7b3928b5b5188524c44ffcbacdd4e35",
      "tree": "a886792eba2e11615c3846bc6b1c77c41ce6dda0",
      "parents": [
        "065d41cb269e9debb18c6d5052e4de1088ae3d8f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Nov 13 16:06:47 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] slab: remove alloc_pages() calls\n\nThe slab allocator never uses alloc_pages since kmem_getpages() is always\ncalled with a valid nodeid.  Remove the branch and the code from\nkmem_getpages()\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "065d41cb269e9debb18c6d5052e4de1088ae3d8f",
      "tree": "db3fbad420fc3dec144c76ecc51cc1d72e31aef9",
      "parents": [
        "669ed17521b9b78cdbeac8a53c30599aca9527ce"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Nov 13 16:06:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] slab: convert cache to page mapping macros\n\nThis patch converts object cache \u003c-\u003e page mapping macros to static inline\nfunctions to make the more explicit and readable.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dc6f3f276e2b4cbc1563def8fb39373a45db84ac",
      "tree": "d16d7f3e84b2f9c320748c0bb5610cd996775b9b",
      "parents": [
        "f093182d313edde9b1f86dbdaf40ba4da2dbd0e7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Nov 08 16:44:08 2005 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@r063144.stusta.swh.mhn.de",
        "time": "Tue Nov 08 16:44:08 2005 +0100"
      },
      "message": "mm/slab.c: fix a comment typo\n"
    },
    {
      "commit": "1e5d533142c1c178a31d4cc81837eb078f9269bc",
      "tree": "7708cc8667035ad7903f3c2c617a54240f2d6e77",
      "parents": [
        "8a0d4900697f2d615a77cd99585e743c1af555a3"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:06 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:55 2005 -0800"
      },
      "message": "[PATCH] more kernel-doc cleanups, additions\n\nVarious core kernel-doc cleanups:\n- add missing function parameters in ipc, irq/manage, kernel/sys,\n  kernel/sysctl, and mm/slab;\n- move description to just above function for kernel_restart()\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd61ef6268ac52d3dfa5626d1e0306a91b3b2608",
      "tree": "5df1bfd49f2e9be33505ba900d2ed153fed9a2af",
      "parents": [
        "2109a2d1b175dfcffbfdac693bdbe4c4ab62f11f"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Nov 07 00:58:02 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:24 2005 -0800"
      },
      "message": "[PATCH] slab: Use same schedule timeout for all cpus in cache_reap\n\nChen noticed that cache_reap uses REAPTIMEOUT_CPUC+smp_processor_id() as\nthe timeout for rescheduling.\n\nThe \"+smp_processor_id()\" part is wrong, the timeout should be identical\nfor all cpus: start_cpu_timer already adds a cpu dependant offset to avoid\nany clustering.\n\nThe attached patch removes smp_processor_id().\n\nSigned-Off-By: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2109a2d1b175dfcffbfdac693bdbe4c4ab62f11f",
      "tree": "07b47953a74adaa7490ef24aab10c45a5a4148a6",
      "parents": [
        "4f12bb4f7715f418a9c80f89447948790f476958"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.Helsinki.FI",
        "time": "Mon Nov 07 00:58:01 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:24 2005 -0800"
      },
      "message": "[PATCH] mm: rename kmem_cache_s to kmem_cache\n\nThis patch renames struct kmem_cache_s to kmem_cache so we can start using\nit instead of kmem_cache_t typedef.\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": "4f12bb4f7715f418a9c80f89447948790f476958",
      "tree": "f08c7e26b19687d26b29082e50101daf2e5a4b75",
      "parents": [
        "7fd93cf30c531fd8b014e827e7a85fcfc010b2c6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 07 00:58:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:24 2005 -0800"
      },
      "message": "[PATCH] slab: don\u0027t BUG on duplicated cache\n\nslab presently goes BUG if someone tries to register an already-registered\ncache.\n\nBut this can happen if the user accidentally loads a module which is already\nstatically linked into the kernel.  Nuking the kernel is rather a harsh\nreaction.\n\nChange it into a warning, and just fail the kmem_cache_alloc() attempt.  If\nthe module is well-behaved, the modprobe will fail and all is well.\n\nNotes:\n\n- Swaps the ranking of cache_chain_sem and lock_cpu_hotplug().  Doesn\u0027t seem\n  important.\n\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "09ad4bbc3a5c93316d7f4ffc0c310d9cbb28c2f0",
      "tree": "b98d5390ceef3dcb8d1fe83b1ef7ffe0106d4c94",
      "parents": [
        "c340010e4bf824d969a89fa192ecc7a526c0cd24"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:15:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] slab: add additional debugging to detect slabs from the wrong node\n\nThis patch adds some stack dumps if the slab logic is processing slab\nblocks from the wrong node.  This is necessary in order to detect\nsituations as encountered by Petr.\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": "6daa0e28627abf362138244a620a821a9027d816",
      "tree": "5ca9cbc421cc1adf228cdd30cd627bca8be6242c",
      "parents": [
        "af4ca457eaf2d6682059c18463eb106e2ce58198"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:18:50 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: mm/* (easy parts)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c382300876f2337f7b945c159ffcaf285f296ea",
      "tree": "d505f231c23d415f2609c6bf0ef7c196503dc161",
      "parents": [
        "0f9578b70a9f112bfb541e1d5ab486a376e64503"
      ],
      "author": {
        "name": "Alok N Kataria",
        "email": "alokk@calsoftinc.com",
        "time": "Tue Sep 27 21:45:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:42 2005 -0700"
      },
      "message": "[PATCH] kmalloc_node IRQ safety fix\n\nIn kmalloc_node we are checking if the allocation is for the same node when\ninterrupts are \"on\".  This may lead to an allocation on another node than\nintended.\n\nThis patch just shifts the check for the current node in __cache_alloc_node\nwhen interrupts are disabled.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nAcked-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": "dbdb90450059e17e8e005ebd3ce0a1fd6008a0c8",
      "tree": "0dc0220667566698e5c602bcd408d4255c86037a",
      "parents": [
        "86513e726b494796175b6c4fdd705797f01b0ca2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Sep 23 13:24:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:35:37 2005 -0700"
      },
      "message": "[PATCH] revert oversized kmalloc check\n\nAs davem points out, this wasn\u0027t such a great idea.  There may be some code\nwhich does:\n\n\tsize \u003d 1024*1024;\n\twhile (kmalloc(size, ...) \u003d\u003d 0)\n\t\tsize /\u003d 2;\n\nwhich will now explode.\n\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eafb42707b21beb42bba4eae7b742f837ee9d2e0",
      "tree": "a2b4f7042bb622ecbe8aaa003a96a6024d8bbc00",
      "parents": [
        "0cdc82ee1ae36c1ae4631fc3a782faeb0b90df38"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Sep 22 21:44:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:36 2005 -0700"
      },
      "message": "[PATCH] __kmalloc: Generate BUG if size requested is too large.\n\nI had an issue on ia64 where I got a bug in kernel/workqueue because\nkzalloc returned a NULL pointer due to the task structure getting too big\nfor the slab allocator.  Usually these cases are caught by the kmalloc\nmacro in include/linux/slab.h.\n\nCompilation will fail if a too big value is passed to kmalloc.\n\nHowever, kzalloc uses __kmalloc which has no check for that.  This patch\nmakes __kmalloc bug if a too large entity is requested.\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": "ff69416e6323fe9d38c42a06ebdefeb58bbe9336",
      "tree": "c97b81660f38ff7a06196dc47b92bd5f44c26305",
      "parents": [
        "57487f4376e16558ccbe45a5b41d8cb5192309a4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Sep 22 21:44:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:35 2005 -0700"
      },
      "message": "[PATCH] slab: fix handling of pages from foreign NUMA nodes\n\nThe numa slab allocator may allocate pages from foreign nodes onto the\nlists for a particular node if a node runs out of memory.  Inspecting the\nslab-\u003enodeid field will not reflect that the page is now in use for the\nslabs of another node.\n\nThis patch fixes that issue by adding a node field to free_block so that\nthe caller can indicate which node currently uses a slab.\n\nAlso removes the check for the current node from kmalloc_cache_node since\nthe process may shift later to another node which may lead to an allocation\non another node than intended.\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": "7243cc05bafdda4c4de77cba00cf87666bd237f7",
      "tree": "a893a19e774de07face851ace998830ea1487612",
      "parents": [
        "4b3c86a7452df8608c32a1c1f19c0cc0723c145f"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Thu Sep 22 21:43:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:34 2005 -0700"
      },
      "message": "[PATCH] slab: alpha inlining fix\n\nIt is essential that index_of() be inlined.  But alpha undoes the gcc\ninlining hackery and index_of() ends up out-of-line.  So fiddle with things\nto make that function inline again.\n\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7e43c78ae4d8630c418ce3495787b995e61a580",
      "tree": "40ab6278393ebb5096d1cef7bf1e7a423f4193de",
      "parents": [
        "c7fb0b35ada6e0e691e70af5591a2006fbec85b5"
      ],
      "author": {
        "name": "Alok Kataria",
        "email": "alokk@calsoftinc.com",
        "time": "Wed Sep 14 12:17:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 14 12:31:45 2005 -0700"
      },
      "message": "[PATCH] Fix slab BUG_ON() triggered by change in array cache size\n\nWith the new changes that we made in the initialization of the slab\nallocator, we first setup the cache from which array caches are allocated,\nand then the cache, from which kmem_list3\u0027s are allocated.\n\nNow if the array cache comes from a cache in which objsize \u003e 32, (in this\ninstance size-64) then, first size-64 cache will be allocated and then the\nsize-128 (if this is the cache from which kmem_list3\u0027s are going to be\nallocated).\n\nSo with these new changes, we are not guaranteed that we will be\ninitializing the malloc_sizes array in a serialized order. Thus there is\na bug in __find_general_cachep, as we are checking whether the first\ncache_sizes ptr is NULL.\n\nThis is replaced by checking whether the array-cache cache is initialized.\nAttached is a patch which does that.  Boots fine on a x86-64, with\nDEBUG_SPIN, DEBUG_SLAB, and preempt.\n\nAttached is a patch which does that.  Boots fine on a x86-64, with\nDEBUG_SPIN, DEBUG_SLAB, and preempt.Thanks \u0026 Regards, Alok\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Shobhit Dayal \u003cshobhitdayal.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b2d550736f8b2186b8ef7e206d0bfbfec2238ae8",
      "tree": "45926a39be5c8c99d790521ec30d20f167df1c95",
      "parents": [
        "dfc866e5059561cc79a0cc1c68ff1492f4c78508"
      ],
      "author": {
        "name": "Victor Fusco",
        "email": "victor@cetuc.puc-rio.br",
        "time": "Sat Sep 10 00:26:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:26 2005 -0700"
      },
      "message": "[PATCH] mm/slab: fix sparse warnings\n\nFix the sparse warning \"implicit cast to nocast type\"\n\nSigned-off-by: Victor Fusco \u003cvictor@cetuc.puc-rio.br\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "80e93effce55044c5a7fa96e8b313640a80bd4e9",
      "tree": "339f0ac4c6d022ba048e109e51580c26ce4d252e",
      "parents": [
        "af97c7220a0376beed827e72e3bb27731af7109d"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Sep 09 13:10:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:43 2005 -0700"
      },
      "message": "[PATCH] update kfree, vfree, and vunmap kerneldoc\n\nThis patch clarifies NULL handling of kfree() and vfree().  I addition,\nwording of calling context restriction for vfree() and vunmap() are changed\nfrom \"may not\" to \"must not.\"\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e498be7dafd72fd68848c1eef1575aa7c5d658df",
      "tree": "e09df3a70db15aa55555297155e04aee3d72de62",
      "parents": [
        "bd65a68574b787304a0cd90f22cfd44540ce3695"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Sep 09 13:03:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:48 2005 -0700"
      },
      "message": "[PATCH] Numa-aware slab allocator V5\n\nThe NUMA API change that introduced kmalloc_node was accepted for\n2.6.12-rc3.  Now it is possible to do slab allocations on a node to\nlocalize memory structures.  This API was used by the pageset localization\npatch and the block layer localization patch now in mm.  The existing\nkmalloc_node is slow since it simply searches through all pages of the slab\nto find a page that is on the node requested.  The two patches do a one\ntime allocation of slab structures at initialization and therefore the\nspeed of kmalloc node does not matter.\n\nThis patch allows kmalloc_node to be as fast as kmalloc by introducing node\nspecific page lists for partial, free and full slabs.  Slab allocation\nimproves in a NUMA system so that we are seeing a performance gain in AIM7\nof about 5% with this patch alone.\n\nMore NUMA localizations are possible if kmalloc_node operates in an fast\nway like kmalloc.\n\nTest run on a 32p systems with 32G Ram.\n\nw/o patch\nTasks    jobs/min  jti  jobs/min/task      real       cpu\n    1      485.36  100       485.3640     11.99      1.91   Sat Apr 30 14:01:51 2005\n  100    26582.63   88       265.8263     21.89    144.96   Sat Apr 30 14:02:14 2005\n  200    29866.83   81       149.3342     38.97    286.08   Sat Apr 30 14:02:53 2005\n  300    33127.16   78       110.4239     52.71    426.54   Sat Apr 30 14:03:46 2005\n  400    34889.47   80        87.2237     66.72    568.90   Sat Apr 30 14:04:53 2005\n  500    35654.34   76        71.3087     81.62    714.55   Sat Apr 30 14:06:15 2005\n  600    36460.83   75        60.7681     95.77    853.42   Sat Apr 30 14:07:51 2005\n  700    35957.00   75        51.3671    113.30    990.67   Sat Apr 30 14:09:45 2005\n  800    33380.65   73        41.7258    139.48   1140.86   Sat Apr 30 14:12:05 2005\n  900    35095.01   76        38.9945    149.25   1281.30   Sat Apr 30 14:14:35 2005\n 1000    36094.37   74        36.0944    161.24   1419.66   Sat Apr 30 14:17:17 2005\n\nw/patch\nTasks    jobs/min  jti  jobs/min/task      real       cpu\n    1      484.27  100       484.2736     12.02      1.93   Sat Apr 30 15:59:45 2005\n  100    28262.03   90       282.6203     20.59    143.57   Sat Apr 30 16:00:06 2005\n  200    32246.45   82       161.2322     36.10    282.89   Sat Apr 30 16:00:42 2005\n  300    37945.80   83       126.4860     46.01    418.75   Sat Apr 30 16:01:28 2005\n  400    40000.69   81       100.0017     58.20    561.48   Sat Apr 30 16:02:27 2005\n  500    40976.10   78        81.9522     71.02    696.95   Sat Apr 30 16:03:38 2005\n  600    41121.54   78        68.5359     84.92    834.86   Sat Apr 30 16:05:04 2005\n  700    44052.77   78        62.9325     92.48    971.53   Sat Apr 30 16:06:37 2005\n  800    41066.89   79        51.3336    113.38   1111.15   Sat Apr 30 16:08:31 2005\n  900    38918.77   79        43.2431    134.59   1252.57   Sat Apr 30 16:10:46 2005\n 1000    41842.21   76        41.8422    139.09   1392.33   Sat Apr 30 16:13:05 2005\n\nThese are measurement taken directly after boot and show a greater\nimprovement than 5%.  However, the performance improvements become less\nover time if the AIM7 runs are repeated and settle down at around 5%.\n\nLinks to earlier discussions:\nhttp://marc.theaimsgroup.com/?t\u003d111094594500003\u0026r\u003d1\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?t\u003d111603406600002\u0026r\u003d1\u0026w\u003d2\n\nChangelog V4-V5:\n- alloc_arraycache and alloc_aliencache take node parameter instead of cpu\n- fix initialization so that nodes without cpus are properly handled.\n- simplify code in kmem_cache_init\n- patch against Andrews temp mm3 release\n- Add Shai to credits\n- fallback to __cache_alloc from __cache_alloc_node if the node\u0027s cache\n  is not available yet.\n\nChangelog V3-V4:\n- Patch against 2.6.12-rc5-mm1\n- Cleanup patch integrated\n- More and better use of for_each_node and for_each_cpu\n- GCC 2.95 fix (do not use [] use [0])\n- Correct determination of INDEX_AC\n- Remove hack to cause an error on platforms that have no CONFIG_NUMA but nodes.\n- Remove list3_data and list3_data_ptr macros for better readability\n\nChangelog V2-V3:\n- Made to patch against 2.6.12-rc4-mm1\n- Revised bootstrap mechanism so that larger size kmem_list3 structs can be\n  supported. Do a generic solution so that the right slab can be found\n  for the internal structs.\n- use for_each_online_node\n\nChangelog V1-V2:\n- Batching for freeing of wrong-node objects (alien caches)\n- Locking changes and NUMA #ifdefs as requested by Manfred\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Shobhit Dayal \u003cshobhit@calsoftinc.com\u003e\nSigned-off-by: Shai Fultheim \u003cShai@Scalex86.org\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd3927105b6f65afb7dac17682172cdfb86d3f00",
      "tree": "5cf282aff500cad23b9d7e13dc19b2b2d31e1ce6",
      "parents": [
        "640e803376b9c4072f69fec42e304c974a631298"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.Helsinki.FI",
        "time": "Tue Sep 06 15:18:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:45 2005 -0700"
      },
      "message": "[PATCH] introduce and use kzalloc\n\nThis patch introduces a kzalloc wrapper and converts kernel/ to use it.  It\nsaves a little program text.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "00e145b6d59a16dd7740197a18f7abdb3af004a9",
      "tree": "7b081ccfa6a34e5a17f4f1d6925d4945df2a97c1",
      "parents": [
        "34342e863c3143640c031760140d640a06c6a5f8"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Sat Sep 03 15:55:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:49 2005 -0700"
      },
      "message": "[PATCH] slab: removes local_irq_save()/local_irq_restore() pair\n\nProposed by and based on a patch from Eric Dumazet \u003cdada1@cosmosbay.com\u003e:\nThis patch removes unnecessary critical section in ksize() function, as\ncli/sti are rather expensive on modern CPUS.\n\nIt additionally adds a docbook entry for ksize() and further simplifies the\ncode.\n\nSigned-Off-By: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34342e863c3143640c031760140d640a06c6a5f8",
      "tree": "f2855e8ca82929859cb1fe249982b3ba1ccf9b5e",
      "parents": [
        "61e06037e764337da39dff307cbcdbe9cf288349"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Sep 03 15:55:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:48 2005 -0700"
      },
      "message": "[PATCH] mm/slab.c: prefetchw the start of new allocated objects\n\nMostobjects returned by __cache_alloc() will be written by the caller,\n(but not all callers want to write all the object, but just at the\nbegining) prefetchw() tells the modern CPU to think about the future\nwrites, ie start some memory transactions in advance.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa5b08d5f818063d18433194f20359ef2ae50254",
      "tree": "f2b2bc88347a618f0c4b535d57d2a5271a5eb98e",
      "parents": [
        "0e5c9f39f64d8a55c5db37a5ea43e37d3422fd92"
      ],
      "author": {
        "name": "Kyle Moffett",
        "email": "mrmacman_g4@mac.com",
        "time": "Sat Sep 03 15:55:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:48 2005 -0700"
      },
      "message": "[PATCH] sab: consolidate kmem_bufctl_t\n\nThis is used only in slab.c and each architecture gets to define whcih\nunderlying type is to be used.\n\nSeems a bit silly - move it to slab.c and use the same type for all\narchitectures: unsigned int.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0abf40c1ac3f25d264c019e1cfe155d590defb87",
      "tree": "e33e79f2e2bdb8f5ceceabeff722ef087876eead",
      "parents": [
        "e83a9596712eb784e7e6604f43a2c140eb912743"
      ],
      "author": {
        "name": "Martin Hicks",
        "email": "mort@sgi.com",
        "time": "Sat Sep 03 15:54:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:45 2005 -0700"
      },
      "message": "[PATCH] vm: slab.c spelling correction\n\nFix a small spelling mistake.  subtile-\u003esubtle\n\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0db925af1db5f3dfe1691c35b39496e2baaff9c9",
      "tree": "bb9f827fa001b27f7a902abf174e8f0057c9df81",
      "parents": [
        "b84c21572de8a732062eff5592e3c4b3b1793bb8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jul 07 17:56:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:46 2005 -0700"
      },
      "message": "[PATCH] propagate __nocast annotations\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": "83b78bd2d31f12d7d9317d9802a1996a7bd8a6f2",
      "tree": "79468471ee42a327cad337d065a9498833d5bd24",
      "parents": [
        "b4634484815e1879512a23e4f59eef648135c30a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "christoph@lameter.com",
        "time": "Wed Jul 06 10:47:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 06 10:52:45 2005 -0700"
      },
      "message": "[PATCH] Fix broken kmalloc_node in rc1/rc2\n\nThis patch used to be in Andrew\u0027s tree before the NUMA slab allocator went\nin. Either this patch or the NUMA slab allocator is needed in order for\nkmalloc_node to work correctly.\n\npcibus_to_node may be used to generate the node information passed to\nkmalloc_node. pcibus_to_node returns -1 if it was not able to determine\non which node a pcibus is located. For that case kmalloc_node must\nwork like kmalloc.\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "543537bd922692bc978e2e356fcd8bfc9c2ee7d5",
      "tree": "0089e3907e7d6c17c01cffc6ea4a8962ed053079",
      "parents": [
        "991114c6fa6a21d1fa4d544abe78592352860c82"
      ],
      "author": {
        "name": "Paulo Marques",
        "email": "pmarques@grupopie.com",
        "time": "Thu Jun 23 00:09:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:18 2005 -0700"
      },
      "message": "[PATCH] create a kstrdup library function\n\nThis patch creates a new kstrdup library function and changes the \"local\"\nimplementations in several places to use this function.\n\nMost of the changes come from the sound and net subsystems.  The sound part\nhad already been acknowledged by Takashi Iwai and the net part by David S.\nMiller.\n\nI left UML alone for now because I would need more time to read the code\ncarefully before making changes there.\n\nSigned-off-by: Paulo Marques \u003cpmarques@grupopie.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ae7c03943fca73f23bc0cdb938070f41b98101f",
      "tree": "d4b3a7369896af7aa7bb58d0d1699be91fc4aa0d",
      "parents": [
        "578c2fd6a7f378434655e5c480e23152a3994404"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Jun 21 17:14:57 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:18 2005 -0700"
      },
      "message": "[PATCH] Periodically drain non local pagesets\n\nThe pageset array can potentially acquire a huge amount of memory on large\nNUMA systems.  F.e.  on a system with 512 processors and 256 nodes there\nwill be 256*512 pagesets.  If each pageset only holds 5 pages then we are\ntalking about 655360 pages.With a 16K page size on IA64 this results in\npotentially 10 Gigabytes of memory being trapped in pagesets.  The typical\ncases are much less for smaller systems but there is still the potential of\nmemory being trapped in off node pagesets.  Off node memory may be rarely\nused if local memory is available and so we may potentially have memory in\nseldom used pagesets without this patch.\n\nThe slab allocator flushes its per cpu caches every 2 seconds.  The\nfollowing patch flushes the off node pageset caches in the same way by\ntying into the slab flush.\n\nThe patch also changes /proc/zoneinfo to include the number of pages\ncurrently in each pageset.\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": "1944972d3bb651474a5021c9da8d0166ae19f1eb",
      "tree": "cc638b40d8a7dfb4949d4a84a695ec8915c0fc2b",
      "parents": [
        "ee57eef99b9e19194677f552ebc0690ec35d62db"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Sat Jun 18 22:46:19 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:46:19 2005 -0700"
      },
      "message": "[SLAB] Introduce kmem_cache_name\n\nThis is for use with slab users that pass a dynamically allocated slab name in\nkmem_cache_create, so that before destroying the slab one can retrieve the name\nand free its memory.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fbd568a3e61a7decb8a754ad952aaa5b5c82e9e5",
      "tree": "40a44149a9b6a39eac5481380e2212f9b9b74eb2",
      "parents": [
        "9b06e818985d139fd9e82c28297f7744e1b484e1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun May 01 08:59:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:04 2005 -0700"
      },
      "message": "[PATCH] Change synchronize_kernel to _rcu and _sched\n\nThis patch changes calls to synchronize_kernel(), deprecated in the earlier\n\"Deprecate synchronize_kernel, GPL replacement\" patch to instead call the new\nsynchronize_rcu() and synchronize_sched() APIs.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97e2bde47f886a317909c8a8f9bd2fcd8ce2f0b0",
      "tree": "bef8ff5bd628ecffd188bdbad4c765bf5e737b8d",
      "parents": [
        "dd1d5afca8d3bda7ff9db773fc08e648d2503dc6"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@dbl.q-ag.de",
        "time": "Sun May 01 08:58:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:38 2005 -0700"
      },
      "message": "[PATCH] add kmalloc_node, inline cleanup\n\nThe patch makes the following function calls available to allocate memory\non a specific node without changing the basic operation of the slab\nallocator:\n\n kmem_cache_alloc_node(kmem_cache_t *cachep, unsigned int flags, int node);\n kmalloc_node(size_t size, unsigned int flags, int node);\n\nin a similar way to the existing node-blind functions:\n\n kmem_cache_alloc(kmem_cache_t *cachep, unsigned int flags);\n kmalloc(size, flags);\n\nkmem_cache_alloc_node was changed to pass flags and the node information\nthrough the existing layers of the slab allocator (which lead to some minor\nrearrangements).  The functions at the lowest layer (kmem_getpages,\ncache_grow) are already node aware.  Also __alloc_percpu can call\nkmalloc_node now.\n\nPerformance measurements (using the pageset localization patch) yields:\n\nw/o patches:\nTasks    jobs/min  jti  jobs/min/task      real       cpu\n    1      484.27  100       484.2736     12.02      1.97   Wed Mar 30 20:50:43 2005\n  100    25170.83   91       251.7083     23.12    150.10   Wed Mar 30 20:51:06 2005\n  200    34601.66   84       173.0083     33.64    294.14   Wed Mar 30 20:51:40 2005\n  300    37154.47   86       123.8482     46.99    436.56   Wed Mar 30 20:52:28 2005\n  400    39839.82   80        99.5995     58.43    580.46   Wed Mar 30 20:53:27 2005\n  500    40036.32   79        80.0726     72.68    728.60   Wed Mar 30 20:54:40 2005\n  600    44074.21   79        73.4570     79.23    872.10   Wed Mar 30 20:55:59 2005\n  700    44016.60   78        62.8809     92.56   1015.84   Wed Mar 30 20:57:32 2005\n  800    40411.05   80        50.5138    115.22   1161.13   Wed Mar 30 20:59:28 2005\n  900    42298.56   79        46.9984    123.83   1303.42   Wed Mar 30 21:01:33 2005\n 1000    40955.05   80        40.9551    142.11   1441.92   Wed Mar 30 21:03:55 2005\n\nwith pageset localization and slab API patches:\nTasks    jobs/min  jti  jobs/min/task      real       cpu\n    1      484.19  100       484.1930     12.02      1.98   Wed Mar 30 21:10:18 2005\n  100    27428.25   92       274.2825     21.22    149.79   Wed Mar 30 21:10:40 2005\n  200    37228.94   86       186.1447     31.27    293.49   Wed Mar 30 21:11:12 2005\n  300    41725.42   85       139.0847     41.84    434.10   Wed Mar 30 21:11:54 2005\n  400    43032.22   82       107.5805     54.10    582.06   Wed Mar 30 21:12:48 2005\n  500    42211.23   83        84.4225     68.94    722.61   Wed Mar 30 21:13:58 2005\n  600    40084.49   82        66.8075     87.12    873.11   Wed Mar 30 21:15:25 2005\n  700    44169.30   79        63.0990     92.24   1008.77   Wed Mar 30 21:16:58 2005\n  800    43097.94   79        53.8724    108.03   1155.88   Wed Mar 30 21:18:47 2005\n  900    41846.75   79        46.4964    125.17   1303.38   Wed Mar 30 21:20:52 2005\n 1000    40247.85   79        40.2478    144.60   1442.21   Wed Mar 30 21:23:17 2005\n\nSigned-off-by: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2"
}
