)]}'
{
  "log": [
    {
      "commit": "7d6e6d09de82cf6cff7fecdba55198b9f47b381c",
      "tree": "57b26da3bea0af63dd0b65cdcdde33fe5670a35f",
      "parents": [
        "fd1197f1131a1f1d8bc192f9cfbbe17e305f17f3"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Wed May 26 14:45:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:57 2010 -0700"
      },
      "message": "numa: slab: use numa_mem_id() for slab local memory node\n\nExample usage of generic \"numa_mem_id()\":\n\nThe mainline slab code, since ~ 2.6.19, does not handle memoryless nodes\nwell.  Specifically, the \"fast path\"--____cache_alloc()--will never\nsucceed as slab doesn\u0027t cache offnode object on the per cpu queues, and\nfor memoryless nodes, all memory will be \"off node\" relative to\nnuma_node_id().  This adds significant overhead to all kmem cache\nallocations, incurring a significant regression relative to earlier\nkernels [from before slab.c was reorganized].\n\nThis patch uses the generic topology function \"numa_mem_id()\" to return\nthe \"effective local memory node\" for the calling context.  This is the\nfirst node in the local node\u0027s generic fallback zonelist-- the same node\nthat \"local\" mempolicy-based allocations would use.  This lets slab cache\nthese \"local\" allocations and avoid fallback/refill on every allocation.\n\nN.B.: Slab will need to handle node and memory hotplug events that could\nchange the value returned by numa_mem_id() for any given node if recent\nchanges to address memory hotplug don\u0027t already address this.  E.g., flush\nall per cpu slab queues before rebuilding the zonelists while the\n\"machine\" is held in the stopped state.\n\nPerformance impact on \"hackbench 400 process 200\"\n\n2.6.34-rc3-mmotm-100405-1609\t\tno-patch\tthis-patch\nia64 no memoryless nodes [avg of 10]:     11.713       11.637  ~0.65 diff\nia64 cpus all on memless nodes  [10]:    228.259       26.484  ~8.6x speedup\n\nThe slowdown of the patched kernel from ~12 sec to ~28 seconds when\nconfigured with memoryless nodes is the result of all cpus allocating from\na single node\u0027s mm pagepool.  The cache lines of the single node are\ndistributed/interleaved over the memory of the real physical nodes, but\nthe zone lock, list heads, ...  of the single node with memory still each\nlive in a single cache line that is accessed from all processors.\n\nx86_64 [8x6 AMD] [avg of 40]:\t\t2.883\t   2.845\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Eric Whitney \u003ceric.whitney@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eac4068013a067f5fb63005033c13b27fbf6dfca",
      "tree": "f47075dda89aed758a60090ac392c57610005c2f",
      "parents": [
        "80b5184cc537718122e036afe7e62d202b70d077"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "slab: convert cpu notifier to return encapsulate errno value\n\nBy the previous modification, the cpu notifier can return encapsulate\nerrno value.  This converts the cpu notifiers for slab.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6adef3ebe570bcde67fd6c16101451ddde5712b5",
      "tree": "0f60e2a4d01850ae33aee6cefc7a59845ede89a0",
      "parents": [
        "2c488db27b614816024e7994117f599337de0f34"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Wed May 26 14:42:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "cpusets: new round-robin rotor for SLAB allocations\n\nWe have observed several workloads running on multi-node systems where\nmemory is assigned unevenly across the nodes in the system.  There are\nnumerous reasons for this but one is the round-robin rotor in\ncpuset_mem_spread_node().\n\nFor example, a simple test that writes a multi-page file will allocate\npages on nodes 0 2 4 6 ...  Odd nodes are skipped.  (Sometimes it\nallocates on odd nodes \u0026 skips even nodes).\n\nAn example is shown below.  The program \"lfile\" writes a file consisting\nof 10 pages.  The program then mmaps the file \u0026 uses get_mempolicy(...,\nMPOL_F_NODE) to determine the nodes where the file pages were allocated.\nThe output is shown below:\n\n\t# ./lfile\n\t allocated on nodes: 2 4 6 0 1 2 6 0 2\n\nThere is a single rotor that is used for allocating both file pages \u0026 slab\npages.  Writing the file allocates both a data page \u0026 a slab page\n(buffer_head).  This advances the RR rotor 2 nodes for each page\nallocated.\n\nA quick confirmation seems to confirm this is the cause of the uneven\nallocation:\n\n\t# echo 0 \u003e/dev/cpuset/memory_spread_slab\n\t# ./lfile\n\t allocated on nodes: 6 7 8 9 0 1 2 3 4 5\n\nThis patch introduces a second rotor that is used for slab allocations.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0ff7453bb5c7c98e0885fb94279f2571946f280",
      "tree": "8bb2b169a5145f0496575dbd2f48bb4b1c83f819",
      "parents": [
        "708c1bbc9d0c3e57f40501794d9b0eed29d10fce"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon May 24 14:32:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "cpuset,mm: fix no node to alloc memory when changing cpuset\u0027s mems\n\nBefore applying this patch, cpuset updates task-\u003emems_allowed and\nmempolicy by setting all new bits in the nodemask first, and clearing all\nold unallowed bits later.  But in the way, the allocator may find that\nthere is no node to alloc memory.\n\nThe reason is that cpuset rebinds the task\u0027s mempolicy, it cleans the\nnodes which the allocater can alloc pages on, for example:\n\n(mpol: mempolicy)\n\ttask1\t\t\ttask1\u0027s mpol\ttask2\n\talloc page\t\t1\n\t  alloc on node0? NO\t1\n\t\t\t\t1\t\tchange mems from 1 to 0\n\t\t\t\t1\t\trebind task1\u0027s mpol\n\t\t\t\t0-1\t\t  set new bits\n\t\t\t\t0\t  \t  clear disallowed bits\n\t  alloc on node1? NO\t0\n\t  ...\n\tcan\u0027t alloc page\n\t  goto oom\n\nThis patch fixes this problem by expanding the nodes range first(set newly\nallowed bits) and shrink it lazily(clear newly disallowed bits).  So we\nuse a variable to tell the write-side task that read-side task is reading\nnodemask, and the write-side task clears newly disallowed nodes after\nread-side task ends the current memory allocation.\n\n[akpm@linux-foundation.org: fix spello]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb4f6b0cd7524ad7d56709723eaf8a7bf5a87b57",
      "tree": "df58d2c4c1f01f9bf5aa19e6a6d329b872b1f72a",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050",
        "ec49fdbd354cb133340e25ff84d88284bb17e99a",
        "e92dd4fd1aa1cd081dac03973b33c972637d5b7a",
        "5c5e3b33b7cb959a401f823707bee006caadd76e",
        "8f9f8d9e8080a2ff46caa7decef47810d093d252",
        "6b65aaf3027c4e02b42aaefd900aa79136a30681"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat May 22 10:57:52 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat May 22 10:57:52 2010 +0300"
      },
      "message": "Merge branches \u0027slab/align\u0027, \u0027slab/cleanups\u0027, \u0027slab/fixes\u0027, \u0027slab/memhotadd\u0027 and \u0027slub/fixes\u0027 into slab-for-linus\n"
    },
    {
      "commit": "1f0ce8b3dd667dca720a47869f8110c298f0e5b8",
      "tree": "c0e260b5d8e6d3fe55be2bf6772265ad48878efd",
      "parents": [
        "e40152ee1e1c7a63f4777791863215e3faa37a86"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed May 19 12:01:42 2010 +0100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed May 19 22:03:13 2010 +0300"
      },
      "message": "mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to \u003clinux/slab_def.h\u003e\n\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "5c5e3b33b7cb959a401f823707bee006caadd76e",
      "tree": "aa3c77659d80d714e833a35bcfc20b72a9b6f368",
      "parents": [
        "0d0fb0f9c5fddef4a10242fe3337f00f528a3099"
      ],
      "author": {
        "name": "Shiyong Li",
        "email": "shi-yong.li@motorola.com",
        "time": "Mon Apr 12 13:48:21 2010 +0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Apr 14 20:52:45 2010 +0300"
      },
      "message": "slab: Fix missing DEBUG_SLAB last user\n\nEven with SLAB_RED_ZONE and SLAB_STORE_USER enabled, kernel would NOT store\nredzone and last user data around allocated memory space if \"arch cache line \u003e\nsizeof(unsigned long long)\". As a result, last user information is unexpectedly\nMISSED while dumping slab corruption log.\n\nThis fix makes sure that redzone and last user tags get stored unless the\nrequired alignment breaks redzone\u0027s.\n\nSigned-off-by: Shiyong Li \u003cshi-yong.li@motorola.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "fc1c183353a113c71675fecd0485e5aa0fe68d72",
      "tree": "25fc50112c80402ab43bd86a3d6b6a99a0c3c128",
      "parents": [
        "4dc86ae1f925b2121d4e75058675895f83e54c71"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Apr 07 19:23:40 2010 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 09 10:09:50 2010 -0700"
      },
      "message": "slab: Generify kernel pointer validation\n\nAs suggested by Linus, introduce a kern_ptr_validate() helper that does some\nsanity checks to make sure a pointer is a valid kernel pointer.  This is a\npreparational step for fixing SLUB kmem_ptr_validate().\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f9f8d9e8080a2ff46caa7decef47810d093d252",
      "tree": "c9adbf892104431816b4a6aaf96083c649f3b36a",
      "parents": [
        "220bf991b0366cc50a94feede3d7341fa5710ee4"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Sat Mar 27 19:40:47 2010 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Apr 07 19:28:31 2010 +0300"
      },
      "message": "slab: add memory hotplug support\n\nSlab lacks any memory hotplug support for nodes that are hotplugged\nwithout cpus being hotplugged.  This is possible at least on x86\nCONFIG_MEMORY_HOTPLUG_SPARSE kernels where SRAT entries are marked\nACPI_SRAT_MEM_HOT_PLUGGABLE and the regions of RAM represent a seperate\nnode.  It can also be done manually by writing the start address to\n/sys/devices/system/memory/probe for kernels that have\nCONFIG_ARCH_MEMORY_PROBE set, which is how this patch was tested, and\nthen onlining the new memory region.\n\nWhen a node is hotadded, a nodelist for that node is allocated and\ninitialized for each slab cache.  If this isn\u0027t completed due to a lack\nof memory, the hotadd is aborted: we have a reasonable expectation that\nkmalloc_node(nid) will work for all caches if nid is online and memory is\navailable.\n\nSince nodelists must be allocated and initialized prior to the new node\u0027s\nmemory actually being online, the struct kmem_list3 is allocated off-node\ndue to kmalloc_node()\u0027s fallback.\n\nWhen an entire node would be offlined, its nodelists are subsequently\ndrained.  If slab objects still exist and cannot be freed, the offline is\naborted.  It is possible that objects will be allocated between this\ndrain and page isolation, so it\u0027s still possible that the offline will\nstill fail, however.\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "e92dd4fd1aa1cd081dac03973b33c972637d5b7a",
      "tree": "e382257552cc7f5a3fde542c85c63981a8c7e5d4",
      "parents": [
        "220bf991b0366cc50a94feede3d7341fa5710ee4"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Mar 26 19:27:58 2010 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Mar 28 20:08:16 2010 +0300"
      },
      "message": "slab: Fix continuation lines\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "e2b093f3e9262353558c6f89510ab2d286b28287",
      "tree": "298986520dcb4e60e5ab253b7f6d56277077215a",
      "parents": [
        "eaa5eec739637f32f8733d528ff0b94fd62b1214",
        "f3186a9c51eabe75b2780153ed7f07778d78b16e",
        "4c13dd3b48fcb6fbe44f241eb11a057ecd1cba75",
        "44b57f1cc72a4a30b31f11b07a927d1534f1b93d",
        "91efd773c74bb26b5409c85ad755d536448e229c"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Mar 04 12:07:50 2010 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Mar 04 12:07:50 2010 +0200"
      },
      "message": "Merge branches \u0027slab/cleanups\u0027, \u0027slab/failslab\u0027, \u0027slab/fixes\u0027 and \u0027slub/percpu\u0027 into slab-for-linus\n"
    },
    {
      "commit": "4c13dd3b48fcb6fbe44f241eb11a057ecd1cba75",
      "tree": "d9875477b9eb48ad598da8cbc36b473c941828ae",
      "parents": [
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Fri Feb 26 09:36:12 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Feb 26 19:19:39 2010 +0200"
      },
      "message": "failslab: add ability to filter slab caches\n\nThis patch allow to inject faults only for specific slabs.\nIn order to preserve default behavior cache filter is off by\ndefault (all caches are faulty).\n\nOne may define specific set of slabs like this:\n# mark skbuff_head_cache as faulty\necho 1 \u003e /sys/kernel/slab/skbuff_head_cache/failslab\n# Turn on cache filter (off by default)\necho 1 \u003e /sys/kernel/debug/failslab/cache-filter\n# Turn on fault injection\necho 1 \u003e /sys/kernel/debug/failslab/times\necho 1 \u003e /sys/kernel/debug/failslab/probability\n\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "44b57f1cc72a4a30b31f11b07a927d1534f1b93d",
      "tree": "78e38b52bedf86446161e9df0cfbb2b7b4bc6dd8",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 27 22:27:40 2010 +1100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Jan 30 15:02:39 2010 +0200"
      },
      "message": "slab: fix regression in touched logic\n\nWhen factoring common code into transfer_objects in commit 3ded175 (\"slab: add\ntransfer_objects() function\"), the \u0027touched\u0027 logic got a bit broken. When\nrefilling from the shared array (taking objects from the shared array), we are\nmaking use of the shared array so it should be marked as touched.\n\nSubsequently pulling an element from the cpu array and allocating it should\nalso touch the cpu array, but that is taken care of after the alloc_done label.\n(So yes, the cpu array was getting touched \u003d 1 twice).\n\nSo revert this logic to how it worked in earlier kernels.\n\nThis also affects the behaviour in __drain_alien_cache, which would previously\n\u0027touch\u0027 the shared array and now does not. I think it is more logical not to\ntouch there, because we are pushing objects into the shared array rather than\npulling them off. So there is no good reason to postpone reaping them -- if the\nshared array is getting utilized, then it will get \u0027touched\u0027 in the alloc path\n(where this patch now restores the touch).\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "f3186a9c51eabe75b2780153ed7f07778d78b16e",
      "tree": "ab8c267ad09ead33c8ed757612b34ad5a1b70ce7",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Wed Jan 06 15:25:23 2010 +0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jan 11 18:56:07 2010 +0200"
      },
      "message": "slab: initialize unused alien cache entry as NULL at alloc_alien_cache().\n\nComparing with existing code, it\u0027s a simpler way to use kzalloc_node()\nto ensure that each unused alien cache entry is NULL.\n\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "00afa758067ac1c947149ef766adcdfe30c44d7d",
      "tree": "7967c8e1b9876553742a73b6f7d155b2745ea671",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Dec 27 14:33:14 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 28 20:57:27 2009 +0200"
      },
      "message": "SLAB: Fix lockdep annotation breakage\n\nCommit ce79ddc8e2376a9a93c7d42daf89bfcbb9187e62 (\"SLAB: Fix lockdep annotations\nfor CPU hotplug\") broke init_node_lock_keys() off-slab logic which causes\nlockdep false positives.\n\nFix that up by reverting the logic back to original while keeping CPU hotplug\nfixes intact.\n\nReported-and-tested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nReported-and-tested-by: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "55db493b65c7b6bb5d7bd3dd3c8a2fe13f5dc09c",
      "tree": "7f9203f43e7c81687c9aaa0213266bc7b2e89e35",
      "parents": [
        "efc8e7f4c83dc85acbf5f54a8b1b24ae75b20aaa",
        "a4636818f8e0991f32d9528f39cf4f3d6a7d30a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 17:00:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 17:00:20 2009 -0800"
      },
      "message": "Merge branch \u0027cpumask-cleanups\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027cpumask-cleanups\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  cpumask: rename tsk_cpumask to tsk_cpus_allowed\n  cpumask: don\u0027t recommend set_cpus_allowed hack in Documentation/cpu-hotplug.txt\n  cpumask: avoid dereferencing struct cpumask\n  cpumask: convert drivers/idle/i7300_idle.c to cpumask_var_t\n  cpumask: use modern cpumask style in drivers/scsi/fcoe/fcoe.c\n  cpumask: avoid deprecated function in mm/slab.c\n  cpumask: use cpu_online in kernel/perf_event.c\n"
    },
    {
      "commit": "dcc7cd011220d7425a265c9bbf04c5731dacec1b",
      "tree": "4c2244f6e6ce94e2698572e9d2df3baea8449c2a",
      "parents": [
        "bf931a01a2c024a54204b4b02276af6e8d99a2c0",
        "b60e26a2f03d963f8c79ad7920d64abc4d38ecbc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 16:00:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 16:00:19 2009 -0800"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027kmemleak\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: fix kconfig for crc32 build error\n  kmemleak: Reduce the false positives by checking for modified objects\n  kmemleak: Show the age of an unreferenced object\n  kmemleak: Release the object lock before calling put_object()\n  kmemleak: Scan the _ftrace_events section in modules\n  kmemleak: Simplify the kmemleak_scan_area() function prototype\n  kmemleak: Do not use off-slab management with SLAB_NOLEAKTRACE\n"
    },
    {
      "commit": "58463c1fe25f7c4183f30f06a5a86cb6cd9d8231",
      "tree": "62b52d0ccbf7fc258627492240fb1ca1770639cc",
      "parents": [
        "f6325e30ebd6fc870315b017a5d4a6ab15bf790b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 17 11:43:12 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 17 11:43:13 2009 +1030"
      },
      "message": "cpumask: avoid deprecated function in mm/slab.c\n\nThese days we use cpumask_empty() which takes a pointer.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2205afa7d13ec716935dfd4b8ff71059ee7aeb0c",
      "tree": "19e63ed8040e8a82c3cdd331458d246247466a28",
      "parents": [
        "491424c0f46c282a854b88830212bdb0763e93dc",
        "2cd9046cc53dd2625e2cf5854d6cbb1ba61de914"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 10:13:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 10:13:22 2009 -0800"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf sched: Fix build failure on sparc\n  perf bench: Add \"all\" pseudo subsystem and \"all\" pseudo suite\n  perf tools: Introduce perf_session class\n  perf symbols: Ditch dso-\u003efind_symbol\n  perf symbols: Allow lookups by symbol name too\n  perf symbols: Add missing \"Variables\" entry to map_type__name\n  perf symbols: Add support for \u0027variable\u0027 symtabs\n  perf symbols: Introduce ELF counterparts to symbol_type__is_a\n  perf symbols: Introduce symbol_type__is_a\n  perf symbols: Rename kthreads to kmaps, using another abstraction for it\n  perf tools: Allow building for ARM\n  hw-breakpoints: Handle bad modify_user_hw_breakpoint off-case return value\n  perf tools: Allow cross compiling\n  tracing, slab: Fix no callsite ifndef CONFIG_KMEMTRACE\n  tracing, slab: Define kmem_cache_alloc_notrace ifdef CONFIG_TRACING\n\nTrivial conflict due to different fixes to modify_user_hw_breakpoint()\nin include/linux/hw_breakpoint.h\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "355d79c87a53aa08c33deba184b8c87763a08270",
      "tree": "93b0e0a65e8a9c4abdd9297b614db2a8bc2a68a4",
      "parents": [
        "053fe57ac249a9531c396175778160d9e9509399",
        "8e15b79cf4bd20c6afb4663d98a39cd004eee672",
        "ddbf2e8366f2a7fa3419be418cfd83a914d2527f",
        "74e2134ff892ee4ea4fbd52637060b71e540faf1",
        "78eb00cc574d3dbf8e6bed804948a89e8110a064"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Dec 12 10:12:19 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Dec 12 10:12:19 2009 +0200"
      },
      "message": "Merge branches \u0027slab/fixes\u0027, \u0027slab/kmemleak\u0027, \u0027slub/perf\u0027 and \u0027slub/stats\u0027 into for-linus\n"
    },
    {
      "commit": "0bb38a5cdeb39f543657ec6fb9950343d2de6918",
      "tree": "52198d56b8f0301ae553288d2ff2c4f5d5409519",
      "parents": [
        "0f24f1287a86b198c1e4bd4ce45e8565e40ff804"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Dec 11 15:45:50 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 11 09:17:03 2009 +0100"
      },
      "message": "tracing, slab: Fix no callsite ifndef CONFIG_KMEMTRACE\n\nFor slab, if CONFIG_KMEMTRACE and CONFIG_DEBUG_SLAB are not set,\n__do_kmalloc() will not track callers:\n\n # ./perf record -f -a -R -e kmem:kmalloc\n ^C\n # ./perf trace\n ...\n          perf-2204  [000]   147.376774: kmalloc: call_site\u003dc0529d2d ...\n          perf-2204  [000]   147.400997: kmalloc: call_site\u003dc0529d2d ...\n          Xorg-1461  [001]   147.405413: kmalloc: call_site\u003d0 ...\n          Xorg-1461  [001]   147.405609: kmalloc: call_site\u003d0 ...\n       konsole-1776  [001]   147.405786: kmalloc: call_site\u003d0 ...\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: linux-mm@kvack.org \u003clinux-mm@kvack.org\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c4B21F8AE.6020804@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f24f1287a86b198c1e4bd4ce45e8565e40ff804",
      "tree": "7d13bfec87c7b67ffc701271484dc8d96080643c",
      "parents": [
        "125580380f418000b1a06d9a54700f1191b6e561"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Dec 11 15:45:30 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 11 09:17:02 2009 +0100"
      },
      "message": "tracing, slab: Define kmem_cache_alloc_notrace ifdef CONFIG_TRACING\n\nDefine kmem_trace_alloc_{,node}_notrace() if CONFIG_TRACING is\nenabled, otherwise perf-kmem will show wrong stats ifndef\nCONFIG_KMEM_TRACE, because a kmalloc() memory allocation may\nbe traced by both trace_kmalloc() and trace_kmem_cache_alloc().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: linux-mm@kvack.org \u003clinux-mm@kvack.org\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c4B21F89A.7000801@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ddbf2e8366f2a7fa3419be418cfd83a914d2527f",
      "tree": "eb5780e7a91ccae58f7754e13627804f5f893320",
      "parents": [
        "f3d8b53a3abbfd0b74fa5dfaa690870d9619fad9"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Wed Dec 02 16:55:50 2009 +0900"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Dec 06 10:24:03 2009 +0200"
      },
      "message": "slab, kmemleak: pass the correct pointer to kmemleak_erase()\n\nIn ____cache_alloc(), the variable \u0027ac\u0027 may be changed after\ncache_alloc_refill() and the following kmemleak_erase() may get an incorrect\npointer. Update \u0027ac\u0027 after cache_alloc_refill() unconditionally.\n\nSee the following URL for the discussion of this patch:\n\n http://marc.info/?l\u003dlinux-kernel\u0026m\u003d125873373124187\u0026w\u003d2\n\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "f3d8b53a3abbfd0b74fa5dfaa690870d9619fad9",
      "tree": "0077e9af30a2fadf6d02da5420c9d979f80a3ee5",
      "parents": [
        "648f4e3e50c4793d9dbf9a09afa193631f76fa26"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Wed Dec 02 16:55:49 2009 +0900"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Dec 06 10:23:05 2009 +0200"
      },
      "message": "slab, kmemleak: stop calling kmemleak_erase() unconditionally\n\nWhen the gotten object is NULL (probably due to ENOMEM), kmemleak_erase() is\nunnecessary here, It just sets NULL to where already is NULL.  Add a condition.\n\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "8e15b79cf4bd20c6afb4663d98a39cd004eee672",
      "tree": "07fd37869099565727a20ba85cb5b557c5e84fe8",
      "parents": [
        "ce79ddc8e2376a9a93c7d42daf89bfcbb9187e62"
      ],
      "author": {
        "name": "Tim Blechmann",
        "email": "tim@klingt.org",
        "time": "Mon Nov 30 18:59:34 2009 +0100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Dec 06 10:21:21 2009 +0200"
      },
      "message": "SLAB: Fix unlikely() annotation in __cache_alloc_node()\n\nBranch profiling on my nehalem machine showed 99% incorrect branch hints:\n\n   28459  7678524  99 __cache_alloc_node             slab.c               3551\n\nDiscussion on lkml [1] led to the solution to remove this hint.\n\n[1] http://patchwork.kernel.org/patch/63517/\n\nSigned-off-by: Tim Blechmann \u003ctim@klingt.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "ce79ddc8e2376a9a93c7d42daf89bfcbb9187e62",
      "tree": "cddd58bd72e34bb1955bafb944bf262c20c2de04",
      "parents": [
        "648f4e3e50c4793d9dbf9a09afa193631f76fa26"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Nov 23 22:01:15 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Nov 30 19:16:08 2009 +0200"
      },
      "message": "SLAB: Fix lockdep annotations for CPU hotplug\n\nAs reported by Paul McKenney:\n\n  I am seeing some lockdep complaints in rcutorture runs that include\n  frequent CPU-hotplug operations.  The tests are otherwise successful.\n  My first thought was to send a patch that gave each array_cache\n  structure\u0027s -\u003elock field its own struct lock_class_key, but you already\n  have a init_lock_keys() that seems to be intended to deal with this.\n\n  ------------------------------------------------------------------------\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible recursive locking detected ]\n  2.6.32-rc4-autokern1 #1\n  ---------------------------------------------\n  syslogd/2908 is trying to acquire lock:\n   (\u0026nc-\u003elock){..-...}, at: [\u003cc0000000001407f4\u003e] .kmem_cache_free+0x118/0x2d4\n\n  but task is already holding lock:\n   (\u0026nc-\u003elock){..-...}, at: [\u003cc0000000001411bc\u003e] .kfree+0x1f0/0x324\n\n  other info that might help us debug this:\n  3 locks held by syslogd/2908:\n   #0:  (\u0026u-\u003ereadlock){+.+.+.}, at: [\u003cc0000000004556f8\u003e] .unix_dgram_recvmsg+0x70/0x338\n   #1:  (\u0026nc-\u003elock){..-...}, at: [\u003cc0000000001411bc\u003e] .kfree+0x1f0/0x324\n   #2:  (\u0026parent-\u003elist_lock){-.-...}, at: [\u003cc000000000140f64\u003e] .__drain_alien_cache+0x50/0xb8\n\n  stack backtrace:\n  Call Trace:\n  [c0000000e8ccafc0] [c0000000000101e4] .show_stack+0x70/0x184 (unreliable)\n  [c0000000e8ccb070] [c0000000000afebc] .validate_chain+0x6ec/0xf58\n  [c0000000e8ccb180] [c0000000000b0ff0] .__lock_acquire+0x8c8/0x974\n  [c0000000e8ccb280] [c0000000000b2290] .lock_acquire+0x140/0x18c\n  [c0000000e8ccb350] [c000000000468df0] ._spin_lock+0x48/0x70\n  [c0000000e8ccb3e0] [c0000000001407f4] .kmem_cache_free+0x118/0x2d4\n  [c0000000e8ccb4a0] [c000000000140b90] .free_block+0x130/0x1a8\n  [c0000000e8ccb540] [c000000000140f94] .__drain_alien_cache+0x80/0xb8\n  [c0000000e8ccb5e0] [c0000000001411e0] .kfree+0x214/0x324\n  [c0000000e8ccb6a0] [c0000000003ca860] .skb_release_data+0xe8/0x104\n  [c0000000e8ccb730] [c0000000003ca2ec] .__kfree_skb+0x20/0xd4\n  [c0000000e8ccb7b0] [c0000000003cf2c8] .skb_free_datagram+0x1c/0x5c\n  [c0000000e8ccb830] [c00000000045597c] .unix_dgram_recvmsg+0x2f4/0x338\n  [c0000000e8ccb920] [c0000000003c0f14] .sock_recvmsg+0xf4/0x13c\n  [c0000000e8ccbb30] [c0000000003c28ec] .SyS_recvfrom+0xb4/0x130\n  [c0000000e8ccbcb0] [c0000000003bfb78] .sys_recv+0x18/0x2c\n  [c0000000e8ccbd20] [c0000000003ed388] .compat_sys_recv+0x14/0x28\n  [c0000000e8ccbd90] [c0000000003ee1bc] .compat_sys_socketcall+0x178/0x220\n  [c0000000e8ccbe30] [c0000000000085d4] syscall_exit+0x0/0x40\n\nThis patch fixes the issue by setting up lockdep annotations during CPU\nhotplug.\n\nReported-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "1871e52c76dd95895caeb772f845a1718dcbcd75",
      "tree": "49e8148326f65353e673204f427bd4545eb26c16",
      "parents": [
        "0f5e4816dbf38ce9488e611ca2296925c1e90d5e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "message": "percpu: make percpu symbols under kernel/ and mm/ unique\n\nThis patch updates percpu related symbols under kernel/ and mm/ such\nthat percpu symbols are unique and don\u0027t clash with local symbols.\nThis serves two purposes of decreasing the possibility of global\npercpu symbol collision and allowing dropping per_cpu__ prefix from\npercpu symbols.\n\n* kernel/lockdep.c: s/lock_stats/cpu_lock_stats/\n\n* kernel/sched.c: s/init_rq_rt/init_rt_rq_var/\t(any better idea?)\n  \t\t  s/sched_group_cpus/sched_groups/\n\n* kernel/softirq.c: s/ksoftirqd/run_ksoftirqd/a\n\n* kernel/softlockup.c: s/(*)_timestamp/softlockup_\\1_ts/\n  \t\t       s/watchdog_task/softlockup_watchdog/\n\t\t       s/timestamp/ts/ for local variables\n\n* kernel/time/timer_stats: s/lookup_lock/tstats_lookup_lock/\n\n* mm/slab.c: s/reap_work/slab_reap_work/\n  \t     s/reap_node/slab_reap_node/\n\n* mm/vmstat.c: local variable changed to avoid collision with vmstat_work\n\nPartly based on Rusty Russell\u0027s \"alloc_percpu: rename percpu vars\nwhich cause name clashes\" patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: (slab/vmstat) Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "c017b4be3e84176cab10eca5e6c4faeb8cfc6f3e",
      "tree": "b858895759880262dff8754ef58b3e716bebae2c",
      "parents": [
        "e7cb55b946a2182c347047dc903c6ed0daef100c"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 13:33:09 2009 +0000"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 15:11:00 2009 +0000"
      },
      "message": "kmemleak: Simplify the kmemleak_scan_area() function prototype\n\nThis function was taking non-necessary arguments which can be determined\nby kmemleak. The patch also modifies the calling sites.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e7cb55b946a2182c347047dc903c6ed0daef100c",
      "tree": "28cc01bd513418a4917358b748481d3a31f69ab1",
      "parents": [
        "012abeea669ea49636cf952d13298bb68654146a"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 13:33:08 2009 +0000"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Oct 28 13:33:08 2009 +0000"
      },
      "message": "kmemleak: Do not use off-slab management with SLAB_NOLEAKTRACE\n\nWith the slab allocator, if off-slab management is enabled for the\nkmem_caches used by kmemleak, it leads to recursive calls into\nkmemleak_alloc(). Off-slab management can be triggered by other config\noptions increasing the slab size, e.g. DEBUG_PAGEALLOC.\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "4481374ce88ba8f460c8b89f2572027bd27057d0",
      "tree": "6896601b6a1da0e3e932ffa75fcff966c834c02c",
      "parents": [
        "4738e1b9cf8f9e28d7de080a5e6ce5d0095ea18f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Sep 21 17:03:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: replace various uses of num_physpages by totalram_pages\n\nSizing of memory allocations shouldn\u0027t depend on the number of physical\npages found in a system, as that generally includes (perhaps a huge amount\nof) non-RAM pages.  The amount of what actually is usable as storage\nshould instead be used as a basis here.\n\nSome of the calculations (i.e.  those not intending to use high memory)\nshould likely even use (totalram_pages - totalhigh_pages).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec5a36f94e7ca4b1f28ae4dd135cd415a704e772",
      "tree": "04867e524b616871cc2d564d30e3f376f702e34c",
      "parents": [
        "7ed9f7e5db58c6e8c2b4b738a75d5dcd8e17aad5"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jun 29 09:57:10 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jun 29 09:57:10 2009 +0300"
      },
      "message": "SLAB: Fix lockdep annotations\n\nCommit 8429db5... (\"slab: setup cpu caches later on when interrupts are\nenabled\") broke mm/slab.c lockdep annotations:\n\n  [   11.554715] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [   11.555249] [ INFO: possible recursive locking detected ]\n  [   11.555560] 2.6.31-rc1 #896\n  [   11.555861] ---------------------------------------------\n  [   11.556127] udevd/1899 is trying to acquire lock:\n  [   11.556436]  (\u0026nc-\u003elock){-.-...}, at: [\u003cffffffff810c337f\u003e] kmem_cache_free+0xcd/0x25b\n  [   11.557101]\n  [   11.557102] but task is already holding lock:\n  [   11.557706]  (\u0026nc-\u003elock){-.-...}, at: [\u003cffffffff810c3cd0\u003e] kfree+0x137/0x292\n  [   11.558109]\n  [   11.558109] other info that might help us debug this:\n  [   11.558720] 2 locks held by udevd/1899:\n  [   11.558983]  #0:  (\u0026nc-\u003elock){-.-...}, at: [\u003cffffffff810c3cd0\u003e] kfree+0x137/0x292\n  [   11.559734]  #1:  (\u0026parent-\u003elist_lock){-.-...}, at: [\u003cffffffff810c36c7\u003e] __drain_alien_cache+0x3b/0xbd\n  [   11.560442]\n  [   11.560443] stack backtrace:\n  [   11.561009] Pid: 1899, comm: udevd Not tainted 2.6.31-rc1 #896\n  [   11.561276] Call Trace:\n  [   11.561632]  [\u003cffffffff81065ed6\u003e] __lock_acquire+0x15ec/0x168f\n  [   11.561901]  [\u003cffffffff81065f60\u003e] ? __lock_acquire+0x1676/0x168f\n  [   11.562171]  [\u003cffffffff81063c52\u003e] ? trace_hardirqs_on_caller+0x113/0x13e\n  [   11.562490]  [\u003cffffffff8150c337\u003e] ? trace_hardirqs_on_thunk+0x3a/0x3f\n  [   11.562807]  [\u003cffffffff8106603a\u003e] lock_acquire+0xc1/0xe5\n  [   11.563073]  [\u003cffffffff810c337f\u003e] ? kmem_cache_free+0xcd/0x25b\n  [   11.563385]  [\u003cffffffff8150c8fc\u003e] _spin_lock+0x31/0x66\n  [   11.563696]  [\u003cffffffff810c337f\u003e] ? kmem_cache_free+0xcd/0x25b\n  [   11.563964]  [\u003cffffffff810c337f\u003e] kmem_cache_free+0xcd/0x25b\n  [   11.564235]  [\u003cffffffff8109bf8c\u003e] ? __free_pages+0x1b/0x24\n  [   11.564551]  [\u003cffffffff810c3564\u003e] slab_destroy+0x57/0x5c\n  [   11.564860]  [\u003cffffffff810c3641\u003e] free_block+0xd8/0x123\n  [   11.565126]  [\u003cffffffff810c372e\u003e] __drain_alien_cache+0xa2/0xbd\n  [   11.565441]  [\u003cffffffff810c3ce5\u003e] kfree+0x14c/0x292\n  [   11.565752]  [\u003cffffffff8144a007\u003e] skb_release_data+0xc6/0xcb\n  [   11.566020]  [\u003cffffffff81449cf0\u003e] __kfree_skb+0x19/0x86\n  [   11.566286]  [\u003cffffffff81449d88\u003e] consume_skb+0x2b/0x2d\n  [   11.566631]  [\u003cffffffff8144cbe0\u003e] skb_free_datagram+0x14/0x3a\n  [   11.566901]  [\u003cffffffff81462eef\u003e] netlink_recvmsg+0x164/0x258\n  [   11.567170]  [\u003cffffffff81443461\u003e] sock_recvmsg+0xe5/0xfe\n  [   11.567486]  [\u003cffffffff810ab063\u003e] ? might_fault+0xaf/0xb1\n  [   11.567802]  [\u003cffffffff81053a78\u003e] ? autoremove_wake_function+0x0/0x38\n  [   11.568073]  [\u003cffffffff810d84ca\u003e] ? core_sys_select+0x3d/0x2b4\n  [   11.568378]  [\u003cffffffff81065f60\u003e] ? __lock_acquire+0x1676/0x168f\n  [   11.568693]  [\u003cffffffff81442dc1\u003e] ? sockfd_lookup_light+0x1b/0x54\n  [   11.568961]  [\u003cffffffff81444416\u003e] sys_recvfrom+0xa3/0xf8\n  [   11.569228]  [\u003cffffffff81063c8a\u003e] ? trace_hardirqs_on+0xd/0xf\n  [   11.569546]  [\u003cffffffff8100af2b\u003e] system_call_fastpath+0x16/0x1b#\n\nFix that up.\n\nCloses-bug: http://bugzilla.kernel.org/show_bug.cgi?id\u003d13654\nTested-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "7ed9f7e5db58c6e8c2b4b738a75d5dcd8e17aad5",
      "tree": "c8ee9b63e1e8d3925b8a08a2b21a331434d183b5",
      "parents": [
        "28d0325ce6e0a52f53d8af687e6427fee59004d3"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 25 12:31:37 2009 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 26 12:10:47 2009 +0300"
      },
      "message": "fix RCU-callback-after-kmem_cache_destroy problem in sl[aou]b\n\nJesper noted that kmem_cache_destroy() invokes synchronize_rcu() rather than\nrcu_barrier() in the SLAB_DESTROY_BY_RCU case, which could result in RCU\ncallbacks accessing a kmem_cache after it had been destroyed.\n\nCc: \u003cstable@kernel.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nReported-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "dcce284a259373f9e5570f2e33f79eca84fcf565",
      "tree": "afc4b23208974f17c080ea3d2ecfbaca4254c010",
      "parents": [
        "9729a6eb5878a3daa18395f2b5fb38bf9359a761"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Jun 18 13:24:12 2009 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:12:57 2009 -0700"
      },
      "message": "mm: Extend gfp masking to the page allocator\n\nThe page allocator also needs the masking of gfp flags during boot,\nso this moves it out of slab/slub and uses it with the page allocator\nas well.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e03ab9d415c47e1ff485b646f95604d3e3a91708",
      "tree": "61e9eecfbc46cf546a7e9c5ab206ae64fb860550",
      "parents": [
        "65795efbd380a832ae508b04dba8f8e53f0b84d9",
        "a234bdc9aecc299ba41ffe8023b3ea110df9f51b",
        "6746136520cd0827320a83e62d0a023a5a433650",
        "7303f240981888884412a97ac742772527356880",
        "95f8598931bd86a5775073db2fa2004b892dd3d0"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jun 17 08:30:15 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jun 17 08:30:15 2009 +0300"
      },
      "message": "Merge branches \u0027slab/documentation\u0027, \u0027slab/fixes\u0027, \u0027slob/cleanups\u0027 and \u0027slub/fixes\u0027 into for-linus\n"
    },
    {
      "commit": "517d08699b250021303f9a7cf0d758b6dc0748ed",
      "tree": "5e5b0134c3fffb78fe9d8b1641a64ff28fdd7bbc",
      "parents": [
        "8eeee4e2f04fc551f50c9d9847da2d73d7d33728",
        "a34601c5d84134055782ee031d58d82f5440e918"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027\n\n* akpm: (182 commits)\n  fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset\n  fbdev: *bfin*: fix __dev{init,exit} markings\n  fbdev: *bfin*: drop unnecessary calls to memset\n  fbdev: bfin-t350mcqb-fb: drop unused local variables\n  fbdev: blackfin has __raw I/O accessors, so use them in fb.h\n  fbdev: s1d13xxxfb: add accelerated bitblt functions\n  tcx: use standard fields for framebuffer physical address and length\n  fbdev: add support for handoff from firmware to hw framebuffers\n  intelfb: fix a bug when changing video timing\n  fbdev: use framebuffer_release() for freeing fb_info structures\n  radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?\n  s3c-fb: CPUFREQ frequency scaling support\n  s3c-fb: fix resource releasing on error during probing\n  carminefb: fix possible access beyond end of carmine_modedb[]\n  acornfb: remove fb_mmap function\n  mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF\n  mb862xxfb: restrict compliation of platform driver to PPC\n  Samsung SoC Framebuffer driver: add Alpha Channel support\n  atmel-lcdc: fix pixclock upper bound detection\n  offb: use framebuffer_alloc() to allocate fb_info struct\n  ...\n\nManually fix up conflicts due to kmemcheck in mm/slab.c\n"
    },
    {
      "commit": "b6e68bc1baed9b6972a250aba66b8c5276cf6fb1",
      "tree": "193af67b8333417347b9324e4bf9963d7cf0a872",
      "parents": [
        "62bc62a873116805774ffd37d7f86aa4faa832b1"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: slab: use nr_online_nodes to check for a NUMA platform\n\nSLAB currently avoids checking a bitmap repeatedly by checking once and\nstoring a flag.  When the addition of nr_online_nodes as a cheaper version\nof num_online_nodes(), this check can be replaced by nr_online_nodes.\n\n(Christoph did a patch that this is lifted almost verbatim from)\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6484eb3e2a81807722c5f28efef94d8338b7b996",
      "tree": "10ce36f412c2ff0c7eb399af1a189f8e354f56db",
      "parents": [
        "b3c466ce512923298ae8c0121d3e9f397a3f1210"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: do not check NUMA node ID when the caller knows the node is valid\n\nCallers of alloc_pages_node() can optionally specify -1 as a node to mean\n\"allocate from the current node\".  However, a number of the callers in\nfast paths know for a fact their node is valid.  To avoid a comparison and\nbranch, this patch adds alloc_pages_exact_node() that only checks the nid\nwith VM_BUG_ON().  Callers that know their node is valid are then\nconverted.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\t[for the SLOB NUMA bits]\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "722f2a6c87f34ee0fd0130a8cf45f81e0705594a",
      "tree": "50b054df34d2731eb0ba0cf1a6c27e43e7eed428",
      "parents": [
        "7a0aeb14e18ad59394bd9bbc6e57fb345819e748",
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jun 15 15:50:49 2009 +0200"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jun 15 15:50:49 2009 +0200"
      },
      "message": "Merge commit \u0027linus/master\u0027 into HEAD\n\nConflicts:\n\tMAINTAINERS\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "b1eeab67682a5e397aecf172046b3a8bd4808ae4",
      "tree": "c357b6ac1945dc8beecc2f8c4d84660ad8d35aae",
      "parents": [
        "9b5cab31897e9e89e36c0c2a89b16b93ff1a971a"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Tue Nov 25 16:55:53 2008 +0100"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jun 15 15:48:33 2009 +0200"
      },
      "message": "kmemcheck: add hooks for the page allocator\n\nThis adds support for tracking the initializedness of memory that\nwas allocated with the page allocator. Highmem requests are not\ntracked.\n\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n\n[build fix for !CONFIG_KMEMCHECK]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n[rebased for mainline inclusion]\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "c175eea466e760de4b69b9aad90157e7aa9ff54f",
      "tree": "60bc1c115d77bba6fd6f99818eeeef2165d8e30c",
      "parents": [
        "5a896d9e7c921742d0437a452f991288f4dc2c42"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri May 09 20:35:53 2008 +0200"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Mon Jun 15 12:40:08 2009 +0200"
      },
      "message": "slab: add hooks for kmemcheck\n\nWe now have SLAB support for kmemcheck! This means that it doesn\u0027t matter\nwhether one chooses SLAB or SLUB, or indeed whether Linus chooses to chuck\nSLAB or SLUB.. ;-)\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n\n[rebased for mainline inclusion]\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "8eae985f08138758e06503588f5f1196269bc415",
      "tree": "6bcd43b5ee4cfd225ee2a630441b61c7c2ce69eb",
      "parents": [
        "b618ad31bb2020db6a36929122e5554e33210d47"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri May 09 20:32:44 2008 +0200"
      },
      "committer": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Sat Jun 13 08:58:43 2009 +0200"
      },
      "message": "slab: move struct kmem_cache to headers\n\nMove the SLAB struct kmem_cache definition to \u003clinux/slab_def.h\u003e like\nwith SLUB so kmemcheck can access -\u003ector and -\u003eflags.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n\n[rebased for mainline inclusion]\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n"
    },
    {
      "commit": "8429db5c6336083594036c30f49401405d536911",
      "tree": "00ab1aa8e222f384bac0e66b7da195279b1c7698",
      "parents": [
        "7e85ee0c1d15ca5f8bff0f514f158eba1742dd87"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 12 15:58:59 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 12 18:53:58 2009 +0300"
      },
      "message": "slab: setup cpu caches later on when interrupts are enabled\n\nFixes the following boot-time warning:\n\n  [    0.000000] ------------[ cut here ]------------\n  [    0.000000] WARNING: at kernel/smp.c:369 smp_call_function_many+0x56/0x1bc()\n  [    0.000000] Hardware name:\n  [    0.000000] Modules linked in:\n  [    0.000000] Pid: 0, comm: swapper Not tainted 2.6.30 #492\n  [    0.000000] Call Trace:\n  [    0.000000]  [\u003cffffffff8149e021\u003e] ? _spin_unlock+0x4f/0x5c\n  [    0.000000]  [\u003cffffffff8108f11b\u003e] ? smp_call_function_many+0x56/0x1bc\n  [    0.000000]  [\u003cffffffff81061764\u003e] warn_slowpath_common+0x7c/0xa9\n  [    0.000000]  [\u003cffffffff810617a5\u003e] warn_slowpath_null+0x14/0x16\n  [    0.000000]  [\u003cffffffff8108f11b\u003e] smp_call_function_many+0x56/0x1bc\n  [    0.000000]  [\u003cffffffff810f3e00\u003e] ? do_ccupdate_local+0x0/0x54\n  [    0.000000]  [\u003cffffffff810f3e00\u003e] ? do_ccupdate_local+0x0/0x54\n  [    0.000000]  [\u003cffffffff8108f2be\u003e] smp_call_function+0x3d/0x68\n  [    0.000000]  [\u003cffffffff810f3e00\u003e] ? do_ccupdate_local+0x0/0x54\n  [    0.000000]  [\u003cffffffff81066fd8\u003e] on_each_cpu+0x31/0x7c\n  [    0.000000]  [\u003cffffffff810f64f5\u003e] do_tune_cpucache+0x119/0x454\n  [    0.000000]  [\u003cffffffff81087080\u003e] ? lockdep_init_map+0x94/0x10b\n  [    0.000000]  [\u003cffffffff818133b0\u003e] ? kmem_cache_init+0x421/0x593\n  [    0.000000]  [\u003cffffffff810f69cf\u003e] enable_cpucache+0x68/0xad\n  [    0.000000]  [\u003cffffffff818133c3\u003e] kmem_cache_init+0x434/0x593\n  [    0.000000]  [\u003cffffffff8180987c\u003e] ? mem_init+0x156/0x161\n  [    0.000000]  [\u003cffffffff817f8aae\u003e] start_kernel+0x1cc/0x3b9\n  [    0.000000]  [\u003cffffffff817f829a\u003e] x86_64_start_reservations+0xaa/0xae\n  [    0.000000]  [\u003cffffffff817f837f\u003e] x86_64_start_kernel+0xe1/0xe8\n  [    0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---\n\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "7e85ee0c1d15ca5f8bff0f514f158eba1742dd87",
      "tree": "8f9c21f0df6bea88740d7dd48834ac9ffc238e93",
      "parents": [
        "eb91f1d0a531289e18f5587dc197d12a251c66a3"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 12 14:03:06 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 12 18:53:33 2009 +0300"
      },
      "message": "slab,slub: don\u0027t enable interrupts during early boot\n\nAs explained by Benjamin Herrenschmidt:\n\n  Oh and btw, your patch alone doesn\u0027t fix powerpc, because it\u0027s missing\n  a whole bunch of GFP_KERNEL\u0027s in the arch code... You would have to\n  grep the entire kernel for things that check slab_is_available() and\n  even then you\u0027ll be missing some.\n\n  For example, slab_is_available() didn\u0027t always exist, and so in the\n  early days on powerpc, we used a mem_init_done global that is set form\n  mem_init() (not perfect but works in practice). And we still have code\n  using that to do the test.\n\nTherefore, mask out __GFP_WAIT, __GFP_IO, and __GFP_FS in the slab allocators\nin early boot code to avoid enabling interrupts.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "eb91f1d0a531289e18f5587dc197d12a251c66a3",
      "tree": "1f790559b312d7481aecad90a7fd4ccf47ccdfa2",
      "parents": [
        "55cd63676e0c5710fbe1ea86dfd9f8ea9aaa90f2"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 12 14:56:09 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jun 12 18:34:32 2009 +0300"
      },
      "message": "slab: fix gfp flag in setup_cpu_cache()\n\nFixes the following warning during bootup when compiling with CONFIG_SLAB:\n\n  [    0.000000] ------------[ cut here ]------------\n  [    0.000000] WARNING: at kernel/lockdep.c:2282 lockdep_trace_alloc+0x91/0xb9()\n  [    0.000000] Hardware name:\n  [    0.000000] Modules linked in:\n  [    0.000000] Pid: 0, comm: swapper Not tainted 2.6.30 #491\n  [    0.000000] Call Trace:\n  [    0.000000]  [\u003cffffffff81087d84\u003e] ? lockdep_trace_alloc+0x91/0xb9\n  [    0.000000]  [\u003cffffffff81061764\u003e] warn_slowpath_common+0x7c/0xa9\n  [    0.000000]  [\u003cffffffff810617a5\u003e] warn_slowpath_null+0x14/0x16\n  [    0.000000]  [\u003cffffffff81087d84\u003e] lockdep_trace_alloc+0x91/0xb9\n  [    0.000000]  [\u003cffffffff810f5b03\u003e] kmem_cache_alloc_node_notrace+0x26/0xdf\n  [    0.000000]  [\u003cffffffff81487f4e\u003e] ? setup_cpu_cache+0x7e/0x210\n  [    0.000000]  [\u003cffffffff81487fe3\u003e] setup_cpu_cache+0x113/0x210\n  [    0.000000]  [\u003cffffffff810f73ff\u003e] kmem_cache_create+0x409/0x486\n  [    0.000000]  [\u003cffffffff818131c1\u003e] kmem_cache_init+0x232/0x593\n  [    0.000000]  [\u003cffffffff8180987c\u003e] ? mem_init+0x156/0x161\n  [    0.000000]  [\u003cffffffff817f8aae\u003e] start_kernel+0x1cc/0x3b9\n  [    0.000000]  [\u003cffffffff817f829a\u003e] x86_64_start_reservations+0xaa/0xae\n  [    0.000000]  [\u003cffffffff817f837f\u003e] x86_64_start_kernel+0xe1/0xe8\n  [    0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "512626a04e72aca60effe111fa0333ed0b195d21",
      "tree": "c22e23b0dcc2dd2ff5a9a96a007de6799e9223de",
      "parents": [
        "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
        "3aa27bbe7a6536d1ec859d3a97caf3319b5081b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Add the corresponding MAINTAINERS entry\n  kmemleak: Simple testing module for kmemleak\n  kmemleak: Enable the building of the memory leak detector\n  kmemleak: Remove some of the kmemleak false positives\n  kmemleak: Add modules support\n  kmemleak: Add kmemleak_alloc callback from alloc_large_system_hash\n  kmemleak: Add the vmalloc memory allocation/freeing hooks\n  kmemleak: Add the slub memory allocation/freeing hooks\n  kmemleak: Add the slob memory allocation/freeing hooks\n  kmemleak: Add the slab memory allocation/freeing hooks\n  kmemleak: Add documentation on the memory leak detector\n  kmemleak: Add the base support\n\nManual conflict resolution (with the slab/earlyboot changes) in:\n\tdrivers/char/vt.c\n\tinit/main.c\n\tmm/slab.c\n"
    },
    {
      "commit": "83b519e8b9572c319c8e0c615ee5dd7272856090",
      "tree": "ecf130629f6228d509bb52c533ca2287f966f972",
      "parents": [
        "c91c4773b334d4d3a6d44626dc2a558ad97b86f3"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jun 10 19:40:04 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 19:15:56 2009 +0300"
      },
      "message": "slab: setup allocators earlier in the boot sequence\n\nThis patch makes kmalloc() available earlier in the boot sequence so we can get\nrid of some bootmem allocations. The bulk of the changes are due to\nkmem_cache_init() being called with interrupts disabled which requires some\nchanges to allocator boostrap code.\n\nNote: 32-bit x86 does WP protect test in mem_init() so we must setup traps\nbefore we call mem_init() during boot as reported by Ingo Molnar:\n\n  We have a hard crash in the WP-protect code:\n\n  [    0.000000] Checking if this processor honours the WP bit even in supervisor mode...BUG: Int 14: CR2 ffcff000\n  [    0.000000]      EDI 00000188  ESI 00000ac7  EBP c17eaf9c  ESP c17eaf8c\n  [    0.000000]      EBX 000014e0  EDX 0000000e  ECX 01856067  EAX 00000001\n  [    0.000000]      err 00000003  EIP c10135b1   CS 00000060  flg 00010002\n  [    0.000000] Stack: c17eafa8 c17fd410 c16747bc c17eafc4 c17fd7e5 000011fd f8616000 c18237cc\n  [    0.000000]        00099800 c17bb000 c17eafec c17f1668 000001c5 c17f1322 c166e039 c1822bf0\n  [    0.000000]        c166e033 c153a014 c18237cc 00020800 c17eaff8 c17f106a 00020800 01ba5003\n  [    0.000000] Pid: 0, comm: swapper Not tainted 2.6.30-tip-02161-g7a74539-dirty #52203\n  [    0.000000] Call Trace:\n  [    0.000000]  [\u003cc15357c2\u003e] ? printk+0x14/0x16\n  [    0.000000]  [\u003cc10135b1\u003e] ? do_test_wp_bit+0x19/0x23\n  [    0.000000]  [\u003cc17fd410\u003e] ? test_wp_bit+0x26/0x64\n  [    0.000000]  [\u003cc17fd7e5\u003e] ? mem_init+0x1ba/0x1d8\n  [    0.000000]  [\u003cc17f1668\u003e] ? start_kernel+0x164/0x2f7\n  [    0.000000]  [\u003cc17f1322\u003e] ? unknown_bootoption+0x0/0x19c\n  [    0.000000]  [\u003cc17f106a\u003e] ? __init_begin+0x6a/0x6f\n\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "d5cff635290aec9ad7e6ee546aa4fae895361cbb",
      "tree": "172d99e0775a2e858d6cfa3ba0a197ecfdd03fce",
      "parents": [
        "04f70336c80c43a15e617b36c2043dfa0ad6ed0f"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:22:40 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:03:29 2009 +0100"
      },
      "message": "kmemleak: Add the slab memory allocation/freeing hooks\n\nThis patch adds the callbacks to kmemleak_(alloc|free) functions from\nthe slab allocator. The patch also adds the SLAB_NOLEAKTRACE flag to\navoid recursive calls to kmemleak when it allocates its own data\nstructures.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "6746136520cd0827320a83e62d0a023a5a433650",
      "tree": "2e57aef24fbb8e8531aad10061245ec4bddda6f9",
      "parents": [
        "45d447406a19cbfd42720f066f156f4eb9d68801"
      ],
      "author": {
        "name": "Ron Lee",
        "email": "ron@debian.org",
        "time": "Fri May 22 04:58:22 2009 +0930"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri May 22 11:01:12 2009 +0300"
      },
      "message": "slab: fix generic PAGE_POISONING conflict with SLAB_RED_ZONE\n\nA generic page poisoning mechanism was added with commit:\n 6a11f75b6a17b5d9ac5025f8d048382fd1f47377\nwhich destructively poisons full pages with a bitpattern.\n\nOn arches where PAGE_POISONING is used, this conflicts with the slab\nredzone checking enabled by DEBUG_SLAB, scribbling bits all over its\nmagic words and making it complain about that quite emphatically.\n\nOn x86 (and I presume at present all the other arches which set\nARCH_SUPPORTS_DEBUG_PAGEALLOC too), the kernel_map_pages() operation\nis non destructive so it can coexist with the other DEBUG_SLAB\nmechanisms just fine.\n\nThis patch favours the expensive full page destruction test for\ncases where there is a collision and it is explicitly selected.\n\nSigned-off-by: Ron Lee \u003cron@debian.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "02af61bb50f5d5f0322dbe5ab2a0d75808d25c7b",
      "tree": "fa087ed8a584d7b66016e6a1421e538369d52e5a",
      "parents": [
        "abd41443ac76d3e9c29a8c1d9e9a3312306cc55e"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Apr 10 14:26:18 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Apr 12 15:22:55 2009 +0200"
      },
      "message": "tracing, kmemtrace: Separate include/trace/kmemtrace.h to kmemtrace part and tracepoint part\n\nImpact: refactor code for future changes\n\nCurrent kmemtrace.h is used both as header file of kmemtrace and kmem\u0027s\ntracepoints definition.\n\nTracepoints\u0027 definition file may be used by other code, and should only have\ndefinition of tracepoint.\n\nWe can separate include/trace/kmemtrace.h into 2 files:\n\n  include/linux/kmemtrace.h: header file for kmemtrace\n  include/trace/kmem.h:      definition of kmem tracepoints\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nAcked-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c49DEE68A.5040902@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "12fe32e4f942ac5c71a4ab70b039fee65c0dc29d",
      "tree": "b0878e49e9fab1fd154fde1dd57057391831b668",
      "parents": [
        "a63856252d2112e7c452696037a86ceb12f47f80",
        "2121db74ba0fd2259f0e2265511684fadda9ac49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:30:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:30:00 2009 -0700"
      },
      "message": "Merge branch \u0027kmemtrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027kmemtrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  kmemtrace: trace kfree() calls with NULL or zero-length objects\n  kmemtrace: small cleanups\n  kmemtrace: restore original tracing data binary format, improve ABI\n  kmemtrace: kmemtrace_alloc() must fill type_id\n  kmemtrace: use tracepoints\n  kmemtrace, rcu: don\u0027t include unnecessary headers, allow kmemtrace w/ tracepoints\n  kmemtrace, rcu: fix rcupreempt.c data structure dependencies\n  kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies\n  kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies\n  kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c\n  kmemtrace, squashfs: fix slab.h dependency problem in squasfs\n  kmemtrace, befs: fix slab.h dependency problem\n  kmemtrace, security: fix linux/key.h header file dependencies\n  kmemtrace, fs: fix linux/fdtable.h header file dependencies\n  kmemtrace, fs: uninline simple_transaction_set()\n  kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "90975ef71246c5c688ead04e8ff6f36dc92d28b3",
      "tree": "eda44b2efe91509719b0e62219c2efec13a9e762",
      "parents": [
        "cab4e4c43f92582a2bfc026137b3d8a175bd0360",
        "558f6ab9106e6be701acb0257e7171df1bbccf04"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask: (36 commits)\n  cpumask: remove cpumask allocation from idle_balance, fix\n  numa, cpumask: move numa_node_id default implementation to topology.h, fix\n  cpumask: remove cpumask allocation from idle_balance\n  x86: cpumask: x86 mmio-mod.c use cpumask_var_t for downed_cpus\n  x86: cpumask: update 32-bit APM not to mug current-\u003ecpus_allowed\n  x86: microcode: cleanup\n  x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c\n  cpumask: fix CONFIG_CPUMASK_OFFSTACK\u003dy cpu hotunplug crash\n  numa, cpumask: move numa_node_id default implementation to topology.h\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  cpumask: remove x86 cpumask_t uses.\n  cpumask: use cpumask_var_t in uv_flush_tlb_others.\n  cpumask: remove cpumask_t assignment from vector_allocation_domain()\n  cpumask: make Xen use the new operators.\n  cpumask: clean up summit\u0027s send_IPI functions\n  cpumask: use new cpumask functions throughout x86\n  x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask\n  cpumask: convert struct cpuinfo_x86\u0027s llc_shared_map to cpumask_var_t\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  x86: unify 32 and 64-bit node_to_cpumask_map\n  ...\n"
    },
    {
      "commit": "2121db74ba0fd2259f0e2265511684fadda9ac49",
      "tree": "823401f3bce7018535ceea69103a28accd5794f7",
      "parents": [
        "c826e3cd0c931d60d548f2468122da570d145556"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Mar 25 11:05:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:10 2009 +0200"
      },
      "message": "kmemtrace: trace kfree() calls with NULL or zero-length objects\n\nImpact: also output kfree(NULL) entries\n\nThis patch moves the trace_kfree() calls before the ZERO_OR_NULL_PTR\ncheck so that we can trace call-sites that call kfree() with NULL many\ntimes which might be an indication of a bug.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c1237971957.30175.18.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca2b84cb3c4a0d4d2143b46ec072cdff5d1b3b87",
      "tree": "7163bac040f11c444b24cab53c4a784df73fa4f3",
      "parents": [
        "ac44021fccd8f1f2b267b004f23a2e8d7ef05f7b"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:06 2009 +0200"
      },
      "message": "kmemtrace: use tracepoints\n\nkmemtrace now uses tracepoints instead of markers. We no longer need to\nuse format specifiers to pass arguments.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\n[ folded: Use the new TP_PROTO and TP_ARGS to fix the build.     ]\n[ folded: fix build when CONFIG_KMEMTRACE is disabled.           ]\n[ folded: define tracepoints when CONFIG_TRACEPOINTS is enabled. ]\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003cae61c0f37156db8ec8dc0d5778018edde60a92e3.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf6aede712334d7338d5c47a5ee5ba3883c82a61",
      "tree": "153483c5ef1de41f8dd3d233ba46117d0676c303",
      "parents": [
        "e4c2ff1cf2d7fc65d0fc6f88bc98338e0212ad52"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Apr 02 16:56:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "workqueue: add to_delayed_work() helper function\n\nIt is a fairly common operation to have a pointer to a work and to need a\npointer to the delayed work it is contained in.  In particular, all\ndelayed works which want to rearm themselves will have to do that.  So it\nwould seem fair to offer a helper function for this operation.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "558f6ab9106e6be701acb0257e7171df1bbccf04",
      "tree": "6e811633baeb676693c493f6c82bf785cab2771d",
      "parents": [
        "15f7176eb1cccec0a332541285ee752b935c1c85",
        "65fb0d23fcddd8697c871047b700c78817bdaa43"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:33:50 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:33:50 2009 +1030"
      },
      "message": "Merge branch \u0027cpumask-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\nConflicts:\n\n\tarch/x86/include/asm/topology.h\n\tdrivers/oprofile/buffer_sync.c\n(Both cases: changed in Linus\u0027 tree, removed in Ingo\u0027s).\n"
    },
    {
      "commit": "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
      "tree": "2a2ca00bed0fc22b4eb83db092c9178868d8f76b",
      "parents": [
        "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
        "2f8501815256af8498904e68bd0984b1afffd6f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)\n  lockdep: fix deadlock in lockdep_trace_alloc\n  lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n  lockdep: annotate reclaim context (__GFP_NOFS), fix\n  lockdep: build fix for !PROVE_LOCKING\n  lockstat: warn about disabled lock debugging\n  lockdep: use stringify.h\n  lockdep: simplify check_prev_add_irq()\n  lockdep: get_user_chars() redo\n  lockdep: simplify get_user_chars()\n  lockdep: add comments to mark_lock_irq()\n  lockdep: remove macro usage from mark_held_locks()\n  lockdep: fully reduce mark_lock_irq()\n  lockdep: merge the !_READ mark_lock_irq() helpers\n  lockdep: merge the _READ mark_lock_irq() helpers\n  lockdep: simplify mark_lock_irq() helpers #3\n  lockdep: further simplify mark_lock_irq() helpers\n  lockdep: simplify the mark_lock_irq() helpers\n  lockdep: split up mark_lock_irq()\n  lockdep: generate usage strings\n  lockdep: generate the state bit definitions\n  ...\n"
    },
    {
      "commit": "a70f730282019f487aa33a84e5ac9a5e89c5abd0",
      "tree": "e6891ec5db5383c6f39617d0cc9671e1a0d1a988",
      "parents": [
        "c69fc56de1df5769f2ec69c915c7ad5afe63804c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 13 14:49:46 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 13 14:49:46 2009 +1030"
      },
      "message": "cpumask: replace node_to_cpumask with cpumask_of_node.\n\nImpact: cleanup\n\nnode_to_cpumask (and the blecherous node_to_cpumask_ptr which\ncontained a declaration) are replaced now everyone implements\ncpumask_of_node.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "28b1bd1cbc33cae95a309691d814399a69cf3070",
      "tree": "6474d10332662f5302be0df8527c9e9e31e32a95",
      "parents": [
        "2602c3ba4508f528db024c1d209256513ea05de6",
        "1075414b06109a99b0e87601e84c74a95bd45681"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:49:19 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:49:19 2009 +0100"
      },
      "message": "Merge branch \u0027core/locking\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "cf40bd16fdad42c053040bcd3988f5fdedbb6c57",
      "tree": "d97ab25726981712be806d77650b7f65167cfc88",
      "parents": [
        "6f2b9b9a9d750a9175dc79c74bfed5add840983c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 21 08:12:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 14 23:27:49 2009 +0100"
      },
      "message": "lockdep: annotate reclaim context (__GFP_NOFS)\n\nHere is another version, with the incremental patch rolled up, and\nadded reclaim context annotation to kswapd, and allocation tracing\nto slab allocators (which may only ever reach the page allocator\nin rare cases, so it is good to put annotations here too).\n\nHaven\u0027t tested this version as such, but it should be getting closer\nto merge worthy ;)\n\n--\nAfter noticing some code in mm/filemap.c accidentally perform a __GFP_FS\nallocation when it should not have been, I thought it might be a good idea to\ntry to catch this kind of thing with lockdep.\n\nI coded up a little idea that seems to work. Unfortunately the system has to\nactually be in __GFP_FS page reclaim, then take the lock, before it will mark\nit. But at least that might still be some orders of magnitude more common\n(and more debuggable) than an actual deadlock condition, so we have some\nimprovement I hope (the concept is no less complete than discovery of a lock\u0027s\ninterrupt contexts).\n\nI guess we could even do the same thing with __GFP_IO (normal reclaim), and\neven GFP_NOIO locks too... but filesystems will have the most locks and fiddly\ncode paths, so let\u0027s start there and see how it goes.\n\nIt *seems* to work. I did a quick test.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: inconsistent lock state ]\n2.6.28-rc6-00007-ged31348-dirty #26\n---------------------------------\ninconsistent {in-reclaim-W} -\u003e {ov-reclaim-W} usage.\nmodprobe/8526 [HC0[0]:SC0[0]:HE1:SE1] takes:\n (testlock){--..}, at: [\u003cffffffffa0020055\u003e] brd_init+0x55/0x216 [brd]\n{in-reclaim-W} state was registered at:\n  [\u003cffffffff80267bdb\u003e] __lock_acquire+0x75b/0x1a60\n  [\u003cffffffff80268f71\u003e] lock_acquire+0x91/0xc0\n  [\u003cffffffff8070f0e1\u003e] mutex_lock_nested+0xb1/0x310\n  [\u003cffffffffa002002b\u003e] brd_init+0x2b/0x216 [brd]\n  [\u003cffffffff8020903b\u003e] _stext+0x3b/0x170\n  [\u003cffffffff80272ebf\u003e] sys_init_module+0xaf/0x1e0\n  [\u003cffffffff8020c3fb\u003e] system_call_fastpath+0x16/0x1b\n  [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\nirq event stamp: 3929\nhardirqs last  enabled at (3929): [\u003cffffffff8070f2b5\u003e] mutex_lock_nested+0x285/0x310\nhardirqs last disabled at (3928): [\u003cffffffff8070f089\u003e] mutex_lock_nested+0x59/0x310\nsoftirqs last  enabled at (3732): [\u003cffffffff8061f623\u003e] sk_filter+0x83/0xe0\nsoftirqs last disabled at (3730): [\u003cffffffff8061f5b6\u003e] sk_filter+0x16/0xe0\n\nother info that might help us debug this:\n1 lock held by modprobe/8526:\n #0:  (testlock){--..}, at: [\u003cffffffffa0020055\u003e] brd_init+0x55/0x216 [brd]\n\nstack backtrace:\nPid: 8526, comm: modprobe Not tainted 2.6.28-rc6-00007-ged31348-dirty #26\nCall Trace:\n [\u003cffffffff80265483\u003e] print_usage_bug+0x193/0x1d0\n [\u003cffffffff80266530\u003e] mark_lock+0xaf0/0xca0\n [\u003cffffffff80266735\u003e] mark_held_locks+0x55/0xc0\n [\u003cffffffffa0020000\u003e] ? brd_init+0x0/0x216 [brd]\n [\u003cffffffff802667ca\u003e] trace_reclaim_fs+0x2a/0x60\n [\u003cffffffff80285005\u003e] __alloc_pages_internal+0x475/0x580\n [\u003cffffffff8070f29e\u003e] ? mutex_lock_nested+0x26e/0x310\n [\u003cffffffffa0020000\u003e] ? brd_init+0x0/0x216 [brd]\n [\u003cffffffffa002006a\u003e] brd_init+0x6a/0x216 [brd]\n [\u003cffffffffa0020000\u003e] ? brd_init+0x0/0x216 [brd]\n [\u003cffffffff8020903b\u003e] _stext+0x3b/0x170\n [\u003cffffffff8070f8b9\u003e] ? mutex_unlock+0x9/0x10\n [\u003cffffffff8070f83d\u003e] ? __mutex_unlock_slowpath+0x10d/0x180\n [\u003cffffffff802669ec\u003e] ? trace_hardirqs_on_caller+0x12c/0x190\n [\u003cffffffff80272ebf\u003e] sys_init_module+0xaf/0x1e0\n [\u003cffffffff8020c3fb\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c511f740fe7031867f51831854360e8be1ba34c",
      "tree": "bd678fbc8117f751a3d1f8dc93b91c215ceaf66f",
      "parents": [
        "e7669b8e329255bbcb40af65b38e342825d97a46",
        "00f62f614bb713027b9296068d1879fbca511eb7",
        "b22f4858126a6aa852ad745b94f6b25dbdea708e",
        "071a0bc2ceace31266836801510879407a3701fa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 13 10:25:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 13 10:25:18 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/ring-buffer\u0027, \u0027tracing/sysprof\u0027, \u0027tracing/urgent\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "b1aabecd55931ee754f6a913969516b26a0e682e",
      "tree": "a52357aabb016960d80fce9a7ad0f78441e9f5c1",
      "parents": [
        "b578f3fcca1e78624dfb5f358776e63711d7fda2"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Feb 10 15:21:44 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Feb 12 17:50:46 2009 +0200"
      },
      "message": "mm: Export symbol ksize()\n\nCommit 7b2cd92adc5430b0c1adeb120971852b4ea1ab08 (\"crypto: api - Fix\nzeroing on free\") added modular user of ksize(). Export that to fix\ncrypto.ko compilation.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "3d7a96f5a485b7d06c2379f343d7312af89ec9e2",
      "tree": "5f097f68eb0f9fd3fa4a10f38672e300e9127b10",
      "parents": [
        "723cbe0775514853c22dc45005af59c360916af1",
        "238c6d54830c624f34ac9cf123ac04aebfca5013"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 06 09:53:05 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 06 09:53:05 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/kmemtrace2\n"
    },
    {
      "commit": "174596a0b9f21e8844d70566a6bb29bf48a87750",
      "tree": "e16bc37554afe1996c464cadb09764290b4ff3be",
      "parents": [
        "41c7bb9588904eb060a95bcad47bd3804a1ece25"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:29 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:29 2009 +1030"
      },
      "message": "cpumask: convert mm/\n\nImpact: Use new API\n\nConvert kernel mm functions to use struct cpumask.\n\nWe skip include/linux/percpu.h and mm/allocpercpu.c, which are in flux.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f09eac9034a4502cce558b0ec4bf7d422b8b355b",
      "tree": "b296fe90dd6adb02c1fec8d7fd99f1988de6fec9",
      "parents": [
        "818fa7f3908c7bd6c0045e9d94dc23a899ef6144"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 31 09:43:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 31 09:43:46 2008 +0100"
      },
      "message": "tracing/kmemtrace: fix typo\n\nImpact: build fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "818fa7f3908c7bd6c0045e9d94dc23a899ef6144",
      "tree": "ad3435c3f57c8222ad61709b716168932f13be6c",
      "parents": [
        "3fd4bc015ef879a7d2b955ce97fb125e3a51ba7e",
        "5fdf7e5975a0b0f6a0370655612c5dca3fd6311b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 31 08:19:48 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 31 08:19:48 2008 +0100"
      },
      "message": "Merge branch \u0027tracing/kmemtrace\u0027 into tracing/kmemtrace2\n"
    },
    {
      "commit": "5fdf7e5975a0b0f6a0370655612c5dca3fd6311b",
      "tree": "639c536e818c6ace974aa285ba94576df0353b01",
      "parents": [
        "7a51cffbd10886c0557677dd916c090097c691ef",
        "6a94cb73064c952255336cc57731904174b2c58f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 31 08:14:29 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 31 08:14:29 2008 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/kmemtrace\n\nConflicts:\n\tmm/slub.c\n"
    },
    {
      "commit": "3fd4bc015ef879a7d2b955ce97fb125e3a51ba7e",
      "tree": "7c33ee197cd97b72a44c0991ff4abc4c36f3a45c",
      "parents": [
        "b6ab4afee4ed56d0f69df59485585cff828c327d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 30 12:07:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 30 16:06:00 2008 +0100"
      },
      "message": "tracing/kmemtrace: export kmemtrace_mark_alloc_node() / kmemtrace_mark_free()\n\nImpact: build fix\n\nAlso fix up Kconfig dependencies and include files.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a38b1c4f123afa4579cb1d29380b337e9195cbb",
      "tree": "cd99077aa83cd521c831aa3157e058eb4125e0c7",
      "parents": [
        "2ff9f9d9629bf9530fe2ab8d803d612761ffc059"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 29 15:29:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 30 06:56:21 2008 +0100"
      },
      "message": "kmemtrace: move #include lines\n\nImpact: avoid conflicts with kmemcheck\n\nkmemcheck modifies the same area of slab.c and slub.c - move the\ninclude lines up a bit.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "36555751c6751a5bdfd6d7bdf0648343bb1ef0de",
      "tree": "47ed7ab2c8971e4c5d2f5a902860b1cf9facbc42",
      "parents": [
        "aa46a7e0228c0477708ce44a0c5621902b3c157c"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Sun Aug 10 20:14:05 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 15:34:04 2008 +0200"
      },
      "message": "kmemtrace: SLAB hooks.\n\nThis adds hooks for the SLAB allocator, to allow tracing with kmemtrace.\n\nWe also convert some inline functions to __always_inline to make sure\n_RET_IP_, which expands to __builtin_return_address(0), always works\nas expected.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "35995a4d815586bc968a857f7235707940a2f755",
      "tree": "bbee251d5e4fc027a07cb86b3428ba5f08dffab3",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Tue Aug 19 20:43:25 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 15:33:59 2008 +0200"
      },
      "message": "SLUB: Replace __builtin_return_address(0) with _RET_IP_.\n\nThis patch replaces __builtin_return_address(0) with _RET_IP_, since a\nprevious patch moved _RET_IP_ and _THIS_IP_ to include/linux/kernel.h and\nthey\u0027re widely available now. This makes for shorter and easier to read\ncode.\n\n[penberg@cs.helsinki.fi: remove _RET_IP_ casts to void pointer]\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "3c506efd7e0f615bd9603ce8c06bc4a896952599",
      "tree": "6ebc840535e9d93bf60e21e940a5f4558275a89d",
      "parents": [
        "fd37617e69fb865348d012eb1413aef0141ae2de",
        "773ff60e841461cb1f9374a713ffcda029b8c317"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 11:47:05 2008 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 11:47:05 2008 +0200"
      },
      "message": "Merge branch \u0027topic/failslab\u0027 into for-linus\n\nConflicts:\n\n\tmm/slub.c\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "fd37617e69fb865348d012eb1413aef0141ae2de",
      "tree": "e4104ea40e7a6d8d4d24bf2f77943e609a646842",
      "parents": [
        "7b8f3b66d9d7e5f021ae535620b9b52833f4876e",
        "9f6c708e5cbf57ee31f6ddaa2cd0262087271b95",
        "249da166582801648432d0198be9407fb5ccf9f5"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 11:45:47 2008 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 11:45:47 2008 +0200"
      },
      "message": "Merge branches \u0027topic/fixes\u0027, \u0027topic/cleanups\u0027 and \u0027topic/documentation\u0027 into for-linus\n"
    },
    {
      "commit": "8759ec50a6cad7ca5a6d63e657d25b85ab5ba44a",
      "tree": "2571915f28cc329642f527996d369bc81d953e39",
      "parents": [
        "89124d706db0aa95daacfa4c0df45a43a44d44f4"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Nov 26 10:01:31 2008 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 11:40:53 2008 +0200"
      },
      "message": "slab: remove GFP_THISNODE clearing from alloc_slabmgmt()\n\nCommit 6cb062296f73e74768cca2f3eaf90deac54de02d (\"Categorize GFP flags\")\nleft one call-site in alloc_slabmgmt() to clear GFP_THISNODE instead of\nGFP_CONSTRAINT_MASK. Unfortunately, that ends up clearing __GFP_NOWARN\nand __GFP_NORETRY as well which is not what we want. As the only caller\nof alloc_slabmgmt() already clears GFP_CONSTRAINT_MASK before passing\nlocal_flags to it, we can just remove the clearing of GFP_THISNODE.\n\nThis patch should fix spurious page allocation failure warnings on the\nmempool_alloc() path. See the following URL for the original discussion\nof the bug:\n\n  http://lkml.org/lkml/2008/10/27/100\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReported-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "773ff60e841461cb1f9374a713ffcda029b8c317",
      "tree": "c3691b5a82261a3d2c1861f2913774faac63fa96",
      "parents": [
        "3c92ec8ae91ecf59d88c798301833d7cf83f2179"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Dec 23 19:37:01 2008 +0900"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 29 11:27:46 2008 +0200"
      },
      "message": "SLUB: failslab support\n\nCurrently fault-injection capability for SLAB allocator is only\navailable to SLAB. This patch makes it available to SLUB, too.\n\n[penberg@cs.helsinki.fi: unify slab and slub implementations]\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "249da166582801648432d0198be9407fb5ccf9f5",
      "tree": "15b101e9dec5be04fe080197ba489af44e098883",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Fri Nov 21 12:56:22 2008 +0000"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Nov 26 16:48:47 2008 +0200"
      },
      "message": "slab: Update the kmem_cache_create documentation regarding the name parameter\n\nkmem_cache implementations like slub are allowed to merge multiple\ncaches but only the initial name is preserved. Therefore,\nkmem_cache_name() is not guaranteed to return the same pointer passed to\nthe former function. This patch updates the documentation to make this\nclearer.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "249b9f331ec162af5a1fdb80f90cce77c2043985",
      "tree": "619fd994b598bb6970727484fbbfa6ac1f0d2388",
      "parents": [
        "e9beef1815ab3aa88925595582cf09e64b2b9894"
      ],
      "author": {
        "name": "roel kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Oct 29 17:18:07 2008 -0400"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Nov 26 16:47:26 2008 +0200"
      },
      "message": "slab: unsigned slabp-\u003einuse cannot be less than 0\n\nunsigned slabp-\u003einuse cannot be less than 0\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "ce71e27c6fdc43c29f36d307b9100bde70c947fc",
      "tree": "4c38611002eb3945835ed6bec78d6fb55118165a",
      "parents": [
        "210b5c06130f266370b5ff86e3cb6d860e1be29c"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Tue Aug 19 20:43:25 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Nov 26 16:47:25 2008 +0200"
      },
      "message": "SLUB: Replace __builtin_return_address(0) with _RET_IP_.\n\nThis patch replaces __builtin_return_address(0) with _RET_IP_, since a\nprevious patch moved _RET_IP_ and _THIS_IP_ to include/linux/kernel.h and\nthey\u0027re widely available now. This makes for shorter and easier to read\ncode.\n\n[penberg@cs.helsinki.fi: remove _RET_IP_ casts to void pointer]\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "7b3c3a50a3e0ea46815150d420fa276ac254572b",
      "tree": "a49118d99ae5bac99b660d8a44c20df2b15a7037",
      "parents": [
        "a0ec95a8e69792e4ad642daac037c9b01ea3e2cd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 02:42:17 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:20:06 2008 +0400"
      },
      "message": "proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n\nLose dummy -\u003ewrite hook in case of SLUB, it\u0027s possible now.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "a0ec95a8e69792e4ad642daac037c9b01ea3e2cd",
      "tree": "ec8f483871151c152c198b605ab7ebd6046271b8",
      "parents": [
        "d6917e19f3fda8e1f88bc23ddceed952927bd716"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 00:59:10 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:17:27 2008 +0400"
      },
      "message": "proc: move /proc/slab_allocators boilerplate to mm/slab.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "231367fd9bccbb36309ab5bf5012e11a84231031",
      "tree": "31c9282fd2c4f17ec8f7d22bb975ba84e081a22a",
      "parents": [
        "6e86841d05f371b5b9b86ce76c02aaee83352298"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jul 22 20:21:16 2008 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Jul 29 23:44:26 2008 +0300"
      },
      "message": "mm: unexport ksize\n\nThis patch removes the obsolete and no longer used exports of ksize.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a781a777b2f6ac46523fe92396215762ced624d",
      "tree": "4f34bb4aade85c0eb364b53d664ec7f6ab959006",
      "parents": [
        "b9d2252c1e44fa83a4e65fdc9eb93db6297c55af",
        "42a2f217a5e324ed5f2373ab1b7a0a15187c4d6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 15 21:55:59 2008 +0200"
      },
      "message": "Merge branch \u0027generic-ipi\u0027 into generic-ipi-for-linus\n\nConflicts:\n\n\tarch/powerpc/Kconfig\n\tarch/s390/kernel/time.c\n\tarch/x86/kernel/apic_32.c\n\tarch/x86/kernel/cpu/perfctr-watchdog.c\n\tarch/x86/kernel/i8259_64.c\n\tarch/x86/kernel/ldt.c\n\tarch/x86/kernel/nmi_64.c\n\tarch/x86/kernel/smpboot.c\n\tarch/x86/xen/smp.c\n\tinclude/asm-x86/hw_irq_32.h\n\tinclude/asm-x86/hw_irq_64.h\n\tinclude/asm-x86/mach-default/irq_vectors.h\n\tinclude/asm-x86/mach-voyager/irq_vectors.h\n\tinclude/asm-x86/smp.h\n\tkernel/Makefile\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e79aec291da55aa322ddb5d8f3bb04cdf69470d5",
      "tree": "aa49571cf5cb7a085dd8bdb9c88ad13e5a1250f7",
      "parents": [
        "88e4ccf294ca62c2da998012a83533ce150c8dce"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin@rab.in",
        "time": "Fri Jul 04 00:40:32 2008 +0530"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Jul 15 20:36:02 2008 +0300"
      },
      "message": "slab: rename slab_destroy_objs\n\nWith the removal of destructors, slab_destroy_objs no longer actually\ndestroys any objects, making the kernel doc incorrect and the function\nname misleading.\n\nIn keeping with the other debug functions, rename it to\nslab_destroy_debugcheck and drop the kernel doc.\n\nSigned-off-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "15c8b6c1aaaf1c4edd67e2f02e4d8e1bd1a51c0d",
      "tree": "3658f893c2f89ea0be4c6cc08aa11fa54476d0f4",
      "parents": [
        "8691e5a8f691cc2a4fda0651e8d307aaba0e7d68"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 09 09:39:44 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 26 11:24:38 2008 +0200"
      },
      "message": "on_each_cpu(): kill unused \u0027retry\u0027 parameter\n\nIt\u0027s not even passed on to smp_call_function() anymore, since that\nwas removed. So kill it.\n\nAcked-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "481c5346d0981940ee63037eb53e4e37b0735c10",
      "tree": "3fcae626ec4e1d4e698008671cfd62d794992ac5",
      "parents": [
        "62a8efe632be1815b544845db643f1fcd9afcfb0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sat Jun 21 16:46:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 21 16:51:02 2008 -0700"
      },
      "message": "Slab: Fix memory leak in fallback_alloc()\n\nThe zonelist patches caused the loop that checks for available\nobjects in permitted zones to not terminate immediately. One object\nper zone per allocation may be allocated and then abandoned.\n\nBreak the loop when we have successfully allocated one object.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d40cee245ff6ad05d3448401d7320be82c1c5af1",
      "tree": "5467cada898e80d5e43592393b21252312c908fa",
      "parents": [
        "d7853d1f8932c847a8d7b3b38e6baedf77148cfb"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "mm: remove remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ac7fe5a4aab409bd5674d0b070bce97f9d20872",
      "tree": "5e12e8864bb8737695e4eb9c63970602d5f69e73",
      "parents": [
        "30327acf7846c5eb97c8e31c78317a2918d3e515"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 30 00:55:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "infrastructure to debug (dynamic) objects\n\nWe can see an ever repeating problem pattern with objects of any kind in the\nkernel:\n\n1) freeing of active objects\n2) reinitialization of active objects\n\nBoth problems can be hard to debug because the crash happens at a point where\nwe have no chance to decode the root cause anymore.  One problem spot are\nkernel timers, where the detection of the problem often happens in interrupt\ncontext and usually causes the machine to panic.\n\nWhile working on a timer related bug report I had to hack specialized code\ninto the timer subsystem to get a reasonable hint for the root cause.  This\ndebug hack was fine for temporary use, but far from a mergeable solution due\nto the intrusiveness into the timer code.\n\nThe code further lacked the ability to detect and report the root cause\ninstantly and keep the system operational.\n\nKeeping the system operational is important to get hold of the debug\ninformation without special debugging aids like serial consoles and special\nknowledge of the bug reporter.\n\nThe problems described above are not restricted to timers, but timers tend to\nexpose it usually in a full system crash.  Other objects are less explosive,\nbut the symptoms caused by such mistakes can be even harder to debug.\n\nInstead of creating specialized debugging code for the timer subsystem a\ngeneric infrastructure is created which allows developers to verify their code\nand provides an easy to enable debug facility for users in case of trouble.\n\nThe debugobjects core code keeps track of operations on static and dynamic\nobjects by inserting them into a hashed list and sanity checking them on\nobject operations and provides additional checks whenever kernel memory is\nfreed.\n\nThe tracked object operations are:\n- initializing an object\n- adding an object to a subsystem list\n- deleting an object from a subsystem list\n\nEach operation is sanity checked before the operation is executed and the\nsubsystem specific code can provide a fixup function which allows to prevent\nthe damage of the operation.  When the sanity check triggers a warning message\nand a stack trace is printed.\n\nThe list of operations can be extended if the need arises.  For now it\u0027s\nlimited to the requirements of the first user (timers).\n\nThe core code enqueues the objects into hash buckets.  The hash index is\ngenerated from the address of the object to simplify the lookup for the check\non kfree/vfree.  Each bucket has it\u0027s own spinlock to avoid contention on a\nglobal lock.\n\nThe debug code can be compiled in without being active.  The runtime overhead\nis minimal and could be optimized by asm alternatives.  A kernel command line\noption enables the debugging code.\n\nThanks to Ingo Molnar for review, suggestions and cleanup patches.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b27d05b6e21249d2338be26dfcbe8f8d8ff8a5b",
      "tree": "c5413d5f64efed1aa84bfa0ab718f1e2a2f6f9cb",
      "parents": [
        "19fc3f0acde32636529969570055c7e2a744787c"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Apr 28 02:12:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:19 2008 -0700"
      },
      "message": "mm: move cache_line_size() to \u003clinux/cache.h\u003e\n\nNot all architectures define cache_line_size() so as suggested by Andrew move\nthe private implementations in mm/slab.c and mm/slob.c to \u003clinux/cache.h\u003e.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd1a239f6f2d4d3eedd318583ec319aa145b324c",
      "tree": "aff4224c96b5e2e67588c3946858a724863eeaf9",
      "parents": [
        "54a6eb5c4765aa573a030ceeba2c14e3d2ea5706"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: have zonelist contains structs with both a zone pointer and zone_idx\n\nFiltering zonelists requires very frequent use of zone_idx().  This is costly\nas it involves a lookup of another structure and a substraction operation.  As\nthe zone_idx is often required, it should be quickly accessible.  The node idx\ncould also be stored here if it was found that accessing zone-\u003enode is\nsignificant which may be the case on workloads where nodemasks are heavily\nused.\n\nThis patch introduces a struct zoneref to store a zone pointer and a zone\nindex.  The zonelist then consists of an array of these struct zonerefs which\nare looked up as necessary.  Helpers are given for accessing the zone index as\nwell as the node index.\n\n[kamezawa.hiroyu@jp.fujitsu.com: Suggested struct zoneref instead of embedding information in pointers]\n[hugh@veritas.com: mm-have-zonelist: fix memcg ooms]\n[hugh@veritas.com: just return do_try_to_free_pages]\n[hugh@veritas.com: do_try_to_free_pages gfp_mask redundant]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54a6eb5c4765aa573a030ceeba2c14e3d2ea5706",
      "tree": "547176a090beb787722a153cf2b8b942dc0e68db",
      "parents": [
        "18ea7e710d2452fa726814a406779188028cf1bf"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: use two zonelist that are filtered by GFP mask\n\nCurrently a node has two sets of zonelists, one for each zone type in the\nsystem and a second set for GFP_THISNODE allocations.  Based on the zones\nallowed by a gfp mask, one of these zonelists is selected.  All of these\nzonelists consume memory and occupy cache lines.\n\nThis patch replaces the multiple zonelists per-node with two zonelists.  The\nfirst contains all populated zones in the system, ordered by distance, for\nfallback allocations when the target/preferred node has no free pages.  The\nsecond contains all populated zones in the node suitable for GFP_THISNODE\nallocations.\n\nAn iterator macro is introduced called for_each_zone_zonelist() that interates\nthrough each zone allowed by the GFP flags in the selected zonelist.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e88460da6ab7bb6a7ef83675412ed5b6315d741",
      "tree": "1feb4de2362e4998a0deeab66af1efb9c7b8bb34",
      "parents": [
        "dac1d27bc8d5ca636d3014ecfdf94407031d1970"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: introduce node_zonelist() for accessing the zonelist for a GFP mask\n\nIntroduce a node_zonelist() helper function.  It is used to lookup the\nappropriate zonelist given a node and a GFP mask.  The patch on its own is a\ncleanup but it helps clarify parts of the two-zonelist-per-node patchset.  If\nnecessary, it can be merged with the next patch in this set without problems.\n\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5f59f0833df945eef7ff35f3dc6ba61c5f293dd",
      "tree": "32c1a94847d0154051c79011212d401462723d55",
      "parents": [
        "b53e921ba1cff8453dc9a87a84052fa12d5b30bd"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:10 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "nodemask: use new node_to_cpumask_ptr function\n\n  * Use new node_to_cpumask_ptr.  This creates a pointer to the\n    cpumask for a given node.  This definition is in mm patch:\n\n\tasm-generic-add-node_to_cpumask_ptr-macro.patch\n\n  * Use new set_cpus_allowed_ptr function.\n\nDepends on:\n\t[mm-patch]: asm-generic-add-node_to_cpumask_ptr-macro.patch\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\t[x86/latest]: x86: add cpus_scnprintf function\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Greg Banks \u003cgnb@melbourne.sgi.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ec1f5eeeb5a79a0d48036de649a3498da42db565",
      "tree": "29b34d9aae8b61633e8ad549864d97cc474ec6b2",
      "parents": [
        "53625b4204753b904addd40ca96d9ba802e6977d"
      ],
      "author": {
        "name": "Daniel Yeisley",
        "email": "dan.yeisley@unisys.com",
        "time": "Tue Mar 25 23:59:08 2008 +0200"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Mar 26 10:44:17 2008 -0700"
      },
      "message": "slab: fix cache_cache bootstrap in kmem_cache_init()\n\nCommit 556a169dab38b5100df6f4a45b655dddd3db94c1 (\"slab: fix bootstrap on\nmemoryless node\") introduced bootstrap-time cache_cache list3s for all nodes\nbut forgot that initkmem_list3 needs to be accessed by [somevalue + node]. This\npatch fixes list_add() corruption in mm/slab.c seen on the ES7000.\n\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Olaf Hering \u003colaf@aepfle.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Dan Yeisley \u003cdan.yeisley@unisys.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n"
    },
    {
      "commit": "7682486b3ee06f800d5b11033371c7c5e92e3057",
      "tree": "d0c2eda3204b085fc63200c787b2cf04f0298729",
      "parents": [
        "6cb2a21049b8990df4576c5fce4d48d0206c22d5"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Mar 19 17:00:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 19 18:53:35 2008 -0700"
      },
      "message": "mm: fix various kernel-doc comments\n\nFix various kernel-doc notation in mm/:\n\nfilemap.c: add function short description; convert 2 to kernel-doc\nfremap.c: change parameter \u0027prot\u0027 to @prot\npagewalk.c: change \"-\" in function parameters to \":\"\nslab.c: fix short description of kmem_ptr_validate()\nswap.c: fix description \u0026 parameters of put_pages_list()\nswap_state.c: fix function parameters\nvmalloc.c: change \"@returns\" to \"Returns:\" since that is not a parameter\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d2144d355d2a532e5cc3fc12a6ba2a8d4ef15e4",
      "tree": "1c27eecfce86a166ca827bfbd2fe7a46888a7bc0",
      "parents": [
        "b6210386787728b84db25adc4f1eba70440a4c73"
      ],
      "author": {
        "name": "Joe Korty",
        "email": "joe.korty@ccur.com",
        "time": "Wed Mar 05 15:04:59 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Mar 06 16:21:50 2008 -0800"
      },
      "message": "slab: NUMA slab allocator migration bugfix\n\nNUMA slab allocator cpu migration bugfix\n\nThe NUMA slab allocator (specifically, cache_alloc_refill)\nis not refreshing its local copies of what cpu and what\nnuma node it is on, when it drops and reacquires the irq\nblock that it inherited from its caller.  As a result\nthose values become invalid if an attempt to migrate the\nprocess to another numa node occured while the irq block\nhad been dropped.\n\nThe solution is to make cache_alloc_refill reload these\nvariables whenever it drops and reacquires the irq block.\n\nThe error is very difficult to hit.  When it does occur,\none gets the following oops + stack traceback bits in\ncheck_spinlock_acquired:\n\n\tkernel BUG at mm/slab.c:2417\n\tcache_alloc_refill+0xe6\n\tkmem_cache_alloc+0xd0\n\t...\n\nThis patch was developed against 2.6.23, ported to and\ncompiled-tested only against 2.6.25-rc4.\n\nSigned-off-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n"
    },
    {
      "commit": "1c61fc40fc264059ff41a614ed2d899127288281",
      "tree": "53dc93a57a21d07f02fb2fc58a6439c2186710e7",
      "parents": [
        "9ac33b2b749e9539e84bbb1a41f97b066c4bd757"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Mar 05 13:58:17 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Mar 06 16:21:49 2008 -0800"
      },
      "message": "slab - use angle brackets for include of kmalloc_sizes.h\n\nMake them all use angle brackets and the directory name.\n\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n"
    },
    {
      "commit": "9ac33b2b749e9539e84bbb1a41f97b066c4bd757",
      "tree": "3d00a7ad98e27a813e6d855fbeaf5cef5e783b96",
      "parents": [
        "b773ad73690b5f34eee0c76f4273ac6fcbd88f82"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Mar 04 12:24:22 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Mar 06 16:21:49 2008 -0800"
      },
      "message": "slab numa fallback logic: Do not pass unfiltered flags to page allocator\n\nThe NUMA fallback logic should be passing local_flags to kmem_get_pages() and not simply the\nflags passed in.\n\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n"
    },
    {
      "commit": "e51bfd0ad10600a9fe4c8ede5ac2272e80075008",
      "tree": "a204156fbb0036fb76e89ceffa15a30e90bc3f75",
      "parents": [
        "e760e716d47b48caf98da348368fd41b4a9b9e7e"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Sun Feb 10 11:21:54 2008 +0100"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 14 15:30:01 2008 -0800"
      },
      "message": "slab: avoid double initialization \u0026 do initialization in 1 place\n\n- alloc_slabmgmt: initialize all slab fields in 1 place\n- slab-\u003enodeid was initialized twice: in alloc_slabmgmt\n  and immediately after it in cache_grow\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCC: Christoph Lameter \u003cclameter@sgi.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n"
    }
  ],
  "next": "95402b3829010fe1e208f44e4a158ccade88969a"
}
