)]}'
{
  "log": [
    {
      "commit": "46666d8ac42893f90edde7e57a11bc8749d7e89c",
      "tree": "363286b0f89e1e25695770074ecd87064f80e09a",
      "parents": [
        "4d1c627389c8ba6d9e703208567ffcdbd356f682"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jan 15 13:51:15 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:40 2009 -0800"
      },
      "message": "revert \"mm: vmalloc use mutex for purge\"\n\nRevert commit e97a630eb0f5b8b380fd67504de6cedebb489003 (\"mm: vmalloc use\nmutex for purge\")\n\nBryan Donlan reports:\n\n: After testing 2.6.29-rc1 on xen-x86 with a btrfs root filesystem, I\n: got the OOPS quoted below and a hard freeze shortly after boot.\n: Boot messages and config are attached.\n:\n: ------------[ cut here ]------------\n: Kernel BUG at c05ef80d [verbose debug info unavailable]\n: invalid opcode: 0000 [#1] SMP\n: last sysfs file: /sys/block/xvdc/size\n: Modules linked in:\n:\n: Pid: 0, comm: swapper Not tainted (2.6.29-rc1 #6)\n: EIP: 0061:[\u003cc05ef80d\u003e] EFLAGS: 00010087 CPU: 2\n: EIP is at schedule+0x7cd/0x950\n: EAX: d5aeca80 EBX: 00000002 ECX: 00000000 EDX: d4cb9a40\n: ESI: c12f5600 EDI: d4cb9a40 EBP: d6033fa4 ESP: d6033ef4\n:  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0069\n: Process swapper (pid: 0, ti\u003dd6032000 task\u003dd6020b70 task.ti\u003dd6032000)\n: Stack:\n:  000d85bc 00000000 000186a0 00000000 0dd11410 c0105417 c12efe00 0dc367c3\n:  00000011 c0105d46 d5a5d310 deadbeef d4cb9a40 c07cc600 c05f1340 c12e0060\n:  deadbeef d6020b70 d6020d08 00000002 c014377d 00000000 c12f5600 00002c22\n: Call Trace:\n:  [\u003cc0105417\u003e] xen_force_evtchn_callback+0x17/0x30\n:  [\u003cc0105d46\u003e] check_events+0x8/0x12\n:  [\u003cc05f1340\u003e] _spin_unlock_irqrestore+0x20/0x40\n:  [\u003cc014377d\u003e] hrtimer_start_range_ns+0x12d/0x2e0\n:  [\u003cc014c4f6\u003e] tick_nohz_restart_sched_tick+0x146/0x160\n:  [\u003cc0107485\u003e] cpu_idle+0xa5/0xc0\n\nand bisected it to this commit.\n\nLet\u0027s remove it now while we have a think about the problem.\n\nReported-by: Bryan Donlan \u003cbdonlan@gmail.com\u003e\nTested-by: Christophe Saout \u003cchristophe@saout.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "822c18f2e38cbc775792ab65ace4f9198678dec9",
      "tree": "3d14f9e7b479a786a87a481b8f429c753c5eb6fb",
      "parents": [
        "b46578ed094122a6b36002c644711cef68aa9c9e"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Thu Jan 15 13:50:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:35 2009 -0800"
      },
      "message": "alpha: fix vmalloc breakage\n\nOn alpha, we have to map some stuff in the VMALLOC space very early in the\nboot process (to make SRM console callbacks work and so on, see\narch/alpha/mm/init.c).  For old VM allocator, we just manually placed a\nvm_struct onto the global vmlist and this worked for ages.\n\nUnfortunately, the new allocator isn\u0027t aware of this, so it constantly\ntries to allocate the VM space which is already in use, making vmalloc on\nalpha defunct.\n\nThis patch forces KVA to import vmlist entries on init.\n\n[akpm@linux-foundation.org: remove unneeded check (per Johannes)]\nSigned-off-by: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd52858c73f9f7df859a08fb08496ca39b9b3d8d",
      "tree": "c8c3d8e641484618f44dcf3b7d55ba4d42c90750",
      "parents": [
        "e97a630eb0f5b8b380fd67504de6cedebb489003"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc make lazy unmapping configurable\n\nLazy unmapping in the vmalloc code has now opened the possibility for use\nafter free bugs to go undetected.  We can catch those by forcing an unmap\nand flush (which is going to be slow, but that\u0027s what happens).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e97a630eb0f5b8b380fd67504de6cedebb489003",
      "tree": "52e337eafeb386b97630e7ffe2697550e589afc3",
      "parents": [
        "848778483351e90f9a2c587bdbe0c78b17c1e30b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:39:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc use mutex for purge\n\nThe vmalloc purge lock can be a mutex so we can sleep while a purge is\ngoing on (purge involves a global kernel TLB invalidate, so it can take\nquite a while).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "848778483351e90f9a2c587bdbe0c78b17c1e30b",
      "tree": "9248871a3e40b68a709bf69efeaf5c52cb45cbd1",
      "parents": [
        "c1279c4ef37a06ba708e6b1f6fd98b45c52770f6"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Tue Jan 06 14:39:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc improve vmallocinfo\n\nIf we do that, output of files like /proc/vmallocinfo will show things\nlike \"vmalloc_32\", \"vmalloc_user\", or whomever the caller was as the\ncaller.  This info is not as useful as the real caller of the allocation.\n\nSo, proposal is to call __vmalloc_node node directly, with matching\nparameters to save the caller information\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1279c4ef37a06ba708e6b1f6fd98b45c52770f6",
      "tree": "75c54b8d7e2733d3de052eaab7700ff6fe9a9e74",
      "parents": [
        "4917e5d0499b5ae7b26b56fccaefddf9aec9369c"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Tue Jan 06 14:39:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: vmalloc tweak failure printk\n\nIf we can\u0027t service a vmalloc allocation, show size of the allocation that\nactually failed.  Useful for debugging.\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e4e27c7d082b2198b63041310609d7191185a9d",
      "tree": "4b994ab4569e4510ff4dd4d357807121ab802782",
      "parents": [
        "7b574b7b0124ed344911f5d581e9bc2d83bbeb19"
      ],
      "author": {
        "name": "Adam Lackorzynski",
        "email": "adam@os.inf.tu-dresden.de",
        "time": "Sun Jan 04 12:00:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "vmalloc.c: fix flushing in vmap_page_range()\n\nThe flush_cache_vmap in vmap_page_range() is called with the end of the\nrange twice.  The following patch fixes this for me.\n\nSigned-off-by: Adam Lackorzynski \u003cadam@os.inf.tu-dresden.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c24624727f6d6c460e45762a408ca5f5b9b8ef2",
      "tree": "39f41dc5e46a9f0e1151963eb1d4f2b7ff77ee3d",
      "parents": [
        "6ee5a399d6a92a52646836a6e10faf255c16393e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Dec 09 13:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:54 2008 -0800"
      },
      "message": "KSYM_SYMBOL_LEN fixes\n\nMiles Lane tailing /sys files hit a BUG which Pekka Enberg has tracked\nto my 966c8c12dc9e77f931e2281ba25d2f0244b06949 sprint_symbol(): use\nless stack exposing a bug in slub\u0027s list_locations() -\nkallsyms_lookup() writes a 0 to namebuf[KSYM_NAME_LEN-1], but that was\nbeyond the end of page provided.\n\nThe 100 slop which list_locations() allows at end of page looks roughly\nenough for all the other stuff it might print after the symbol before\nit checks again: break out KSYM_SYMBOL_LEN earlier than before.\n\nLatencytop and ftrace and are using KSYM_NAME_LEN buffers where they\nneed KSYM_SYMBOL_LEN buffers, and vmallocinfo a 2*KSYM_NAME_LEN buffer\nwhere it wants a KSYM_SYMBOL_LEN buffer: fix those before anyone copies\nthem.\n\n[akpm@linux-foundation.org: ftrace.h needs module.h]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc Miles Lane \u003cmiles.lane@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b29acbdcf877009af3f1fc0750bcac314c51e055",
      "tree": "f4afe2fcecfe414b75934681cb19a037a953a4e8",
      "parents": [
        "8650e51ac94b5fe93c02e3c8fef02e416f14501c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Dec 01 13:13:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:23 2008 -0800"
      },
      "message": "mm: vmalloc fix lazy unmapping cache aliasing\n\nJim Radford has reported that the vmap subsystem rewrite was sometimes\ncausing his VIVT ARM system to behave strangely (seemed like going into\ninfinite loops trying to fault in pages to userspace).\n\nWe determined that the problem was most likely due to a cache aliasing\nissue.  flush_cache_vunmap was only being called at the moment the page\ntables were to be taken down, however with lazy unmapping, this can happen\nafter the page has subsequently been freed and allocated for something\nelse.  The dangling alias may still have dirty data attached to it.\n\nThe fix for this problem is to do the cache flushing when the caller has\ncalled vunmap -- it would be a bug for them to write anything else to the\nmapping at that point.\n\nThat appeared to solve Jim\u0027s problems.\n\nReported-by: Jim Radford \u003cradford@blackbean.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ae15132a4f5c758a6ffcde74495641dc3f62ba1",
      "tree": "c81f885105a038aa694c700e4aec37377f640881",
      "parents": [
        "496850e5f5a372029ceb2b35c811770a9bb073b6"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@redhat.com",
        "time": "Wed Nov 19 15:36:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "mm: vmalloc search restart fix\n\nCurrent vmalloc restart search for a free area in case we can\u0027t find one.\nThe reason is there are areas which are lazily freed, and could be\npossibly freed now.  However, current implementation start searching the\ntree from the last failing address, which is pretty much by definition at\nthe end of address space.  So, we fail.\n\nThe proposal of this patch is to restart the search from the beginning of\nthe requested vstart address.  This fixes the regression in running KVM\nvirtual machines for me, described in http://lkml.org/lkml/2008/10/28/349,\ncaused by commit db64fe02258f1507e13fe5212a989922323685ce.\n\nSigned-off-by: Glauber Costa \u003cglommer@redhat.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "496850e5f5a372029ceb2b35c811770a9bb073b6",
      "tree": "c6aa155a0dcf81e967a85dfe2b8142d3b8fa9063",
      "parents": [
        "f011c2dae6cffc50ef67d9bd937b488ba5db8913"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Nov 19 15:36:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "mm: vmalloc failure flush fix\n\nAn initial vmalloc failure should start off a synchronous flush of lazy\nareas, in case someone is in progress flushing them already, which could\ncause us to return an allocation failure even if there is plenty of KVA\nfree.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f011c2dae6cffc50ef67d9bd937b488ba5db8913",
      "tree": "d956e003a564b3881810eebe0d17fad6b74bb97c",
      "parents": [
        "f481891fdc49d3d1b8a9674a1825d183069a805f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Nov 19 15:36:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "mm: vmalloc allocator off by one\n\nFix off by one bug in the KVA allocator that can leave gaps in the address\nspace.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b46333406b9cb3397ab538485a4d57c316af0ff",
      "tree": "02c347d86d128b21b3138cb56c7c544bc4e1b930",
      "parents": [
        "4bab0ea1d42dd1927af9df6fbf0003fc00617c50"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Tue Oct 28 19:22:34 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 10:05:59 2008 +0100"
      },
      "message": "vmap: cope with vm_unmap_aliases before vmalloc_init()\n\nXen can end up calling vm_unmap_aliases() before vmalloc_init() has\nbeen called.  In this case its safe to make it a simple no-op.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: Linux Memory Management List \u003clinux-mm@kvack.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ab4f2ee130d5ffcf35616e1f5c6ab75af5b463b6",
      "tree": "7532eb50e674402f8f658094acb71b8dfb1117bf",
      "parents": [
        "d2ed5cb80a241518dd71f467c884bfabbe15f68c"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Nov 06 17:11:07 2008 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Nov 06 17:13:47 2008 +0000"
      },
      "message": "[ARM] fix naming of MODULE_START / MODULE_END\n\nAs of 73bdf0a60e607f4b8ecc5aec597105976565a84f, the kernel needs\nto know where modules are located in the virtual address space.\nOn ARM, we located this region between MODULE_START and MODULE_END.\nUnfortunately, everyone else calls it MODULES_VADDR and MODULES_END.\nUpdate ARM to use the same naming, so is_vmalloc_or_module_addr()\ncan work properly.  Also update the comment on mm/vmalloc.c to\nreflect that ARM also places modules in a separate region from the\nvmalloc space.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "e99c97ade53fb6f5e665f2960eb86c624a532d7b",
      "tree": "45ffef1f849bae8cd469e7b228191c23bd7d4dcc",
      "parents": [
        "b77b0ef207624c9d9f8064ccbfd6da169780df44"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Oct 29 14:01:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:46 2008 -0700"
      },
      "message": "mm: fix kernel-doc function notation\n\nDelete excess kernel-doc notation in mm/ subdirectory.\nActually this is a kernel-doc notation fix.\n\nWarning(/var/linsrc/linux-2.6.27-git10//mm/vmalloc.c:902): Excess function parameter or struct member \u0027returns\u0027 description in \u0027vm_map_ram\u0027\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": "5f6a6a9c4e4d790aae55cb412a7643329057c5e0",
      "tree": "06b984b29e2e100874a4627ba6e22eb3e96a2640",
      "parents": [
        "7b3c3a50a3e0ea46815150d420fa276ac254572b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 03:50:47 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:48:28 2008 +0400"
      },
      "message": "proc: move /proc/vmallocinfo to mm/vmalloc.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a50c22eed593f474e75f693381e4d42e81762de8",
      "tree": "1190f39419d8068a6b735c0d9761ef80f1a12543",
      "parents": [
        "e798ba57e9f423dddbf1bdeb20a62bdd0593890f"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Tue Oct 21 06:43:33 2008 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 16:17:42 2008 -0700"
      },
      "message": "mm: remove duplicated #include\u0027s\n\nRemoved duplicated #include \u003clinux/vmalloc.h\u003e in mm/vmalloc.c and\n\"internal.h\" in mm/memory.c.\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0",
      "tree": "6440e1c679e097d0ea23bf879cd30983c5838419",
      "parents": [
        "9301975ec251bab1ad7cfcb84a688b26187e4e4a",
        "3038edabf48f01421c621cb77a712b446d3a5d67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:27:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:27:05 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel\n  Introduce is_vmalloc_or_module_addr() and use with DEBUG_VIRTUAL\n"
    },
    {
      "commit": "db64fe02258f1507e13fe5212a989922323685ce",
      "tree": "ed24c8d4e3b0bcadfce3a8c3916a6b35d6c891cb",
      "parents": [
        "cb8f488c33539f096580e202f5438a809195008f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:27:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mm: rewrite vmap layer\n\nRewrite the vmap allocator to use rbtrees and lazy tlb flushing, and\nprovide a fast, scalable percpu frontend for small vmaps (requires a\nslightly different API, though).\n\nThe biggest problem with vmap is actually vunmap.  Presently this requires\na global kernel TLB flush, which on most architectures is a broadcast IPI\nto all CPUs to flush the cache.  This is all done under a global lock.  As\nthe number of CPUs increases, so will the number of vunmaps a scaled\nworkload will want to perform, and so will the cost of a global TLB flush.\n This gives terrible quadratic scalability characteristics.\n\nAnother problem is that the entire vmap subsystem works under a single\nlock.  It is a rwlock, but it is actually taken for write in all the fast\npaths, and the read locking would likely never be run concurrently anyway,\nso it\u0027s just pointless.\n\nThis is a rewrite of vmap subsystem to solve those problems.  The existing\nvmalloc API is implemented on top of the rewritten subsystem.\n\nThe TLB flushing problem is solved by using lazy TLB unmapping.  vmap\naddresses do not have to be flushed immediately when they are vunmapped,\nbecause the kernel will not reuse them again (would be a use-after-free)\nuntil they are reallocated.  So the addresses aren\u0027t allocated again until\na subsequent TLB flush.  A single TLB flush then can flush multiple\nvunmaps from each CPU.\n\nXEN and PAT and such do not like deferred TLB flushing because they can\u0027t\nalways handle multiple aliasing virtual addresses to a physical address.\nThey now call vm_unmap_aliases() in order to flush any deferred mappings.\nThat call is very expensive (well, actually not a lot more expensive than\na single vunmap under the old scheme), however it should be OK if not\ncalled too often.\n\nThe virtual memory extent information is stored in an rbtree rather than a\nlinked list to improve the algorithmic scalability.\n\nThere is a per-CPU allocator for small vmaps, which amortizes or avoids\nglobal locking.\n\nTo use the per-CPU interface, the vm_map_ram / vm_unmap_ram interfaces\nmust be used in place of vmap and vunmap.  Vmalloc does not use these\ninterfaces at the moment, so it will not be quite so scalable (although it\nwill use lazy TLB flushing).\n\nAs a quick test of performance, I ran a test that loops in the kernel,\nlinearly mapping then touching then unmapping 4 pages.  Different numbers\nof tests were run in parallel on an 4 core, 2 socket opteron.  Results are\nin nanoseconds per map+touch+unmap.\n\nthreads           vanilla         vmap rewrite\n1                 14700           2900\n2                 33600           3000\n4                 49500           2800\n8                 70631           2900\n\nSo with a 8 cores, the rewritten version is already 25x faster.\n\nIn a slightly more realistic test (although with an older and less\nscalable version of the patch), I ripped the not-very-good vunmap batching\ncode out of XFS, and implemented the large buffer mapping with vm_map_ram\nand vm_unmap_ram...  along with a couple of other tricks, I was able to\nspeed up a large directory workload by 20x on a 64 CPU system.  I believe\nvmap/vunmap is actually sped up a lot more than 20x on such a system, but\nI\u0027m running into other locks now.  vmap is pretty well blown off the\nprofiles.\n\nBefore:\n1352059 total                                      0.1401\n798784 _write_lock                              8320.6667 \u003c- vmlist_lock\n529313 default_idle                             1181.5022\n 15242 smp_call_function                         15.8771  \u003c- vmap tlb flushing\n  2472 __get_vm_area_node                         1.9312  \u003c- vmap\n  1762 remove_vm_area                             4.5885  \u003c- vunmap\n   316 map_vm_area                                0.2297  \u003c- vmap\n   312 kfree                                      0.1950\n   300 _spin_lock                                 3.1250\n   252 sn_send_IPI_phys                           0.4375  \u003c- tlb flushing\n   238 vmap                                       0.8264  \u003c- vmap\n   216 find_lock_page                             0.5192\n   196 find_next_bit                              0.3603\n   136 sn2_send_IPI                               0.2024\n   130 pio_phys_write_mmr                         2.0312\n   118 unmap_kernel_range                         0.1229\n\nAfter:\n 78406 total                                      0.0081\n 40053 default_idle                              89.4040\n 33576 ia64_spinlock_contention                 349.7500\n  1650 _spin_lock                                17.1875\n   319 __reg_op                                   0.5538\n   281 _atomic_dec_and_lock                       1.0977\n   153 mutex_unlock                               1.5938\n   123 iget_locked                                0.1671\n   117 xfs_dir_lookup                             0.1662\n   117 dput                                       0.1406\n   114 xfs_iget_core                              0.0268\n    92 xfs_da_hashname                            0.1917\n    75 d_alloc                                    0.0670\n    68 vmap_page_range                            0.0462 \u003c- vmap\n    58 kmem_cache_alloc                           0.0604\n    57 memset                                     0.0540\n    52 rb_next                                    0.1625\n    50 __copy_user                                0.0208\n    49 bitmap_find_free_region                    0.2188 \u003c- vmap\n    46 ia64_sn_udelay                             0.1106\n    45 find_inode_fast                            0.1406\n    42 memcmp                                     0.2188\n    42 finish_task_switch                         0.1094\n    42 __d_lookup                                 0.0410\n    40 radix_tree_lookup_slot                     0.1250\n    37 _spin_unlock_irqrestore                    0.3854\n    36 xfs_bmapi                                  0.0050\n    36 kmem_cache_free                            0.0256\n    35 xfs_vn_getattr                             0.0322\n    34 radix_tree_lookup                          0.1062\n    33 __link_path_walk                           0.0035\n    31 xfs_da_do_buf                              0.0091\n    30 _xfs_buf_find                              0.0204\n    28 find_get_page                              0.0875\n    27 xfs_iread                                  0.0241\n    27 __strncpy_from_user                        0.2812\n    26 _xfs_buf_initialize                        0.0406\n    24 _xfs_buf_lookup_pages                      0.0179\n    24 vunmap_page_range                          0.0250 \u003c- vunmap\n    23 find_lock_page                             0.0799\n    22 vm_map_ram                                 0.0087 \u003c- vmap\n    20 kfree                                      0.0125\n    19 put_page                                   0.0330\n    18 __kmalloc                                  0.0176\n    17 xfs_da_node_lookup_int                     0.0086\n    17 _read_lock                                 0.0885\n    17 page_waitqueue                             0.0664\n\nvmap has gone from being the top 5 on the profiles and flushing the crap\nout of all TLBs, to using less than 1% of kernel time.\n\n[akpm@linux-foundation.org: cleanups, section fix]\n[akpm@linux-foundation.org: fix build on alpha]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73bdf0a60e607f4b8ecc5aec597105976565a84f",
      "tree": "c328c671f0da327a417d8bddb1309371ed216ea2",
      "parents": [
        "f61f1b5717dec9968efd6c8d61bd73b7a61b72a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 15 08:35:12 2008 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Oct 16 03:25:58 2008 -0700"
      },
      "message": "Introduce is_vmalloc_or_module_addr() and use with DEBUG_VIRTUAL\n\nImpact: crash on module insertion with CONFIG_DEBUG_VIRTUAL\n\nWe would incorrectly BUG due to:\n\n   VIRTUAL_BUG_ON(!is_vmalloc_addr(vmalloc_addr) \u0026\u0026\n   \t          !is_module_address(addr));\n\n... because, at least on x86-64, is_module_address() doesn\u0027t do what\nit should.  This patch introduces is_vmalloc_or_module_addr(), which\nis what we really want anyway, and uses it instead.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "8daf14cf56816303d64d1a705fcbc389211ba36e",
      "tree": "c14bcf688efd184ab10b576259d570f6d3d09c56",
      "parents": [
        "1db5fff9aeab18566eb380e354629fdbbe7792f0",
        "eceb1383361c6327cef4de01d278cd6722ebceeb",
        "28f7e66fc1da53997a545684b21b91fb3ca3f321",
        "fd1452ebf257317f24e0e285a17a2ec2ce3e6df7",
        "7aa413def76146f7b3784228556d9e4bc562eab3",
        "46eaa6702016e3ac9a188172a2c309d6ca1be1cd",
        "45e96f26f257bd873017c6244a6cafd27f6f5439",
        "9f482807a6bd7e2aa1ed0d8cfc48463ec4ca3568",
        "325af5fb1418c79953db0954556de048e061d8b6",
        "acbaa41a780490c791492c41144c774c04875af1",
        "2407390bd20de38740eef87eab4fe3d1deafdbdd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 12 15:50:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 12 15:50:02 2008 +0200"
      },
      "message": "Merge branches \u0027x86/xen\u0027, \u0027x86/build\u0027, \u0027x86/microcode\u0027, \u0027x86/mm-debug-v2\u0027, \u0027x86/memory-corruption-check\u0027, \u0027x86/early-printk\u0027, \u0027x86/xsave\u0027, \u0027x86/ptrace-v2\u0027, \u0027x86/quirks\u0027, \u0027x86/setup\u0027, \u0027x86/spinlocks\u0027 and \u0027x86/signal\u0027 into x86/core-v2\n"
    },
    {
      "commit": "4c8573e25f27b60b495aaa23089032f685ffd5ba",
      "tree": "2e145313b10076801e8c60828f22d73d14ec2fd7",
      "parents": [
        "b8c512f6190e313df69060bae4a161c5c044e272"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in mm/vmalloc.c\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message becomes\npart of the warning section for better reporting/collection.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47a126ad5ea072aca3e611ed8f8dc6adad24bab",
      "tree": "be47608111f762eba4fc6e80c7c2fcd82ffd6fd6",
      "parents": [
        "cce770815869e9209171d819dfde89bcc738ab62"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Jul 23 21:27:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "vmallocinfo: add NUMA information\n\nChristoph recently added /proc/vmallocinfo file to get information about\nvmalloc allocations.\n\nThis patch adds NUMA specific information, giving number of pages\nallocated on each memory node.\n\nThis should help to check that vmalloc() is able to respect NUMA policies.\n\nExample of output on a four nodes machine (one cpu per node)\n\n1) network hash tables are evenly spreaded on four nodes (OK) (Same\n   point for inodes and dentries hash tables)\n\n2) iptables tables (x_tables) are correctly allocated on each cpu node\n   (OK).\n\n3) sys_swapon() allocates its memory from one node only.\n\n4) each loaded module is using memory on one node.\n\nSysadmins could tune their setup to change points 3) and 4) if necessary.\n\ngrep \"pages\u003d\"  /proc/vmallocinfo\n0xffffc20000000000-0xffffc20000201000 2101248 alloc_large_system_hash+0x204/0x2c0 pages\u003d512 vmalloc N0\u003d128 N1\u003d128 N2\u003d128 N3\u003d128\n0xffffc20000201000-0xffffc20000302000 1052672 alloc_large_system_hash+0x204/0x2c0 pages\u003d256 vmalloc N0\u003d64 N1\u003d64 N2\u003d64 N3\u003d64\n0xffffc2000031a000-0xffffc2000031d000   12288 alloc_large_system_hash+0x204/0x2c0 pages\u003d2 vmalloc N1\u003d1 N2\u003d1\n0xffffc2000031f000-0xffffc2000032b000   49152 cramfs_uncompress_init+0x2e/0x80 pages\u003d11 vmalloc N0\u003d3 N1\u003d3 N2\u003d2 N3\u003d3\n0xffffc2000033e000-0xffffc20000341000   12288 sys_swapon+0x640/0xac0 pages\u003d2 vmalloc N0\u003d2\n0xffffc20000341000-0xffffc20000344000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N0\u003d2\n0xffffc20000344000-0xffffc20000347000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N1\u003d2\n0xffffc20000347000-0xffffc2000034a000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N2\u003d2\n0xffffc2000034a000-0xffffc2000034d000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N3\u003d2\n0xffffc20004381000-0xffffc20004402000  528384 alloc_large_system_hash+0x204/0x2c0 pages\u003d128 vmalloc N0\u003d32 N1\u003d32 N2\u003d32 N3\u003d32\n0xffffc20004402000-0xffffc20004803000 4198400 alloc_large_system_hash+0x204/0x2c0 pages\u003d1024 vmalloc vpages N0\u003d256 N1\u003d256 N2\u003d256 N3\u003d256\n0xffffc20004803000-0xffffc20004904000 1052672 alloc_large_system_hash+0x204/0x2c0 pages\u003d256 vmalloc N0\u003d64 N1\u003d64 N2\u003d64 N3\u003d64\n0xffffc20004904000-0xffffc20004bec000 3047424 sys_swapon+0x640/0xac0 pages\u003d743 vmalloc vpages N0\u003d743\n0xffffffffa0000000-0xffffffffa000f000   61440 sys_init_module+0xc27/0x1d00 pages\u003d14 vmalloc N1\u003d14\n0xffffffffa000f000-0xffffffffa0014000   20480 sys_init_module+0xc27/0x1d00 pages\u003d4 vmalloc N0\u003d4\n0xffffffffa0014000-0xffffffffa0017000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N0\u003d2\n0xffffffffa0017000-0xffffffffa0022000   45056 sys_init_module+0xc27/0x1d00 pages\u003d10 vmalloc N1\u003d10\n0xffffffffa0022000-0xffffffffa0028000   24576 sys_init_module+0xc27/0x1d00 pages\u003d5 vmalloc N3\u003d5\n0xffffffffa0028000-0xffffffffa0050000  163840 sys_init_module+0xc27/0x1d00 pages\u003d39 vmalloc N1\u003d39\n0xffffffffa0050000-0xffffffffa0052000    8192 sys_init_module+0xc27/0x1d00 pages\u003d1 vmalloc N1\u003d1\n0xffffffffa0052000-0xffffffffa0056000   16384 sys_init_module+0xc27/0x1d00 pages\u003d3 vmalloc N1\u003d3\n0xffffffffa0056000-0xffffffffa0081000  176128 sys_init_module+0xc27/0x1d00 pages\u003d42 vmalloc N3\u003d42\n0xffffffffa0081000-0xffffffffa00ae000  184320 sys_init_module+0xc27/0x1d00 pages\u003d44 vmalloc N3\u003d44\n0xffffffffa00ae000-0xffffffffa00b1000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n0xffffffffa00b1000-0xffffffffa00b9000   32768 sys_init_module+0xc27/0x1d00 pages\u003d7 vmalloc N0\u003d7\n0xffffffffa00b9000-0xffffffffa00c4000   45056 sys_init_module+0xc27/0x1d00 pages\u003d10 vmalloc N3\u003d10\n0xffffffffa00c6000-0xffffffffa00e0000  106496 sys_init_module+0xc27/0x1d00 pages\u003d25 vmalloc N2\u003d25\n0xffffffffa00e0000-0xffffffffa00f1000   69632 sys_init_module+0xc27/0x1d00 pages\u003d16 vmalloc N2\u003d16\n0xffffffffa00f1000-0xffffffffa00f4000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n0xffffffffa00f4000-0xffffffffa00f7000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: 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": "7aa413def76146f7b3784228556d9e4bc562eab3",
      "tree": "a90291b6fd72f46f33bc5af07813784c0468d23d",
      "parents": [
        "a1bf9631be7332ce0641e299ddafad2d8223100f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 19 13:28:11 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 19 13:33:11 2008 +0200"
      },
      "message": "x86, MM: virtual address debug, cleanups\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "59ea746337c69f6a5f1bc4d5e8544b3cbf12f801",
      "tree": "118c9c69eb8a2f6a22c62967ec36288153c87303",
      "parents": [
        "952f4a0a9b27e6dbd5d32e330b3f609ebfa0b061"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Jun 12 13:56:40 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 19 13:31:42 2008 +0200"
      },
      "message": "MM: virtual address debug\n\nAdd some (configurable) expensive sanity checking to catch wrong address\ntranslations on x86.\n\n- create linux/mmdebug.h file to be able include this file in\n  asm headers to not get unsolvable loops in header files\n- __phys_addr on x86_32 became a function in ioremap.c since\n  PAGE_OFFSET, is_vmalloc_addr and VMALLOC_* non-constasts are undefined\n  if declared in page_32.h\n- add __phys_addr_const for initializing doublefault_tss.__cr3\n\nTested on 386, 386pae, x86_64 and x86_64 numa\u003dfake\u003d2.\n\nContains Andi\u0027s enable numa virtual address debug patch.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c85d194bfd2e36c5254b8058c1f35cfce0dfa10a",
      "tree": "63c3862e412c4741bf6661f8dc70e91371aea875",
      "parents": [
        "5045790589bd426b5d515d78fa71f0fc92dd4e83"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu May 01 04:34:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "docbook: fix vmalloc missing parameter notation\n\nFix vmalloc kernel-doc warning:\n\nWarning(linux-2.6.25-git14//mm/vmalloc.c:555): No description found for parameter \u0027caller\u0027\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": "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": "2301696932b55e2ea2085cefc84f7b94fa2dd54b",
      "tree": "4a564951b4bd34feee922e59cac12962ac0f73c8",
      "parents": [
        "a10aa579878fc6f9cd17455067380bbdf1d53c91"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:21 2008 -0700"
      },
      "message": "vmallocinfo: add caller information\n\nAdd caller information so that /proc/vmallocinfo shows where the allocation\nrequest for a slice of vmalloc memory originated.\n\nResults in output like this:\n\n0xffffc20000000000-0xffffc20000801000 8392704 alloc_large_system_hash+0x127/0x246 pages\u003d2048 vmalloc vpages\n0xffffc20000801000-0xffffc20000806000   20480 alloc_large_system_hash+0x127/0x246 pages\u003d4 vmalloc\n0xffffc20000806000-0xffffc20000c07000 4198400 alloc_large_system_hash+0x127/0x246 pages\u003d1024 vmalloc vpages\n0xffffc20000c07000-0xffffc20000c0a000   12288 alloc_large_system_hash+0x127/0x246 pages\u003d2 vmalloc\n0xffffc20000c0a000-0xffffc20000c0c000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dcff68000 ioremap\n0xffffc20000c0c000-0xffffc20000c0f000   12288 acpi_os_map_memory+0x13/0x1c phys\u003dcff64000 ioremap\n0xffffc20000c10000-0xffffc20000c15000   20480 acpi_os_map_memory+0x13/0x1c phys\u003dcff65000 ioremap\n0xffffc20000c16000-0xffffc20000c18000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dcff69000 ioremap\n0xffffc20000c18000-0xffffc20000c1a000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dfed1f000 ioremap\n0xffffc20000c1a000-0xffffc20000c1c000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dcff68000 ioremap\n0xffffc20000c1c000-0xffffc20000c1e000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dcff68000 ioremap\n0xffffc20000c1e000-0xffffc20000c20000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dcff68000 ioremap\n0xffffc20000c20000-0xffffc20000c22000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dcff68000 ioremap\n0xffffc20000c22000-0xffffc20000c24000    8192 acpi_os_map_memory+0x13/0x1c phys\u003dcff68000 ioremap\n0xffffc20000c24000-0xffffc20000c26000    8192 acpi_os_map_memory+0x13/0x1c phys\u003de0081000 ioremap\n0xffffc20000c26000-0xffffc20000c28000    8192 acpi_os_map_memory+0x13/0x1c phys\u003de0080000 ioremap\n0xffffc20000c28000-0xffffc20000c2d000   20480 alloc_large_system_hash+0x127/0x246 pages\u003d4 vmalloc\n0xffffc20000c2d000-0xffffc20000c31000   16384 tcp_init+0xd5/0x31c pages\u003d3 vmalloc\n0xffffc20000c31000-0xffffc20000c34000   12288 alloc_large_system_hash+0x127/0x246 pages\u003d2 vmalloc\n0xffffc20000c34000-0xffffc20000c36000    8192 init_vdso_vars+0xde/0x1f1\n0xffffc20000c36000-0xffffc20000c38000    8192 pci_iomap+0x8a/0xb4 phys\u003dd8e00000 ioremap\n0xffffc20000c38000-0xffffc20000c3a000    8192 usb_hcd_pci_probe+0x139/0x295 [usbcore] phys\u003dd8e00000 ioremap\n0xffffc20000c3a000-0xffffc20000c3e000   16384 sys_swapon+0x509/0xa15 pages\u003d3 vmalloc\n0xffffc20000c40000-0xffffc20000c61000  135168 e1000_probe+0x1c4/0xa32 phys\u003dd8a20000 ioremap\n0xffffc20000c61000-0xffffc20000c6a000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc20000c6a000-0xffffc20000c73000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc20000c73000-0xffffc20000c7c000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc20000c7c000-0xffffc20000c7f000   12288 e1000e_setup_tx_resources+0x29/0xbe pages\u003d2 vmalloc\n0xffffc20000c80000-0xffffc20001481000 8392704 pci_mmcfg_arch_init+0x90/0x118 phys\u003de0000000 ioremap\n0xffffc20001481000-0xffffc20001682000 2101248 alloc_large_system_hash+0x127/0x246 pages\u003d512 vmalloc\n0xffffc20001682000-0xffffc20001e83000 8392704 alloc_large_system_hash+0x127/0x246 pages\u003d2048 vmalloc vpages\n0xffffc20001e83000-0xffffc20002204000 3674112 alloc_large_system_hash+0x127/0x246 pages\u003d896 vmalloc vpages\n0xffffc20002204000-0xffffc2000220d000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc2000220d000-0xffffc20002216000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc20002216000-0xffffc2000221f000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc2000221f000-0xffffc20002228000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc20002228000-0xffffc20002231000   36864 _xfs_buf_map_pages+0x8e/0xc0 vmap\n0xffffc20002231000-0xffffc20002234000   12288 e1000e_setup_rx_resources+0x35/0x122 pages\u003d2 vmalloc\n0xffffc20002240000-0xffffc20002261000  135168 e1000_probe+0x1c4/0xa32 phys\u003dd8a60000 ioremap\n0xffffc20002261000-0xffffc2000270c000 4894720 sys_swapon+0x509/0xa15 pages\u003d1194 vmalloc vpages\n0xffffffffa0000000-0xffffffffa0022000  139264 module_alloc+0x4f/0x55 pages\u003d33 vmalloc\n0xffffffffa0022000-0xffffffffa0029000   28672 module_alloc+0x4f/0x55 pages\u003d6 vmalloc\n0xffffffffa002b000-0xffffffffa0034000   36864 module_alloc+0x4f/0x55 pages\u003d8 vmalloc\n0xffffffffa0034000-0xffffffffa003d000   36864 module_alloc+0x4f/0x55 pages\u003d8 vmalloc\n0xffffffffa003d000-0xffffffffa0049000   49152 module_alloc+0x4f/0x55 pages\u003d11 vmalloc\n0xffffffffa0049000-0xffffffffa0050000   28672 module_alloc+0x4f/0x55 pages\u003d6 vmalloc\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.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": "a10aa579878fc6f9cd17455067380bbdf1d53c91",
      "tree": "c42fbb1e9422e5334c2207cafed4a2b5b1ad16c4",
      "parents": [
        "b45445684198a946b587732265692e6495993abf"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:21 2008 -0700"
      },
      "message": "vmalloc: show vmalloced areas via /proc/vmallocinfo\n\nImplement a new proc file that allows the display of the currently allocated\nvmalloc memory.\n\nIt allows to see the users of vmalloc.  That is important if vmalloc space is\nscarce (i386 for example).\n\nAnd it\u0027s going to be important for the compound page fallback to vmalloc.\nMany of the current users can be switched to use compound pages with fallback.\n This means that the number of users of vmalloc is reduced and page tables no\nlonger necessary to access the memory.  /proc/vmallocinfo allows to review how\nthat reduction occurs.\n\nIf memory becomes fragmented and larger order allocations are no longer\npossible then /proc/vmallocinfo allows to see which compound page allocations\nfell back to virtual compound pages.  That is important for new users of\nvirtual compound pages.  Such as order 1 stack allocation etc that may\nfallback to virtual compound pages in the future.\n\n/proc/vmallocinfo permissions are made readable-only-by-root to avoid possible\ninformation leakage.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: CONFIG_MMU\u003dn build fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4",
      "tree": "23a31763887d9505e62e9d7cc8ec2fa4b86bd380",
      "parents": [
        "13214adf738abc92b0a00c0763fd3be79eebaa7c"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Feb 08 04:22:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:42 2008 -0800"
      },
      "message": "CONFIG_HIGHPTE vs. sub-page page tables.\n\nBackground: I\u0027ve implemented 1K/2K page tables for s390.  These sub-page\npage tables are required to properly support the s390 virtualization\ninstruction with KVM.  The SIE instruction requires that the page tables\nhave 256 page table entries (pte) followed by 256 page status table entries\n(pgste).  The pgstes are only required if the process is using the SIE\ninstruction.  The pgstes are updated by the hardware and by the hypervisor\nfor a number of reasons, one of them is dirty and reference bit tracking.\nTo avoid wasting memory the standard pte table allocation should return\n1K/2K (31/64 bit) and 2K/4K if the process is using SIE.\n\nProblem: Page size on s390 is 4K, page table size is 1K or 2K.  That means\nthe s390 version for pte_alloc_one cannot return a pointer to a struct\npage.  Trouble is that with the CONFIG_HIGHPTE feature on x86 pte_alloc_one\ncannot return a pointer to a pte either, since that would require more than\n32 bit for the return value of pte_alloc_one (and the pte * would not be\naccessible since its not kmapped).\n\nSolution: The only solution I found to this dilemma is a new typedef: a\npgtable_t.  For s390 pgtable_t will be a (pte *) - to be introduced with a\nlater patch.  For everybody else it will be a (struct page *).  The\nadditional problem with the initialization of the ptl lock and the\nNR_PAGETABLE accounting is solved with a constructor pgtable_page_ctor and\na destructor pgtable_page_dtor.  The page table allocation and free\nfunctions need to call these two whenever a page table page is allocated or\nfreed.  pmd_populate will get a pgtable_t instead of a struct page pointer.\n To get the pgtable_t back from a pmd entry that has been installed with\npmd_populate a new function pmd_pgtable is added.  It replaces the pmd_page\ncall in free_pte_range and apply_to_pte_range.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\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": "5dc331852848a38ca00a2817e5b98a1d0561b116",
      "tree": "c306874d0194ecf88c2073a042e6f932e710f67f",
      "parents": [
        "a7f75e25860ac0a7b70cf6e14c37618d2d2bb890"
      ],
      "author": {
        "name": "Robert Bragg",
        "email": "robert@sixbynine.org",
        "time": "Mon Feb 04 22:29:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "mm: don\u0027t allow ioremapping of ranges larger than vmalloc space\n\nWhen running with a 16M IOREMAP_MAX_ORDER (on armv7) we found that the\nvmlist search routine in __get_vm_area_node can mistakenly allow a driver\nto ioremap a range larger than vmalloc space.\n\nIf at the time of the ioremap all existing vmlist areas sit below the\ndetermined alignment then the search routine continues past all entries and\nexits the for loop - straight into the found: label - without ever testing\nfor integer wrapping or that the requested size fits.\n\nWe were seeing a driver successfully ioremap 128M of flash even though\nthere was only 120M of vmalloc space.  From that point the system was left\nwith the remainder of the first 16M of space to vmalloc/ioremap within.\n\nSigned-off-by: Robert Bragg \u003crobert@sixbynine.org\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e31d9eb5c17ae3b80f9e9403f8a5eaf6dba879c9",
      "tree": "8cd63d594e618938d14a77169792ddee3995edf4",
      "parents": [
        "625d9573d0f905146efd15169a35ea9c5a841198"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 04 22:29:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "make __vmalloc_area_node() static\n\n__vmalloc_area_node() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "bf53d6f8fa467397a16de2a2500312ae26528d34",
      "tree": "5fe5fb6e7e4835d358dcc67e7b38f1aa00b9e525",
      "parents": [
        "9e2779fa281cfda13ac060753d674bbcaa23367e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "vmalloc: clean up page array indexing\n\nThe page array is repeatedly indexed both in vunmap and vmalloc_area_node().\nAdd a temporary variable to make it easier to read (and easier to patch\nlater).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.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": "b3bdda02aa547a0753b4fdbc105e86ef9046b30b",
      "tree": "969557274d94bd0a8e3c638b796c0a13f3e3afd2",
      "parents": [
        "48667e7a43c1a1e0ba743f93ae946f8cb34ff2f9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "vmalloc: add const to void* parameters\n\nMake vmalloc functions work the same way as kfree() and friends that\ntake a const void * argument.\n\n[akpm@linux-foundation.org: fix consts, coding-style]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48667e7a43c1a1e0ba743f93ae946f8cb34ff2f9",
      "tree": "b2fb79d16fbac46a859f8332cf95852b73839e07",
      "parents": [
        "eebd2aa355692afaf9906f62118620f1a1c19dbb"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Move vmalloc_to_page() to mm/vmalloc.\n\nWe already have page table manipulation for vmalloc in vmalloc.c. Move the\nvmalloc_to_page() function there as well.\n\nMove the definitions for vmalloc related functions in mm.h to a newly created\nsection.  A better place would be vmalloc.h but mm.h is basic and may depend\non these functions.  An alternative would be to include vmalloc.h in mm.h\n(like done for vmstat.h).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "183ff22bb6bd8188c904ebfb479656ae52230b72",
      "tree": "425207fc9cdca03df64ee8241ba764c75db4d8d1",
      "parents": [
        "676b1855de0a18100b3c340084eb8ef72bde4fb1"
      ],
      "author": {
        "name": "Simon Arlott",
        "email": "simon@fire.lp0.eux",
        "time": "Sat Oct 20 01:27:18 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 01:27:18 2007 +0200"
      },
      "message": "spelling fixes: mm/\n\nSpelling fixes in mm/.\n\nSigned-off-by: Simon Arlott \u003csimon@fire.lp0.eu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "6cb062296f73e74768cca2f3eaf90deac54de02d",
      "tree": "1572139653a6fc97cdffd06f2c1bfa650da2ce03",
      "parents": [
        "58c0a4a7864b2dad6da4090813322fcd29a11c92"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:25:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:59 2007 -0700"
      },
      "message": "Categorize GFP flags\n\nThe function of GFP_LEVEL_MASK seems to be unclear.  In order to clear up\nthe mystery we get rid of it and replace GFP_LEVEL_MASK with 3 sets of GFP\nflags:\n\nGFP_RECLAIM_MASK\tFlags used to control page allocator reclaim behavior.\n\nGFP_CONSTRAINT_MASK\tFlags used to limit where allocations can occur.\n\nGFP_SLAB_BUG_MASK\tFlags that the slab allocator BUG()s on.\n\nThese replace the uses of GFP_LEVEL mask in the slab allocators and in\nvmalloc.c.\n\nThe use of the flags not included in these sets may occur as a result of a\nslab allocation standing in for a page allocation when constructing scatter\ngather lists.  Extraneous flags are cleared and not passed through to the\npage allocator.  __GFP_MOVABLE/RECLAIMABLE, __GFP_COLD and __GFP_COMP will\nnow be ignored if passed to a slab allocator.\n\nChange the allocation of allocator meta data in SLAB and vmalloc to not\npass through flags listed in GFP_CONSTRAINT_MASK.  SLAB already removes the\n__GFP_THISNODE flag for such allocations.  Generalize that to also cover\nvmalloc.  The use of GFP_CONSTRAINT_MASK also includes __GFP_HARDWALL.\n\nThe impact of allocator metadata placement on access latency to the\ncachelines of the object itself is minimal since metadata is only\nreferenced on alloc and free.  The attempt is still made to place the meta\ndata optimally but we consistently allow fallback both in SLAB and vmalloc\n(SLUB does not need to allocate metadata like that).\n\nAllocator metadata may serve multiple in kernel users and thus should not\nbe subject to the limitations arising from a single allocation context.\n\n[akpm@linux-foundation.org: fix fallback_alloc()]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5992b6dac0d23a2b51a1ccbaf8f1a2e62097b12b",
      "tree": "47b059a9f22d6d0111c669d808617aa73a709259",
      "parents": [
        "57deb52622f3700d154e32662f36cd5f4053f6ed"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 19 01:49:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:52 2007 -0700"
      },
      "message": "lguest: export symbols for lguest as a module\n\nlguest does some fairly lowlevel things to support a host, which\nnormal modules don\u0027t need:\n\nmath_state_restore:\n\tWhen the guest triggers a Device Not Available fault, we need\n\tto be able to restore the FPU\n\n__put_task_struct:\n\tWe need to hold a reference to another task for inter-guest\n\tI/O, and put_task_struct() is an inline function which calls\n\t__put_task_struct.\n\naccess_process_vm:\n\tWe need to access another task for inter-guest I/O.\n\nmap_vm_area \u0026 __get_vm_area:\n\tWe need to map the switcher shim (ie. monitor) at 0xFFC01000.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ac674f52778b95450509357435320be1d795248",
      "tree": "93657e44d8d7ba7f8857ba038074e2ec4a9c2d38",
      "parents": [
        "ea02e3dde3509ffa7fda7f8de9c8a366e03f7bbd"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu Jul 19 01:49:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:50 2007 -0700"
      },
      "message": "vmalloc_32 should use GFP_KERNEL\n\nI\u0027ve noticed lots of failures of vmalloc_32 on machines where it\nshouldn\u0027t have failed unless it was doing an atomic operation.\n\nLooking closely, I noticed that:\n\n#if defined(CONFIG_64BIT) \u0026\u0026 defined(CONFIG_ZONE_DMA32)\n#define GFP_VMALLOC32 GFP_DMA32\n#elif defined(CONFIG_64BIT) \u0026\u0026 defined(CONFIG_ZONE_DMA)\n#define GFP_VMALLOC32 GFP_DMA\n#else\n#define GFP_VMALLOC32 GFP_KERNEL\n#endif\n\nWhich seems to be incorrect, it should always -or- in the DMA flags\non top of GFP_KERNEL, thus this patch.\n\nThis fixes frequent errors launchin X with the nouveau DRM for example.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f4352fbffd6c45123dbce9e195efd54df4e177e",
      "tree": "e2a0316e2f2d22c266e7cae3015ddc0f2f77f64f",
      "parents": [
        "bdef40a6af64a0140a65df49bf504124d57094a9"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Jul 17 18:37:04 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jul 18 08:47:41 2007 -0700"
      },
      "message": "Allocate and free vmalloc areas\n\nAllocate/release a chunk of vmalloc address space:\n alloc_vm_area reserves a chunk of address space, and makes sure all\n the pagetables are constructed for that address range - but no pages.\n\n free_vm_area releases the address space range.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Ian Pratt \u003cian.pratt@xensource.com\u003e\nSigned-off-by: Christian Limpach \u003cChristian.Limpach@cl.cam.ac.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: \"Jan Beulich\" \u003cJBeulich@novell.com\u003e\nCc: \"Andi Kleen\" \u003cak@muc.de\u003e\n"
    },
    {
      "commit": "94f6030ca792c57422f04a73e7a872d8325946d3",
      "tree": "0197f24d82b1706f1b0521f2cf68feeff64123df",
      "parents": [
        "81cda6626178cd55297831296ba8ecedbfd8b52d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Jul 17 04:03:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "Slab allocators: Replace explicit zeroing with __GFP_ZERO\n\nkmalloc_node() and kmem_cache_alloc_node() were not available in a zeroing\nvariant in the past.  But with __GFP_ZERO it is possible now to do zeroing\nwhile allocating.\n\nUse __GFP_ZERO to remove the explicit clearing of memory via memset whereever\nwe can.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c19c03fc749147f565e807fa65f1729066800571",
      "tree": "d5ba2eb6d43b5001c93c42523fc5b2431ef61664",
      "parents": [
        "3c8c90ab8810a8ebb38a5f1dde2595b750d5adff"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jun 04 15:15:35 2007 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Jun 14 22:29:56 2007 +1000"
      },
      "message": "[POWERPC] unmap_vm_area becomes unmap_kernel_range for the public\n\nThis makes unmap_vm_area static and a wrapper around a new\nexported unmap_kernel_range that takes an explicit range instead\nof a vm_area struct.\n\nThis makes it more versatile for code that wants to play with kernel\npage tables outside of the standard vmalloc area.\n\n(One example is some rework of the PowerPC PCI IO space mapping\ncode that depends on that patch and removes some code duplication\nand horrible abuse of forged struct vm_struct).\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "d55e2ca87321b65387d3c52dd38128b3fe6723b0",
      "tree": "72cbca581660fc0cf0ff1c0d9ccbb264b20cffe4",
      "parents": [
        "df652fe173c12d29960f3a8eafce29041e86b942"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed May 16 22:11:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Make __vunmap static\n\n__vunmap doesn\u0027t seem to be used outside of mm/vmalloc.c, and has\nno prototype in any header so let\u0027s make it static\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1eeb66a1bb973534dc3d064920a5ca683823372e",
      "tree": "19c22d611e6adefb352dbc107b859e4d13ba38c1",
      "parents": [
        "e3869792990f708c97be5877499cada70d469bd3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:27:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:04 2007 -0700"
      },
      "message": "move die notifier handling to common code\n\nThis patch moves the die notifier handling to common code.  Previous\nvarious architectures had exactly the same code for it.  Note that the new\ncode is compiled unconditionally, this should be understood as an appel to\nthe other architecture maintainer to implement support for it aswell (aka\nsprinkling a notify_die or two in the proper place)\n\narm had a notifiy_die that did something totally different, I renamed it to\narm_notify_die as part of the patch and made it static to the file it\u0027s\ndeclared and used at.  avr32 used to pass slightly less information through\nthis interface and I brought it into line with the other architectures.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix vmalloc_sync_all bustage]\n[bryan.wu@analog.com: fix vmalloc_sync_all in nommu]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d08e0d3a97cce22ebf80b54785e00d9b94e1add",
      "tree": "341ce0f925a6f922118eac2c9a9c9c3e4a345d9b",
      "parents": [
        "bbf30a1650be396b5467f769f4fbee715f16ec36"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86-64: Fix vmalloc_32 to really allocate \u003c4GB on 64bit platforms\n\nUgly ifdef, but should handle all 64bit platforms that have suitable\nzones. On some like Altix it\u0027s probably impossible without IOMMU\nuse to get memory \u003c4GB this way,  but they have to live with that.\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "72fd4a35a824331d7a0f4168d7576502d95d34b3",
      "tree": "be27880bc36b7f62e8044a88b8744a35c5317714",
      "parents": [
        "262086cf5b5343c2b81c97b1c606058e921859df"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 10 01:45:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Numerous fixes to kernel-doc info in source files.\n\nA variety of (mostly) innocuous fixes to the embedded kernel-doc content in\nsource files, including:\n\n  * make multi-line initial descriptions single line\n  * denote some function names, constants and structs as such\n  * change erroneous opening \u0027/*\u0027 to \u0027/**\u0027 in a few places\n  * reword some text for clarity\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31be8309532a6743f301cb2e83bd12ca07988b09",
      "tree": "9f84911bae39b11247f2e62ed9d7d451ef4b0a2f",
      "parents": [
        "da63fc7ce63b43426dc3c69c05e28de2872c159a"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 16 01:19:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Nov 16 11:43:38 2006 -0800"
      },
      "message": "[PATCH] Fix strange size check in __get_vm_area_node()\n\nRecently, __get_vm_area_node() was changed like following\n\n \tif (unlikely(!area))\n \t\treturn NULL;\n\n-\tif (unlikely(!size)) {\n-\t\tkfree (area);\n+\tif (unlikely(!size))\n \t\treturn NULL;\n-\t}\n\nIt is leaking `area\u0027, also original code seems strange already.\nProbably, we wanted to do this patch.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2b4ac44e7c7e16cf9411b81693ff3e604f332bf1",
      "tree": "af167ed7cf9e76f7b155d1af53a62c5d9c3b03ba",
      "parents": [
        "088406bcf66d6c7fd8a5c04c00aa410ae9077403"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Nov 10 12:27:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 13 07:40:42 2006 -0800"
      },
      "message": "[PATCH] vmalloc: optimization, cleanup, bugfixes\n\n- reorder \u0027struct vm_struct\u0027 to speedup lookups on CPUS with small cache\n  lines.  The fields \u0027next,addr,size\u0027 should be now in the same cache line,\n  to speedup lookups.\n\n- One minor cleanup in __get_vm_area_node()\n\n- Bugfixes in vmalloc_user() and vmalloc_32_user() NULL returns from\n  __vmalloc() and __find_vm_area() were not tested.\n\n[akpm@osdl.org: remove redundant BUG_ONs]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5211e6e6c671f0d4b1e1a1023384d20227d8ee65",
      "tree": "437c827044b2ed0a277adc95182985d8a95a8fc0",
      "parents": [
        "2da6dc28867b6cad6181291ed03093a487587d61"
      ],
      "author": {
        "name": "Giridhar Pemmasani",
        "email": "pgiri@yahoo.com",
        "time": "Sun Oct 29 04:46:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 29 08:01:58 2006 -0800"
      },
      "message": "[PATCH] Fix GFP_HIGHMEM slab panic\n\nAs reported by Martin J. Bligh \u003cmbligh@google.com\u003e, we let through some\nnon-slab bits to slab allocation through __get_vm_area_node when doing a\nvmalloc.\n\nI haven\u0027t been able to reproduce this, although I understand why it\nhappens: vmalloc allocates memory with\n\nGFP_KERNEL | __GFP_HIGHMEM\n\nand commit 52fd24ca1db3a741f144bbc229beefe044202cac resulted in the same\nflags are passed down to cache_alloc_refill, causing the BUG.  The\nfollowing patch fixes it.\n\nNote that when calling kmalloc_node, I am masking off __GFP_HIGHMEM with\nGFP_LEVEL_MASK, whereas __vmalloc_area_node does the same with\n\n~(__GFP_HIGHMEM | __GFP_ZERO).\n\nIMHO, using GFP_LEVEL_MASK is preferable, but either should fix this\nproblem.\n\nSigned-off-by: Giridhar Pemmasani (pgiri@yahoo.com)\nCc: Martin J. Bligh \u003cmbligh@google.com\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52fd24ca1db3a741f144bbc229beefe044202cac",
      "tree": "bb3959b403c4bfec138b61e7943e17a76dc6cad6",
      "parents": [
        "6a2aae06cc1e87e9712a26a639f6a2f3442e2027"
      ],
      "author": {
        "name": "Giridhar Pemmasani",
        "email": "pgiri@yahoo.com",
        "time": "Sat Oct 28 10:38:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:52 2006 -0700"
      },
      "message": "[PATCH] __vmalloc with GFP_ATOMIC causes \u0027sleeping from invalid context\u0027\n\nIf __vmalloc is called to allocate memory with GFP_ATOMIC in atomic\ncontext, the chain of calls results in __get_vm_area_node allocating memory\nfor vm_struct with GFP_KERNEL, causing the \u0027sleeping from invalid context\u0027\nwarning.  This patch fixes it by passing the gfp flags along so\n__get_vm_area_node allocates memory for vm_struct with the same flags.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "286e1ea3ac1ca4f503ebbb3020bdb0cbe6adffac",
      "tree": "b8e332d7aa9a64d6fe49501deb3ac5a18a708f3f",
      "parents": [
        "c430169e0c9f42f2cd27e0a6161e7ff4dc7e608d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 17 00:09:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:44 2006 -0700"
      },
      "message": "[PATCH] vmalloc(): don\u0027t pass __GFP_ZERO to slab\n\nA recent change to the vmalloc() code accidentally resulted in us passing\n__GFP_ZERO into the slab allocator.  But we only wanted __GFP_ZERO for the\nactual pages whcih are being vmalloc()ed, and passing __GFP_ZERO into slab is\nnot a rational thing to ask for.\n\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c1c8897f830c66649b6866a0cbe21c263466295e",
      "tree": "6f17adbbf83097500aa6ef0465e24da564509645",
      "parents": [
        "f3e299fe3d53a0d78fea4e46ec3e0cadf375246c"
      ],
      "author": {
        "name": "Michael Opdenacker",
        "email": "michael@free-electrons.com",
        "time": "Tue Oct 03 23:21:02 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 03 23:21:02 2006 +0200"
      },
      "message": "Spelling fix: \"control\" instead of \"cotrol\"\n\nThis patch against fixes a spelling mistake (\"control\" instead of \"cotrol\").\n\nSigned-off-by: Michael Opdenacker \u003cmichael@free-electrons.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "d24afc57d51b1be41f95521e81399061fa5875a6",
      "tree": "325d8cd04919980d7d51e82d44dcfd9a4521e3f5",
      "parents": [
        "ead04089b138ed669658f80fafbe11fc7d97740b"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Wed Sep 27 01:50:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:13 2006 -0700"
      },
      "message": "[PATCH] Mark __remove_vm_area() static\n\nThe function is exported but not used from anywhere else.  It\u0027s also marked as\n\"not for driver use\" so noone out there should really care.\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ead04089b138ed669658f80fafbe11fc7d97740b",
      "tree": "35c623c292d569e9d8f99559836075ab8ec9be13",
      "parents": [
        "423b41d773abe443bb546ce91361192073b96f88"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Wed Sep 27 01:50:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:13 2006 -0700"
      },
      "message": "[PATCH] Fix kerneldoc comments in mm/vmalloc.c\n\nThe empty line between the short description and the first argument\ndescription causes a section to appear twice in the generated manpage.\nAlso the short description should really be short: the script can\u0027t handle\nmultiple lines.\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b221385bc41d6789edde3d2fa0cb20d5045730eb",
      "tree": "93f3317247d587fd011eb9d77cd73a49670d8d5f",
      "parents": [
        "204ec841fbea3e5138168edbc3a76d46747cc987"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Sep 25 23:31:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] mm/: make functions static\n\nThis patch makes the following needlessly global functions static:\n - slab.c: kmem_find_general_cachep()\n - swap.c: __page_cache_release()\n - vmalloc.c: __vmalloc_node()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8757d5fa6b75e8ea906baf0309d49b980e7f9bc9",
      "tree": "ec3c1a505b5254133cd453c922beb8db226d03e6",
      "parents": [
        "e322fedf0c59938716cdfbafbe364a170919aa1a"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Fri Jul 14 00:23:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:51 2006 -0700"
      },
      "message": "[PATCH] mm: fix oom roll-back of __vmalloc_area_node\n\n__vunmap must not rely on area-\u003enr_pages when picking the release methode\nfor area-\u003epages.  It may be too small when __vmalloc_area_node failed early\ndue to lacking memory.  Instead, use a flag in vmstruct to differentiate.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@web.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a11b49a805665e13a56aa067afaf81d43ec1514",
      "tree": "bf499956e3f67d1211d68ab1e2eb76645f453dfb",
      "parents": [
        "fb7e42413a098cc45b3adf858da290033af62bae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: better lock debugging\n\nGeneric lock debugging:\n\n - generalized lock debugging framework. For example, a bug in one lock\n   subsystem turns off debugging in all lock subsystems.\n\n - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from\n   the mutex/rtmutex debugging code: it caused way too much prototype\n   hackery, and lockdep will give the same information anyway.\n\n - ability to do silent tests\n\n - check lock freeing in vfree too.\n\n - more finegrained debugging options, to allow distributions to\n   turn off more expensive debugging features.\n\nThere\u0027s no separate \u0027held mutexes\u0027 list anymore - but there\u0027s a \u0027held locks\u0027\nstack within lockdep, which unifies deadlock detection across all lock\nclasses.  (this is independent of the lockdep validation stuff - lockdep first\nchecks whether we are holding a lock already)\n\nHere are the current debugging options:\n\nCONFIG_DEBUG_MUTEXES\u003dy\nCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\nwhich do:\n\n config DEBUG_MUTEXES\n          bool \"Mutex debugging, basic checks\"\n\n config DEBUG_LOCK_ALLOC\n         bool \"Detect incorrect freeing of live mutexes\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "833423143c3a7c6545e409d65febd0d92deb351b",
      "tree": "13a1881f1ffd6e546e80a2ec04b1ac44ad145298",
      "parents": [
        "762834e8bf46bf41ce9034d062a7c1f8563175f3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jun 23 02:03:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] mm: introduce remap_vmalloc_range()\n\nAdd remap_vmalloc_range, vmalloc_user, and vmalloc_32_user so that drivers\ncan have a nice interface for remapping vmalloc memory.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5aae277ed67b0271235d3a50908bb48b0e59be26",
      "tree": "b800b163796522788c9c0bc9c8682c5b8c790455",
      "parents": [
        "e74ca2b49b8a38e9ba0bc039a00498c21140f1d6"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sat Apr 01 01:26:09 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 01 01:26:09 2006 +0200"
      },
      "message": "BUG_ON() Conversion in mm/vmalloc.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "d44e0780bcc47c9b8851099c0dfc1dda3c9db5a9",
      "tree": "eb672239ab94d3c66485ceeae41e5579e8baf192",
      "parents": [
        "7f46a240b0a1797eb641c046d445f026563463d4"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:10 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:56 2005 -0800"
      },
      "message": "[PATCH] kernel-doc: fix warnings in vmalloc.c\n\nFix new kernel-doc errors in vmalloc.c.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "872fec16d9a0ed3b75b8893aa217e49cca575ee5",
      "tree": "1dfc8b9f2754bdfff645188e497865c00201d535",
      "parents": [
        "46dea3d092d23a58b42499cc8a21de0fad079f4a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: init_mm without ptlock\n\nFirst step in pushing down the page_table_lock.  init_mm.page_table_lock has\nbeen used throughout the architectures (usually for ioremap): not to serialize\nkernel address space allocation (that\u0027s usually vmlist_lock), but because\npud_alloc,pmd_alloc,pte_alloc_kernel expect caller holds it.\n\nReverse that: don\u0027t lock or unlock init_mm.page_table_lock in any of the\narchitectures; instead rely on pud_alloc,pmd_alloc,pte_alloc_kernel to take\nand drop it when allocating a new one, to check lest a racing task already\ndid.  Similarly no page_table_lock in vmalloc\u0027s map_vm_area.\n\nSome temporary ugliness in __pud_alloc and __pmd_alloc: since they also handle\nuser mms, which are converted only by a later patch, for now they have to lock\ndifferently according to whether or not it\u0027s init_mm.\n\nIf sources get muddled, there\u0027s a danger that an arch source taking\ninit_mm.page_table_lock will be mixed with common source also taking it (or\nneither take it).  So break the rules and make another change, which should\nbreak the build for such a mismatch: remove the redundant mm arg from\npte_alloc_kernel (ppc64 scrapped its distinct ioremap_mm in 2.6.13).\n\nExceptions: arm26 used pte_alloc_kernel on user mm, now pte_alloc_map; ia64\nused pte_alloc_map on init_mm, now pte_alloc_kernel; parisc had bad args to\npmd_alloc and pte_alloc_kernel in unused USE_HPPA_IOREMAP code; ppc64\nmap_io_page forgot to unlock on failure; ppc mmu_mapin_ram and ppc64 im_free\ntook page_table_lock for no good reason.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "930fc45a49ddebe7555cc5c837d82b9c27e65ff4",
      "tree": "f0e4b32bd4e2f951c4eb1bc1fcdeefdcbb8e6195",
      "parents": [
        "be15cd72d256e5eb3261a781b8507fac83ab33f6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:15:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] vmalloc_node\n\nThis patch adds\n\nvmalloc_node(size, node)\t-\u003e Allocate necessary memory on the specified node\n\nand\n\nget_vm_area_node(size, flags, node)\n\nand the other functions that it depends on.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "80e93effce55044c5a7fa96e8b313640a80bd4e9",
      "tree": "339f0ac4c6d022ba048e109e51580c26ce4d252e",
      "parents": [
        "af97c7220a0376beed827e72e3bb27731af7109d"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Sep 09 13:10:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:43 2005 -0700"
      },
      "message": "[PATCH] update kfree, vfree, and vunmap kerneldoc\n\nThis patch clarifies NULL handling of kfree() and vfree().  I addition,\nwording of calling context restriction for vfree() and vunmap() are changed\nfrom \"may not\" to \"must not.\"\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd195c49fb17a21e232f50bddb2267150053cf34",
      "tree": "ab9370a3d351eb7594e5086ae8d3aa5401a1e375",
      "parents": [
        "9b4ee40ebbbaf3f8c775b023d89ceedda1167d79"
      ],
      "author": {
        "name": "Deepak Saxena",
        "email": "dsaxena@plexity.net",
        "time": "Sat Sep 03 15:54:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:46 2005 -0700"
      },
      "message": "[PATCH] arm: allow for arch-specific IOREMAP_MAX_ORDER\n\nVersion 6 of the ARM architecture introduces the concept of 16MB pages\n(supersections) and 36-bit (40-bit actually, but nobody uses this) physical\naddresses.  36-bit addressed memory and I/O and ARMv6 can only be mapped\nusing supersections and the requirement on these is that both virtual and\nphysical addresses be 16MB aligned.  In trying to add support for ioremap()\nof 36-bit I/O, we run into the issue that get_vm_area() allows for a\nmaximum of 512K alignment via the IOREMAP_MAX_ORDER constant.  To work\naround this, we can:\n\n- Allocate a larger VM area than needed (size + (1ul \u003c\u003c IOREMAP_MAX_ORDER))\n  and then align the pointer ourselves, but this ends up with 512K of\n  wasted VM per ioremap().\n\n- Provide a new __get_vm_area_aligned() API and make __get_vm_area() sit\n  on top of this. I did this and it works but I don\u0027t like the idea\n  adding another VM API just for this one case.\n\n- My preferred solution which is to allow the architecture to override\n  the IOREMAP_MAX_ORDER constant with it\u0027s own version.\n\nSigned-off-by: Deepak Saxena \u003cdsaxena@plexity.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7856dfeb23c16ef3d8dac8871b4d5b93c70b59b9",
      "tree": "0e9f799c3882dce14b49356c6db10bb6f4ba1713",
      "parents": [
        "c4d1fcf3a2ea89b6d6221fa8b4588c77aff50995"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Fri May 20 14:27:57 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri May 20 15:48:20 2005 -0700"
      },
      "message": "[PATCH] x86_64: Fixed guard page handling again in iounmap\n\nCaused oopses again.  Also fix potential mismatch in checking if\nchange_page_attr was needed.\n\nTo do it without races I needed to change mm/vmalloc.c to export a\n__remove_vm_area that does not take vmlist lock.\n\nNoticed by Terence Ripperda and based on a patch of his.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4dc3b16ba18c0f967ad100c52fa65b01a4f76ff0",
      "tree": "fa038ad8969980eec6cef5b737872fda9feb4c6a",
      "parents": [
        "333f981720d619e2038b980a55ad01b10580eb9f"
      ],
      "author": {
        "name": "Pavel Pisa",
        "email": "pisa@cmp.felk.cvut.cz",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:25 2005 -0700"
      },
      "message": "[PATCH] DocBook: changes and extensions to the kernel documentation\n\nI have recompiled Linux kernel 2.6.11.5 documentation for me and our\nuniversity students again.  The documentation could be extended for more\nsources which are equipped by structured comments for recent 2.6 kernels.  I\nhave tried to proceed with that task.  I have done that more times from 2.6.0\ntime and it gets boring to do same changes again and again.  Linux kernel\ncompiles after changes for i386 and ARM targets.  I have added references to\nsome more files into kernel-api book, I have added some section names as well.\n So please, check that changes do not break something and that categories are\nnot too much skewed.\n\nI have changed kernel-doc to accept \"fastcall\" and \"asmlinkage\" words reserved\nby kernel convention.  Most of the other changes are modifications in the\ncomments to make kernel-doc happy, accept some parameters description and do\nnot bail out on errors.  Changed \u003cpid\u003e to @pid in the description, moved some\n#ifdef before comments to correct function to comments bindings, etc.\n\nYou can see result of the modified documentation build at\n  http://cmp.felk.cvut.cz/~pisa/linux/lkdb-2.6.11.tar.gz\n\nSome more sources are ready to be included into kernel-doc generated\ndocumentation.  Sources has been added into kernel-api for now.  Some more\nsection names added and probably some more chaos introduced as result of quick\ncleanup work.\n\nSigned-off-by: Pavel Pisa \u003cpisa@cmp.felk.cvut.cz\u003e\nSigned-off-by: Martin Waitz \u003ctali@admingilde.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
