)]}'
{
  "log": [
    {
      "commit": "0006526d78e93c3684c806bf7cf3f67dfa49c3c8",
      "tree": "024ff623dff8301d6b0e27453abd1ba043fd5285",
      "parents": [
        "b75d91f7ca513f0a4d0d1ad0942fb90cf5a2bc88"
      ],
      "author": {
        "name": "Kautuk Consul",
        "email": "consul.kautuk@gmail.com",
        "time": "Mon Dec 19 17:12:04 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 20 10:25:04 2011 -0800"
      },
      "message": "mm/vmalloc.c: remove static declaration of va from __get_vm_area_node\n\nStatic storage is not required for the struct vmap_area in\n__get_vm_area_node.\n\nRemoving \"static\" to store this variable on the stack instead.\n\nSigned-off-by: Kautuk Consul \u003cconsul.kautuk@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1368edf0647ac112d8cfa6ce47257dc950c50f5c",
      "tree": "57b8c97689b2db9f22487c1b03a753d350ed657c",
      "parents": [
        "d021563888312018ca65681096f62e36c20e63cc"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Dec 08 14:34:30 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 09 07:50:29 2011 -0800"
      },
      "message": "mm: vmalloc: check for page allocation failure before vmlist insertion\n\nCommit f5252e00 (\"mm: avoid null pointer access in vm_struct via\n/proc/vmallocinfo\") adds newly allocated vm_structs to the vmlist after\nit is fully initialised.  Unfortunately, it did not check that\n__vmalloc_area_node() successfully populated the area.  In the event of\nallocation failure, the vmalloc area is freed but the pointer to freed\nmemory is inserted into the vmlist leading to a a crash later in\nget_vmalloc_info().\n\nThis patch adds a check for ____vmalloc_area_node() failure within\n__vmalloc_node_range.  It does not use \"goto fail\" as in the previous\nerror path as a warning was already displayed by __vmalloc_area_node()\nbefore it called vfree in its failure path.\n\nCredit goes to Luciano Chavez for doing all the real work of identifying\nexactly where the problem was.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReported-by: Luciano Chavez \u003clnx1138@linux.vnet.ibm.com\u003e\nTested-by: Luciano Chavez \u003clnx1138@linux.vnet.ibm.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[3.1.x+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd12909cb576d37311fe35868780e82d5007d0c8",
      "tree": "70ec60af4feb32087f542a838fe4dce8717f0cd6",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "David Vrabel",
        "email": "david.vrabel@citrix.com",
        "time": "Thu Sep 29 16:53:32 2011 +0100"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Wed Nov 16 12:13:08 2011 -0500"
      },
      "message": "xen: map foreign pages for shared rings by updating the PTEs directly\n\nWhen mapping a foreign page with xenbus_map_ring_valloc() with the\nGNTTABOP_map_grant_ref hypercall, set the GNTMAP_contains_pte flag and\npass a pointer to the PTE (in init_mm).\n\nAfter the page is mapped, the usual fault mechanism can be used to\nupdate additional MMs.  This allows the vmalloc_sync_all() to be\nremoved from alloc_vm_area().\n\nSigned-off-by: David Vrabel \u003cdavid.vrabel@citrix.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[v1: Squashed fix by Michal for no-mmu case]\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\n"
    },
    {
      "commit": "de7d2b567d040e3b67fe7121945982f14343213d",
      "tree": "c834efc1b4117049b5da786417d9cc14c2b31076",
      "parents": [
        "f0dfcde099453aa4c0dc42473828d15a6d492936"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:08:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "mm/vmalloc.c: report more vmalloc failures\n\nSome vmalloc failure paths do not report OOM conditions.\n\nAdd warn_alloc_failed, which also does a dump_stack, to those failure\npaths.\n\nThis allows more site specific vmalloc failure logging message printks to\nbe removed.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ee9a4f086716d792219c021e8509f91165a4128",
      "tree": "f85162b8e024624f07909eaba4e85b89df924ebb",
      "parents": [
        "06d5e032adcbc7d50c606a1396f00e2474e4213e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:08:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "mm: neaten warn_alloc_failed\n\nAdd __attribute__((format (printf...) to the function to validate format\nand arguments.  Use vsprintf extension %pV to avoid any possible message\ninterleaving.  Coalesce format string.  Convert printks/pr_warning to\npr_warn.\n\n[akpm@linux-foundation.org: use the __printf() macro]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5252e009d5b87071a919221e4f6624184005368",
      "tree": "4be380e99c468dcb10597c445eb6b801897eafea",
      "parents": [
        "8c5fb8eadde41f67c61a7ac2d3246dab87bf7020"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Oct 31 17:08:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mm: avoid null pointer access in vm_struct via /proc/vmallocinfo\n\nThe /proc/vmallocinfo shows information about vmalloc allocations in\nvmlist that is a linklist of vm_struct.  It, however, may access pages\nfield of vm_struct where a page was not allocated.  This results in a null\npointer access and leads to a kernel panic.\n\nWhy this happens: In __vmalloc_node_range() called from vmalloc(), newly\nallocated vm_struct is added to vmlist at __get_vm_area_node() and then,\nsome fields of vm_struct such as nr_pages and pages are set at\n__vmalloc_area_node().  In other words, it is added to vmlist before it is\nfully initialized.  At the same time, when the /proc/vmallocinfo is read,\nit accesses the pages field of vm_struct according to the nr_pages field\nat show_numa_info().  Thus, a null pointer access happens.\n\nThe patch adds the newly allocated vm_struct to the vmlist *after* it is\nfully initialized.  So, it can avoid accessing the pages field with\nunallocated page when show_numa_info() is called.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@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": "461ae488ecb125b140d7ea29ceeedbcce9327003",
      "tree": "165b09655495312068acfc7c0bc91df409c9c2ff",
      "parents": [
        "185efc0f9a1f2d6ad6d4782c5d9e529f3290567f"
      ],
      "author": {
        "name": "David Vrabel",
        "email": "david.vrabel@citrix.com",
        "time": "Wed Sep 14 16:22:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 14 18:09:38 2011 -0700"
      },
      "message": "mm: sync vmalloc address space page tables in alloc_vm_area()\n\nXen backend drivers (e.g., blkback and netback) would sometimes fail to\nmap grant pages into the vmalloc address space allocated with\nalloc_vm_area().  The GNTTABOP_map_grant_ref would fail because Xen could\nnot find the page (in the L2 table) containing the PTEs it needed to\nupdate.\n\n(XEN) mm.c:3846:d0 Could not find L1 PTE for address fbb42000\n\nnetback and blkback were making the hypercall from a kernel thread where\ntask-\u003eactive_mm !\u003d \u0026init_mm and alloc_vm_area() was only updating the page\ntables for init_mm.  The usual method of deferring the update to the page\ntables of other processes (i.e., after taking a fault) doesn\u0027t work as a\nfault cannot occur during the hypercall.\n\nThis would work on some systems depending on what else was using vmalloc.\n\nFix this by reverting ef691947d8a3 (\"vmalloc: remove vmalloc_sync_all()\nfrom alloc_vm_area()\") and add a comment to explain why it\u0027s needed.\n\nSigned-off-by: David Vrabel \u003cdavid.vrabel@citrix.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Ian Campbell \u003cIan.Campbell@citrix.com\u003e\nCc: Keir Fraser \u003ckeir.xen@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[3.0.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f982f91516fa4cfd9d20518833cd04ad714585be",
      "tree": "15c7992ad6e54fbda868a026afd5ecf98f9b1bca",
      "parents": [
        "97c24d1d455df17ca3ef281d1a290988f4686643"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Jun 21 22:09:50 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 14 12:32:52 2011 -0700"
      },
      "message": "mm: fix wrong vmap address calculations with odd NR_CPUS values\n\nCommit db64fe02258f (\"mm: rewrite vmap layer\") introduced code that does\naddress calculations under the assumption that VMAP_BLOCK_SIZE is a\npower of two.  However, this might not be true if CONFIG_NR_CPUS is not\nset to a power of two.\n\nWrong vmap_block index/offset values could lead to memory corruption.\nHowever, this has never been observed in practice (or never been\ndiagnosed correctly); what caught this was the BUG_ON in vb_alloc() that\nchecks for inconsistent vmap_block indices.\n\nTo fix this, ensure that VMAP_BLOCK_SIZE always is a power of two.\n\nBugLink: https://bugzilla.kernel.org/show_bug.cgi?id\u003d31572\nReported-by: Pavel Kysilka \u003cgoldenfish@linuxsoft.cz\u003e\nReported-by: Matias A. Fonzo \u003cselk@dragora.org\u003e\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: 2.6.28+ \u003cstable@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22a3c7d188c2b7bfc8e949bf9fad215c094ba78b",
      "tree": "24f70f4b4efa508dc3675db550215036c515243a",
      "parents": [
        "14769de93ffcaeead98bcb5771d9f88a84f7153c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 18 12:13:08 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 14:10:18 2011 -0700"
      },
      "message": "vmalloc,rcu: Convert call_rcu(rcu_free_vb) to kfree_rcu()\n\nThe rcu callback rcu_free_vb() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(rcu_free_vb).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "14769de93ffcaeead98bcb5771d9f88a84f7153c",
      "tree": "2a320b11528abfa608071ff2aa4013519c07ffbf",
      "parents": [
        "d4ee9aa33db94120532601a22566e989efc3e70c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Mar 18 12:12:19 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 14:10:17 2011 -0700"
      },
      "message": "vmalloc,rcu: Convert call_rcu(rcu_free_va) to kfree_rcu()\n\nThe rcu callback rcu_free_va() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(rcu_free_va).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "dc7acbb2518f250050179c8581a972df3b6a24f1",
      "tree": "bc14a36d5cfe1a1aa0d9a2a18ea6f19ad88a8958",
      "parents": [
        "f01e1af445fac107e91d62a2d59dd535f633810b",
        "4bf0ff24e371ce71521ccb21513203facfd8491f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 19:01:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 19:01:15 2011 -0700"
      },
      "message": "Merge branch \u0027upstream/tidy-xen-mmu-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen\n\n* \u0027upstream/tidy-xen-mmu-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen:\n  xen: fix compile without CONFIG_XEN_DEBUG_FS\n  Use arbitrary_virt_to_machine() to deal with ioremapped pud updates.\n  Use arbitrary_virt_to_machine() to deal with ioremapped pmd updates.\n  xen/mmu: remove all ad-hoc stats stuff\n  xen: use normal virt_to_machine for ptes\n  xen: make a pile of mmu pvop functions static\n  vmalloc: remove vmalloc_sync_all() from alloc_vm_area()\n  xen: condense everything onto xen_set_pte\n  xen: use mmu_update for xen_set_pte_at()\n  xen: drop all the special iomap pte paths.\n"
    },
    {
      "commit": "22943ab116af1ead4dc112ec408a93cf1365b34a",
      "tree": "97fcfd64dc06ac9b60fb48c0cd331249fb96f13d",
      "parents": [
        "a238ab5b0239575c179f4976064192c3f7409dad"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue May 24 17:12:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:22 2011 -0700"
      },
      "message": "mm: print vmalloc() state after allocation failures\n\nI was tracking down a page allocation failure that ended up in vmalloc().\nSince vmalloc() uses 0-order pages, if somebody asks for an insane amount\nof memory, we\u0027ll still get a warning with \"order:0\" in it.  That\u0027s not\nvery useful.\n\nDuring recovery, vmalloc() also nicely frees all of the memory that it got\nup to the point of the failure.  That is wonderful, but it also quickly\nhides any issues.  We have a much different sitation if vmalloc()\nrepeatedly fails 10GB in to:\n\n\tvmalloc(100 * 1\u003c\u003c30);\n\nversus repeatedly failing 4096 bytes in to a:\n\n\tvmalloc(8192);\n\nThis patch will print out messages that look like this:\n\n[   68.123503] vmalloc: allocation failure, allocated 6680576 of 13426688 bytes\n[   68.124218] bash: page allocation failure: order:0, mode:0xd2\n[   68.124811] Pid: 3770, comm: bash Not tainted 2.6.39-rc3-00082-g85f2e68-dirty #333\n[   68.125579] Call Trace:\n[   68.125853]  [\u003cffffffff810f6da6\u003e] warn_alloc_failed+0x146/0x170\n[   68.126464]  [\u003cffffffff8107e05c\u003e] ? printk+0x6c/0x70\n[   68.126791]  [\u003cffffffff8112b5d4\u003e] ? alloc_pages_current+0x94/0xe0\n[   68.127661]  [\u003cffffffff8111ed37\u003e] __vmalloc_node_range+0x237/0x290\n...\n\nThe \u0027order\u0027 variable is added for clarity when calling warn_alloc_failed()\nto avoid having an unexplained \u00270\u0027 as an argument.\n\nThe \u0027tmp_mask\u0027 is because adding an open-coded \u0027| __GFP_NOWARN\u0027 would take\nus over 80 columns for the alloc_pages_node() call.  If we are going to\nadd a line, it might as well be one that makes the sucker easier to read.\n\nAs a side issue, I also noticed that ctl_ioctl() does vmalloc() based\nsolely on an unverified value passed in from userspace.  Granted, it\u0027s\nunder CAP_SYS_ADMIN, but it still frightens me a bit.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "248ac0e1943ad1796393d281b096184719eb3f97",
      "tree": "5188b0957a0c1250d8424f24fe5517ca8c417f93",
      "parents": [
        "82d4b5779a75887750748609f3415f01c1bb9f81"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 24 17:11:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:11 2011 -0700"
      },
      "message": "mm/vmalloc: remove guard page from between vmap blocks\n\nThe vmap allocator is used to, among other things, allocate per-cpu vmap\nblocks, where each vmap block is naturally aligned to its own size.\nObviously, leaving a guard page after each vmap area forbids packing vmap\nblocks efficiently and can make the kernel run out of possible vmap blocks\nlong before overall vmap space is exhausted.\n\nThe new interface to map a user-supplied page array into linear vmalloc\nspace (vm_map_ram) insists on allocating from a vmap block (instead of\nfalling back to a custom area) when the area size is below a certain\nthreshold.  With heavy users of this interface (e.g.  XFS) and limited\nvmalloc space on 32-bit, vmap block exhaustion is a real problem.\n\nRemove the guard page from the core vmap allocator.  vmalloc and the old\nvmap interface enforce a guard page on their own at a higher level.\n\nNote that without this patch, we had accidental guard pages after those\nvm_map_ram areas that happened to be at the end of a vmap block, but not\nbetween every area.  This patch removes this accidental guard page only.\n\nIf we want guard pages after every vm_map_ram area, this should be done\nseparately.  And just like with vmalloc and the old interface on a\ndifferent level, not in the core allocator.\n\nMel pointed out: \"If necessary, the guard page could be reintroduced as a\ndebugging-only option (CONFIG_DEBUG_PAGEALLOC?).  Otherwise it seems\nreasonable.\"\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@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": "ef691947d8a3d479e67652312783aedcf629320a",
      "tree": "0ea82e411a6c2cd450238ce1898cf4acb30985ff",
      "parents": [
        "4a35c13cb808c63dd151bdd507b749e97231ef91"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Wed Dec 01 15:45:48 2010 -0800"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Fri May 20 14:14:32 2011 -0700"
      },
      "message": "vmalloc: remove vmalloc_sync_all() from alloc_vm_area()\n\nThere\u0027s no need for it: it will get faulted into the current pagetable\nas needed.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "a42931bf9c02fbf3628a27a2a5c55d2b83e4ff20",
      "tree": "be75612386f472db6d70e7ecc105ee2246a4810a",
      "parents": [
        "cf15b07cf448e19dcb31a19f0cbaf898b08ce975"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Mar 22 16:33:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "vmalloc: remove confusing comment on vwrite()\n\nKM_USER1 is never used for vwrite() path so the caller doesn\u0027t need to\nguarantee it is not used.  Only the caller should guarantee is KM_USER0\nand it is commented already.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89699605fe7cfd8611900346f61cb6cbf179b10a",
      "tree": "5970232526d3b3715704bb6f90742e033802c3aa",
      "parents": [
        "ef0a5e80f56f6409e957e7117da9551c3d3ff239"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 22 16:30:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "mm: vmap area cache\n\nProvide a free area cache for the vmalloc virtual address allocator, based\non the algorithm used by the user virtual memory allocator.\n\nThis reduces the number of rbtree operations and linear traversals over\nthe vmap extents in order to find a free area, by starting off at the last\npoint that a free area was found.\n\nThe free area cache is reset if areas are freed behind it, or if we are\nsearching for a smaller area or alignment than last time.  So allocation\npatterns are not changed (verified by corner-case and random test cases in\nuserspace testing).\n\nThis solves a regression caused by lazy vunmap TLB purging introduced in\ndb64fe02 (mm: rewrite vmap layer).  That patch will leave extents in the\nvmap allocator after they are vunmapped, and until a significant number\naccumulate that can be flushed in a single batch.  So in a workload that\nvmalloc/vfree frequently, a chain of extents will build up from\nVMALLOC_START address, which have to be iterated over each time (giving an\nO(n) type of behaviour).\n\nAfter this patch, the search will start from where it left off, giving\ncloser to an amortized O(1).\n\nThis is verified to solve regressions reported Steven in GFS2, and Avi in\nKVM.\n\nHugh\u0027s update:\n\n: I tried out the recent mmotm, and on one machine was fortunate to hit\n: the BUG_ON(first-\u003eva_start \u003c addr) which seems to have been stalling\n: your vmap area cache patch ever since May.\n\n: I can get you addresses etc, I did dump a few out; but once I stared\n: at them, it was easier just to look at the code: and I cannot see how\n: you would be so sure that first-\u003eva_start \u003c addr, once you\u0027ve done\n: that addr \u003d ALIGN(max(...), align) above, if align is over 0x1000\n: (align was 0x8000 or 0x4000 in the cases I hit: ioremaps like Steve).\n\n: I originally got around it by just changing the\n: \t\tif (first-\u003eva_start \u003c addr) {\n: to\n: \t\twhile (first-\u003eva_start \u003c addr) {\n: without thinking about it any further; but that seemed unsatisfactory,\n: why would we want to loop here when we\u0027ve got another very similar\n: loop just below it?\n\n: I am never going to admit how long I\u0027ve spent trying to grasp your\n: \"while (n)\" rbtree loop just above this, the one with the peculiar\n: \t\tif (!first \u0026\u0026 tmp-\u003eva_start \u003c addr + size)\n: in.  That\u0027s unfamiliar to me, I\u0027m guessing it\u0027s designed to save a\n: subsequent rb_next() in a few circumstances (at risk of then setting\n: a wrong cached_hole_size?); but they did appear few to me, and I didn\u0027t\n: feel I could sign off something with that in when I don\u0027t grasp it,\n: and it seems responsible for extra code and mistaken BUG_ON below it.\n\n: I\u0027ve reverted to the familiar rbtree loop that find_vma() does (but\n: with va_end \u003e\u003d addr as you had, to respect the additional guard page):\n: and then (given that cached_hole_size starts out 0) I don\u0027t see the\n: need for any complications below it.  If you do want to keep that loop\n: as you had it, please add a comment to explain what it\u0027s trying to do,\n: and where addr is relative to first when you emerge from it.\n\n: Aren\u0027t your tests \"size \u003c\u003d cached_hole_size\" and\n: \"addr + size \u003e first-\u003eva_start\" forgetting the guard page we want\n: before the next area?  I\u0027ve changed those.\n\n: I have not changed your many \"addr + size - 1 \u003c addr\" overflow tests,\n: but have since come to wonder, shouldn\u0027t they be \"addr + size \u003c addr\"\n: tests - won\u0027t the vend checks go wrong if addr + size is 0?\n\n: I have added a few comments - Wolfgang Wander\u0027s 2.6.13 description of\n: 1363c3cd8603a913a27e2995dccbd70d5312d8e6 Avoiding mmap fragmentation\n: helped me a lot, perhaps a pointer to that would be good too.  And I found\n: it easier to understand when I renamed cached_start slightly and moved the\n: overflow label down.\n\n: This patch would go after your mm-vmap-area-cache.patch in mmotm.\n: Trivially, nobody is going to get that BUG_ON with this patch, and it\n: appears to work fine on my machines; but I have not given it anything like\n: the testing you did on your original, and may have broken all the\n: performance you were aiming for.  Please take a look and test it out\n: integrate with yours if you\u0027re satisfied - thanks.\n\n[akpm@linux-foundation.org: add locking comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-and-tested-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-and-tested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: \"Barry J. Marson\" \u003cbmarson@redhat.com\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52cfd503ad7176d23a5dd7af3981744feb60622f",
      "tree": "0a8aeaaf4acbc86ac682f18632b8070c1c6b7ba1",
      "parents": [
        "dc8e7e3ec60bd5ef7868aa88755e9d4c948dc5cc",
        "4263d9a3ae4d15785897d0543bb59316c84ee605"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:15:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:15:35 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (59 commits)\n  ACPI / PM: Fix build problems for !CONFIG_ACPI related to NVS rework\n  ACPI: fix resource check message\n  ACPI / Battery: Update information on info notification and resume\n  ACPI: Drop device flag wake_capable\n  ACPI: Always check if _PRW is present before trying to evaluate it\n  ACPI / PM: Check status of power resources under mutexes\n  ACPI / PM: Rename acpi_power_off_device()\n  ACPI / PM: Drop acpi_power_nocheck\n  ACPI / PM: Drop acpi_bus_get_power()\n  Platform / x86: Make fujitsu_laptop use acpi_bus_update_power()\n  ACPI / Fan: Rework the handling of power resources\n  ACPI / PM: Register power resource devices as soon as they are needed\n  ACPI / PM: Register acpi_power_driver early\n  ACPI / PM: Add function for updating device power state consistently\n  ACPI / PM: Add function for device power state initialization\n  ACPI / PM: Introduce __acpi_bus_get_power()\n  ACPI / PM: Introduce function for refcounting device power resources\n  ACPI / PM: Add functions for manipulating lists of power resources\n  ACPI / PM: Prevent acpi_power_get_inferred_state() from making changes\n  ACPICA: Update version to 20101209\n  ...\n"
    },
    {
      "commit": "ddf9c6d472825ceda66b3adff0f6437dbcd37f71",
      "tree": "a838e5535d5bad4391dcec4584d44a0e3b05858b",
      "parents": [
        "1e50df39f6e2c3a4a3394df62baa8a213df16c54"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Thu Jan 13 15:46:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:36 2011 -0800"
      },
      "message": "vmalloc: remove redundant unlikely()\n\nIS_ERR() already implies unlikely(), so it can be omitted here.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0a21265dfb5fa8ae54e90d0fb6d1c215b10a28a",
      "tree": "a3bf2c96ad8e180f32a52e208667a40bb972275b",
      "parents": [
        "ec3f64fc9c196a304c4b7db3e1ff56d640628509"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Jan 13 15:46:02 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: unify module_alloc code for vmalloc\n\nFour architectures (arm, mips, sparc, x86) use __vmalloc_area() for\nmodule_init().  Much of the code is duplicated and can be generalized in a\nglobally accessible function, __vmalloc_node_range().\n\n__vmalloc_node() now calls into __vmalloc_node_range() with a range of\n[VMALLOC_START, VMALLOC_END) for functionally equivalent behavior.\n\nEach architecture may then use __vmalloc_node_range() directly to remove\nthe duplication of code.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec3f64fc9c196a304c4b7db3e1ff56d640628509",
      "tree": "43de86d9fbb6543b99e1f450b1a3c15a3f151fa0",
      "parents": [
        "e5a5623b28198aa91ea71ee5d3846757fc76bc87"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Jan 13 15:46:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: remove gfp mask from pcpu_get_vm_areas\n\npcpu_get_vm_areas() only uses GFP_KERNEL allocations, so remove the gfp_t\nformal and use the mask internally.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Tejun Heo \u003ctj@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": "e5a5623b28198aa91ea71ee5d3846757fc76bc87",
      "tree": "6fad408973a428a0ca2bdffd0c30a7c5af400ec9",
      "parents": [
        "f3a310bc4e5ce7e55e1c8e25c31e63af017f3e50"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Jan 13 15:46:00 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: remove unused get_vm_area_node\n\nget_vm_area_node() is unused in the kernel and can thus be removed.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62c70bce8ac236514c610020bb1ae5b8bde965cb",
      "tree": "24f13ae48325034f9a8c4385669adcef545b4836",
      "parents": [
        "c32b0d4b3f19c2f5d29568f8b7b72b61693f1277"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 13 15:45:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:33 2011 -0800"
      },
      "message": "mm: convert sprintf_symbol to %pS\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Jiri Kosina \u003ctrivial@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": "81e88fdc432a1552401d6e91a984dcccce72b8dc",
      "tree": "41ef511cda7ddf6b96f8d923ffceff74651a5790",
      "parents": [
        "32c361f574f85fa47600d84900598e2efc99082e"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jan 12 14:44:55 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 03:06:19 2011 -0500"
      },
      "message": "ACPI, APEI, Generic Hardware Error Source POLL/IRQ/NMI notification type support\n\nGeneric Hardware Error Source provides a way to report platform\nhardware errors (such as that from chipset). It works in so called\n\"Firmware First\" mode, that is, hardware errors are reported to\nfirmware firstly, then reported to Linux by firmware. This way, some\nnon-standard hardware error registers or non-standard hardware link\ncan be checked by firmware to produce more valuable hardware error\ninformation for Linux.\n\nThis patch adds POLL/IRQ/NMI notification types support.\n\nBecause the memory area used to transfer hardware error information\nfrom BIOS to Linux can be determined only in NMI, IRQ or timer\nhandler, but general ioremap can not be used in atomic context, so a\nspecial version of atomic ioremap is implemented for that.\n\nKnown issue:\n\n- Error information can not be printed for recoverable errors notified\n  via NMI, because printk is not NMI-safe. Will fix this via delay\n  printing to IRQ context via irq_work or make printk NMI-safe.\n\nv2:\n\n- adjust printk format per comments.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "64141da587241301ce8638cc945f8b67853156ec",
      "tree": "bf11cfe53f606a2bda2342c6286ba637c4848e34",
      "parents": [
        "853ff88324a248a9f5da6e110850223db353ec07"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Thu Dec 02 14:31:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 02 14:51:15 2010 -0800"
      },
      "message": "vmalloc: eagerly clear ptes on vunmap\n\nOn stock 2.6.37-rc4, running:\n\n  # mount lilith:/export /mnt/lilith\n  # find  /mnt/lilith/ -type f -print0 | xargs -0 file\n\ncrashes the machine fairly quickly under Xen.  Often it results in oops\nmessages, but the couple of times I tried just now, it just hung quietly\nand made Xen print some rude messages:\n\n    (XEN) mm.c:2389:d80 Bad type (saw 7400000000000001 !\u003d exp\n    3000000000000000) for mfn 1d7058 (pfn 18fa7)\n    (XEN) mm.c:964:d80 Attempt to create linear p.t. with write perms\n    (XEN) mm.c:2389:d80 Bad type (saw 7400000000000010 !\u003d exp\n    1000000000000000) for mfn 1d2e04 (pfn 1d1fb)\n    (XEN) mm.c:2965:d80 Error while pinning mfn 1d2e04\n\nWhich means the domain tried to map a pagetable page RW, which would\nallow it to map arbitrary memory, so Xen stopped it.  This is because\nvm_unmap_ram() left some pages mapped in the vmalloc area after NFS had\nfinished with them, and those pages got recycled as pagetable pages\nwhile still having these RW aliases.\n\nRemoving those mappings immediately removes the Xen-visible aliases, and\nso it has no problem with those pages being reused as pagetable pages.\nDeferring the TLB flush doesn\u0027t upset Xen because it can flush the TLB\nitself as needed to maintain its invariants.\n\nWhen unmapping a region in the vmalloc space, clear the ptes\nimmediately.  There\u0027s no point in deferring this because there\u0027s no\namortization benefit.\n\nThe TLBs are left dirty, and they are flushed lazily to amortize the\ncost of the IPIs.\n\nThis specific motivation for this patch is an oops-causing regression\nsince 2.6.36 when using NFS under Xen, triggered by the NFS client\u0027s use\nof vm_map_ram() introduced in 56e4ebf877b60 (\"NFS: readdir with vmapped\npages\") .  XFS also uses vm_map_ram() and could cause similar problems.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1ca7788dec6773b1a2bce51b7141948f2b8bccf",
      "tree": "500edef0ca88f398647f99e63be0a38307314319",
      "parents": [
        "7bbc0905ea4f7a471a7f79d0bea5d538f5114fc9"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Tue Oct 26 14:22:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:10 2010 -0700"
      },
      "message": "mm: add vzalloc() and vzalloc_node() helpers\n\nAdd vzalloc() and vzalloc_node() to encapsulate the\nvmalloc-then-memset-zero operation.\n\nUse __GFP_ZERO to zero fill the allocated memory.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e199b5d1fed13f5e8f47a0ee8216f36244dad1f4",
      "tree": "32b746b1ea5f59a9cf33d14b119236c78d18b398",
      "parents": [
        "170168d0a351c045adc0bee0987e51dfc82890c0"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:10 2010 -0700"
      },
      "message": "vmalloc: annotate lock context change on s_start/stop()\n\ns_start() and s_stop() grab/release vmlist_lock but were missing proper\nannotations.  Add them.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "170168d0a351c045adc0bee0987e51dfc82890c0",
      "tree": "e986de7fff1dd6258038e8f205190f49d6d7698c",
      "parents": [
        "e574b5fd20027b422aa80790f710d695699b4fba"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:10 2010 -0700"
      },
      "message": "vmalloc: rename temporary variable in __insert_vmap_area()\n\nRename redundant \u0027tmp\u0027 to fix following sparse warnings:\n\n mm/vmalloc.c:296:34: warning: symbol \u0027tmp\u0027 shadows an earlier one\n mm/vmalloc.c:293:24: originally declared here\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0fc0531e0a2174377a86fd6953ecaa00287d8f70",
      "tree": "afe56978729300df96b002a064c9de927fadcfab",
      "parents": [
        "91b745016c12d440386c40fb76ab69c8e08cbc06",
        "9329ba9704f6bd51a735982e0d4a3eed72c3294f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:31:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:31:36 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: update comments to reflect that percpu allocations are always zero-filled\n  percpu: Optimize __get_cpu_var()\n  x86, percpu: Optimize this_cpu_ptr\n  percpu: clear memory allocated with the km allocator\n  percpu: fix build breakage on s390 and cleanup build configuration tests\n  percpu: use percpu allocator on UP too\n  percpu: reduce PCPU_MIN_UNIT_SIZE to 32k\n  vmalloc: pcpu_get/free_vm_areas() aren\u0027t needed on UP\n\nFixed up trivial conflicts in include/linux/percpu.h\n"
    },
    {
      "commit": "3ee48b6af49cf534ca2f481ecc484b156a41451d",
      "tree": "ce55b9d5831a39ff75297c9fbfa8fa3471c99a3d",
      "parents": [
        "37a2f9f30a360fb03522d15c85c78265ccd80287"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Sep 16 11:44:02 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 17 09:11:56 2010 +0200"
      },
      "message": "mm, x86: Saving vmcore with non-lazy freeing of vmas\n\nDuring the reading of /proc/vmcore the kernel is doing\nioremap()/iounmap() repeatedly. And the buildup of un-flushed\nvm_area_struct\u0027s is causing a great deal of overhead. (rb_next()\nis chewing up most of that time).\n\nThis solution is to provide function set_iounmap_nonlazy(). It\ncauses a subsequent call to iounmap() to immediately purge the\nvma area (with try_purge_vmap_area_lazy()).\n\nWith this patch we have seen the time for writing a 250MB\ncompressed dump drop from 71 seconds to 44 seconds.\n\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: kexec@lists.infradead.org\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003cE1OwHZ4-0005WK-Tw@eag09.americas.sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f8b02b4e5c6896e073bed736136d420bd44b627",
      "tree": "bdc29ec9effaf18681b16594257540d256b4d36f",
      "parents": [
        "d56557af19867edb8c0e96f8e26399698a08857f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Sep 03 18:22:47 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 08 11:10:47 2010 +0200"
      },
      "message": "vmalloc: pcpu_get/free_vm_areas() aren\u0027t needed on UP\n\nThese functions are used only by percpu memory allocator on SMP.\nDon\u0027t build them on UP.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nReviewed-by: Chrsitoph Lameter \u003ccl@linux.com\u003e\n"
    },
    {
      "commit": "26f0cf91813bdc8e61595f8ad6660251e2ee9cf6",
      "tree": "db129d45fba03e3e59392410d0f35ba7d3e438e6",
      "parents": [
        "d862b13bc8cbab9692fbe0ef44c40d0488b81af1",
        "fe96eb404e33b59bb39f7050205f7c56c1c7d686"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:09:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:09:41 2010 -0700"
      },
      "message": "Merge branch \u0027stable/xen-swiotlb-0.8.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\n* \u0027stable/xen-swiotlb-0.8.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  x86: Detect whether we should use Xen SWIOTLB.\n  pci-swiotlb-xen: Add glue code to setup dma_ops utilizing xen_swiotlb_* functions.\n  swiotlb-xen: SWIOTLB library for Xen PV guest with PCI passthrough.\n  xen/mmu: inhibit vmap aliases rather than trying to clear them out\n  vmap: add flag to allow lazy unmap to be disabled at runtime\n  xen: Add xen_create_contiguous_region\n  xen: Rename the balloon lock\n  xen: Allow unprivileged Xen domains to create iomap pages\n  xen: use _PAGE_IOMAP in ioremap to do machine mappings\n\nFix up trivial conflicts (adding both xen swiotlb and xen pci platform\ndriver setup close to each other) in drivers/xen/{Kconfig,Makefile} and\ninclude/xen/xen-ops.h\n"
    },
    {
      "commit": "51980ac9e72fb5f22c81b7798d65b691125d70ee",
      "tree": "fc12938848882bd76f7420f28d723056d9e5518e",
      "parents": [
        "cc8e970c3ce4d98afa8eb02dbd2526ce57f7611a"
      ],
      "author": {
        "name": "Kulikov Vasiliy",
        "email": "segooon@gmail.com",
        "time": "Mon Aug 09 17:19:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "mm/vmalloc.c: check kmalloc() return value\n\nkmalloc() may fail, if so return -ENOMEM.\n\nSigned-off-by: Kulikov Vasiliy \u003csegooon@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7d86340793e7162126926ec9d226c68f4e37f94",
      "tree": "4cc90e5466a69b361f1a6eecc2d9fac77e2e1612",
      "parents": [
        "90d7404558fbe6f369d5e27b5ea3ef1e57562d3d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Aug 09 17:18:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\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": "a0d40c80256e31b23849f2ba781b74bf0218a1fa",
      "tree": "f89ad006e486c021d95db3f37763558556d731e1",
      "parents": [
        "08bbc9da92f7e44b9c208c6a1adba70c403b255e"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Fri Mar 26 15:28:51 2010 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Jul 27 11:49:09 2010 -0400"
      },
      "message": "vmap: add flag to allow lazy unmap to be disabled at runtime\n\nAdd a flag to force lazy_max_pages() to zero to prevent any outstanding\nmapped pages.  We\u0027ll need this for Xen.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "ffa71f33a820d1ab3f2fc5723819ac60fb76080b",
      "tree": "fb7fb08c43a773f771a49ac765e9330e07d32eef",
      "parents": [
        "d7a0380dc3e6607d30ccdfc3cfc2ccee0d966716"
      ],
      "author": {
        "name": "Kenji Kaneshige",
        "email": "kaneshige.kenji@jp.fujitsu.com",
        "time": "Fri Jun 18 12:22:40 2010 +0900"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Fri Jul 09 11:42:03 2010 -0700"
      },
      "message": "x86, ioremap: Fix incorrect physical address handling in PAE mode\n\nCurrent x86 ioremap() doesn\u0027t handle physical address higher than\n32-bit properly in X86_32 PAE mode. When physical address higher than\n32-bit is passed to ioremap(), higher 32-bits in physical address is\ncleared wrongly. Due to this bug, ioremap() can map wrong address to\nlinear address space.\n\nIn my case, 64-bit MMIO region was assigned to a PCI device (ioat\ndevice) on my system. Because of the ioremap()\u0027s bug, wrong physical\naddress (instead of MMIO region) was mapped to linear address space.\nBecause of this, loading ioatdma driver caused unexpected behavior\n(kernel panic, kernel hangup, ...).\n\nSigned-off-by: Kenji Kaneshige \u003ckaneshige.kenji@jp.fujitsu.com\u003e\nLKML-Reference: \u003c4C1AE680.7090408@jp.fujitsu.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "02b709df817c0db174f249cc59e5f7fd01b64d92",
      "tree": "f1e6af927573507e503f3cddfb5bae457a24f72c",
      "parents": [
        "de5604231ce4bc8db1bc1dcd27d8540cbedf1518"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 01 22:25:57 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 12:50:47 2010 -0800"
      },
      "message": "mm: purge fragmented percpu vmap blocks\n\nImprove handling of fragmented per-CPU vmaps.  We previously don\u0027t free\nup per-CPU maps until all its addresses have been used and freed.  So\nfragmented blocks could fill up vmalloc space even if they actually had\nno active vmap regions within them.\n\nAdd some logic to allow all CPUs to have these blocks purged in the case\nof failure to allocate a new vm area, and also put some logic to trim\nsuch blocks of a current CPU if we hit them in the allocation path (so\nas to avoid a large build up of them).\n\nChristoph reported some vmap allocation failures when using the per CPU\nvmap APIs in XFS, which cannot be reproduced after this patch and the\nprevious bug fix.\n\nCc: linux-mm@kvack.org\nCc: stable@kernel.org\nTested-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n--\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de5604231ce4bc8db1bc1dcd27d8540cbedf1518",
      "tree": "1b64b0554b8ecffd58d4d06614075e5ccbb6bfb4",
      "parents": [
        "489b24f2cbdcc1c93f55a2707733bba702ba8dbf"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 01 22:24:18 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 12:50:47 2010 -0800"
      },
      "message": "mm: percpu-vmap fix RCU list walking\n\nRCU list walking of the per-cpu vmap cache was broken.  It did not use\nRCU primitives, and also the union of free_list and rcu_head is\nobviously wrong (because free_list is indeed the list we are RCU\nwalking).\n\nWhile we are there, remove a couple of unused fields from an earlier\niteration.\n\nThese APIs aren\u0027t actually used anywhere, because of problems with the\nXFS conversion.  Christoph has now verified that the problems are solved\nwith these patches.  Also it is an exported interface, so I think it\nwill be good to be merged now (and Christoph wants to get the XFS\nchanges into their local tree).\n\nCc: stable@kernel.org\nCc: linux-mm@kvack.org\nTested-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n--\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88f5004430babb836cfce886d5d54c82166f8ba4",
      "tree": "f1cdd2f63e6344a07a3470f6cd4face94da3e638",
      "parents": [
        "970114a1dacf5f1f47aae9ad75c0abca42d8499c"
      ],
      "author": {
        "name": "Yongseok Koh",
        "email": "yongseok.koh@samsung.com",
        "time": "Tue Jan 19 17:33:49 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:20:06 2010 -0800"
      },
      "message": "vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE\n\nIn free_unmap_area_noflush(), va-\u003eflags is marked as VM_LAZY_FREE first, and\nthen vmap_lazy_nr is increased atomically.\n\nBut, in __purge_vmap_area_lazy(), while traversing of vmap_are_list, nr\nis counted by checking VM_LAZY_FREE is set to va-\u003eflags.  After counting\nthe variable nr, kernel reads vmap_lazy_nr atomically and checks a\nBUG_ON condition whether nr is greater than vmap_lazy_nr to prevent\nvmap_lazy_nr from being negative.\n\nThe problem is that, if interrupted right after marking VM_LAZY_FREE,\nincrement of vmap_lazy_nr can be delayed.  Consequently, BUG_ON\ncondition can be met because nr is counted more than vmap_lazy_nr.\n\nIt is highly probable when vmalloc/vfree are called frequently.  This\nscenario have been verified by adding delay between marking VM_LAZY_FREE\nand increasing vmap_lazy_nr in free_unmap_area_noflush().\n\nEven the vmap_lazy_nr is for checking high watermark, it never be the\nstrict watermark.  Although the BUG_ON condition is to prevent\nvmap_lazy_nr from being negative, vmap_lazy_nr is signed variable.  So,\nit could go down to negative value temporarily.\n\nConsequently, removing the BUG_ON condition is proper.\n\nA possible BUG_ON message is like the below.\n\n   kernel BUG at mm/vmalloc.c:517!\n   invalid opcode: 0000 [#1] SMP\n   EIP: 0060:[\u003cc04824a4\u003e] EFLAGS: 00010297 CPU: 3\n   EIP is at __purge_vmap_area_lazy+0x144/0x150\n   EAX: ee8a8818 EBX: c08e77d4 ECX: e7c7ae40 EDX: c08e77ec\n   ESI: 000081fe EDI: e7c7ae60 EBP: e7c7ae64 ESP: e7c7ae3c\n   DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n   Call Trace:\n   [\u003cc0482ad9\u003e] free_unmap_vmap_area_noflush+0x69/0x70\n   [\u003cc0482b02\u003e] remove_vm_area+0x22/0x70\n   [\u003cc0482c15\u003e] __vunmap+0x45/0xe0\n   [\u003cc04831ec\u003e] vmalloc+0x2c/0x30\n   Code: 8d 59 e0 eb 04 66 90 89 cb 89 d0 e8 87 fe ff ff 8b 43 20 89 da 8d 48 e0 8d 43 20 3b 04 24 75 e7 fe 05 a8 a5 a3 c0 e9 78 ff ff ff \u003c0f\u003e 0b eb fe 90 8d b4 26 00 00 00 00 56 89 c6 b8 ac a5 a3 c0 31\n   EIP: [\u003cc04824a4\u003e] __purge_vmap_area_lazy+0x144/0x150 SS:ESP 0068:e7c7ae3c\n\n[ See also http://marc.info/?l\u003dlinux-kernel\u0026m\u003d126335856228090\u0026w\u003d2 ]\n\nSigned-off-by: Yongseok Koh \u003cyongseok.koh@samsung.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "976d6dfbb0175d136fc098854bbce0c028a3924b",
      "tree": "1ae6511b70d1272fffa1124d8ba69fc6a2d90422",
      "parents": [
        "bad44b5be84cf3bb1ff900bec02ee61e1993328c"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Dec 14 17:58:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:13 2009 -0800"
      },
      "message": "vmalloc(): adjust gfp mask passed on nested vmalloc() invocation\n\n- avoid wasting more precious resources (DMA or DMA32 pools), when\n  being called through vmalloc_32{,_user}()\n- explicitly allow using high memory here even if the outer allocation\n  request doesn\u0027t allow it\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\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": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "3f04ba859597412afbfb31f2fcbe289f2461f9a1",
      "tree": "63ee0a7423f94a109e630de7aca06b32c075acd0",
      "parents": [
        "dec54bf538326a1503dd780c9f2811f495af95c5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:12 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:12 2009 +0900"
      },
      "message": "vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n\nvmalloc used non-existent percpu variable vmap_cpu_blocks instead of\nthe intended vmap_block_queue.  This went unnoticed because\nput_cpu_var() didn\u0027t evaluate the parameter.  Fix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "d43c36dc6b357fa1806800f18aa30123c747a6d1",
      "tree": "339ce510073ecbe9b3592008f7dece7b277035ef",
      "parents": [
        "69585dd69e663a40729492c7b52eb82477a2027a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 07 17:09:06 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 11 11:20:58 2009 -0700"
      },
      "message": "headers: remove sched.h from interrupt.h\n\nAfter m68k\u0027s task_thread_info() doesn\u0027t refer to current,\nit\u0027s possible to remove sched.h from interrupt.h and not break m68k!\nMany thanks to Heiko Carstens for allowing this.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "b924f9599dfd4a604761e84b1e920e480fb57f66",
      "tree": "a1456ef8aea8beb8415d8258a978e072467d8ff6",
      "parents": [
        "b9d40b7b1e349bdc5c174b4ef1a333e62f7d749c",
        "2dca6999eed58d44b67e9de7d6ec230f6250553d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 08 12:05:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 08 12:05:50 2009 -0700"
      },
      "message": "Merge branch \u0027sparc-perf-events-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sparc-perf-events-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  mm, perf_event: Make vmalloc_user() align base kernel virtual address to SHMLBA\n  perf_event: Provide vmalloc() based mmap() backing\n"
    },
    {
      "commit": "2dca6999eed58d44b67e9de7d6ec230f6250553d",
      "tree": "6b6f1e2c07291fba968e6a72c095ca6526be88d5",
      "parents": [
        "906010b2134e14a2e377decbadd357b3d0ab9c6a"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 21 12:22:34 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 08 17:02:31 2009 +0200"
      },
      "message": "mm, perf_event: Make vmalloc_user() align base kernel virtual address to SHMLBA\n\nWhen a vmalloc\u0027d area is mmap\u0027d into userspace, some kind of\nco-ordination is necessary for this to work on platforms with cpu\nD-caches which can have aliases.\n\nOtherwise kernel side writes won\u0027t be seen properly in userspace\nand vice versa.\n\nIf the kernel side mapping and the user side one have the same\nalignment, modulo SHMLBA, this can work as long as VM_SHARED is\nshared of VMA and for all current users this is true.  VM_SHARED\nwill force SHMLBA alignment of the user side mmap on platforms with\nD-cache aliasing matters.\n\nThe bulk of this patch is just making it so that a specific\nalignment can be passed down into __get_vm_area_node().  All\nexisting callers pass in \u00271\u0027 which preserves existing behavior.\nvmalloc_user() gives SHMLBA for the alignment.\n\nAs a side effect this should get the video media drivers and other\nvmalloc_user() users into more working shape on such systems.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c200909211922.n8LJMYjw029425@imap1.linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3700c155af56b54adfc737ba3164a41de2c59d41",
      "tree": "034c53a8c573339076a7a5d7d77bc133280a24ff",
      "parents": [
        "c73602ad31cdcf7e6651f43d12f65b5b9b825b6f"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Wed Oct 07 16:32:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 08 07:36:38 2009 -0700"
      },
      "message": "mm: includecheck fix: vmalloc.c\n\nfix the following \u0027make includecheck\u0027 warning:\n\n  mm/vmalloc.c: linux/highmem.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81ac3ad9061dd9cd490ee92f0c5316a14d77ce18",
      "tree": "1787b8c307b5e70e2763c4e7c0767c2b7e108dc4",
      "parents": [
        "26562c59fa9111ae3ea7b78045889662aac9e5ac"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "kcore: register module area in generic way\n\nSome archs define MODULED_VADDR/MODULES_END which is not in VMALLOC area.\nThis is handled only in x86-64.  This patch make it more generic.  And we\ncan use vread/vwrite to access the area.  Fix it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4481374ce88ba8f460c8b89f2572027bd27057d0",
      "tree": "6896601b6a1da0e3e932ffa75fcff966c834c02c",
      "parents": [
        "4738e1b9cf8f9e28d7de080a5e6ce5d0095ea18f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Sep 21 17:03:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: replace various uses of num_physpages by totalram_pages\n\nSizing of memory allocations shouldn\u0027t depend on the number of physical\npages found in a system, as that generally includes (perhaps a huge amount\nof) non-RAM pages.  The amount of what actually is usable as storage\nshould instead be used as a basis here.\n\nSome of the calculations (i.e.  those not intending to use high memory)\nshould likely even use (totalram_pages - totalhigh_pages).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0107eb07320b5d37c0f8a9f015534caebb28a48",
      "tree": "9f4f1000af3919d1118356ae7c6b298c6aa81769",
      "parents": [
        "dd32c279983bf77fdcc8a9aa4a05b0ffdc75859c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Sep 21 17:02:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:34 2009 -0700"
      },
      "message": "kcore: fix vread/vwrite to be aware of holes\n\nvread/vwrite access vmalloc area without checking there is a page or not.\nIn most case, this works well.\n\nIn old ages, the caller of get_vm_ara() is only IOREMAP and there is no\nmemory hole within vm_struct\u0027s [addr...addr + size - PAGE_SIZE] (\n-PAGE_SIZE is for a guard page.)\n\nAfter per-cpu-alloc patch, it uses get_vm_area() for reserve continuous\nvirtual address but remap _later_.  There tend to be a hole in valid\nvmalloc area in vm_struct lists.  Then, skip the hole (not mapped page) is\nnecessary.  This patch updates vread/vwrite() for avoiding memory hole.\n\nRoutines which access vmalloc area without knowing for which addr is used\nare\n  - /proc/kcore\n  - /dev/kmem\n\nkcore checks IOREMAP, /dev/kmem doesn\u0027t.  After this patch, IOREMAP is\nchecked and /dev/kmem will avoid to read/write it.  Fixes to /proc/kcore\nwill be in the next patch in series.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Mike Smith \u003cscgtrp@gmail.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": "dd32c279983bf77fdcc8a9aa4a05b0ffdc75859c",
      "tree": "399737a47e6ab1b3a39f6f2950fec325421d082d",
      "parents": [
        "2f66a68f3fac2e94da360c342ff78ab45553f86c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Sep 21 17:02:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:33 2009 -0700"
      },
      "message": "vmalloc: unmap vmalloc area after hiding it\n\nvmap area should be purged after vm_struct is removed from the list\nbecause vread/vwrite etc...believes the range is valid while it\u0027s on\nvm_struct list.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Mike Smith \u003cscgtrp@gmail.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": "bf88c8c83e4425d17e29daa5354ffb1f8ba7b225",
      "tree": "fc87d3c8c94ec6451cbc9821b5d999397eaf0808",
      "parents": [
        "945a11136ebdfa7fcce319ee6215958e84cb85f6"
      ],
      "author": {
        "name": "Figo.zhang",
        "email": "figo1802@gmail.com",
        "time": "Mon Sep 21 17:01:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:30 2009 -0700"
      },
      "message": "vmalloc.c: fix double error checking\n\nThere is no need for double error checking.\n\nSigned-off-by: Figo.zhang \u003cfigo1802@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@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": "ca23e405e06d5fffb005df004c72781f76062f51",
      "tree": "92f708eb81325c70c3e2827e68eb413c0c14d355",
      "parents": [
        "cf88c79006bd6a09ad725ba0b34c0e23db20b19e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 15:00:52 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 15:00:52 2009 +0900"
      },
      "message": "vmalloc: implement pcpu_get_vm_areas()\n\nTo directly use spread NUMA memories for percpu units, percpu\nallocator will be updated to allow sparsely mapping units in a chunk.\nAs the distances between units can be very large, this makes\nallocating single vmap area for each chunk undesirable.  This patch\nimplements pcpu_get_vm_areas() and pcpu_free_vm_areas() which\nallocates and frees sparse congruent vmap areas.\n\npcpu_get_vm_areas() take @offsets and @sizes array which define\ndistances and sizes of vmap areas.  It scans down from the top of\nvmalloc area looking for the top-most address which can accomodate all\nthe areas.  The top-down scan is to avoid interacting with regular\nvmallocs which can push up these congruent areas up little by little\nending up wasting address space and page table.\n\nTo speed up top-down scan, the highest possible address hint is\nmaintained.  Although the scan is linear from the hint, given the\nusual large holes between memory addresses between NUMA nodes, the\nscanning is highly likely to finish after finding the first hole for\nthe last unit which is scanned first.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "cf88c79006bd6a09ad725ba0b34c0e23db20b19e",
      "tree": "7c1467a7350a33c2986fb0bb08d733b02a3fd259",
      "parents": [
        "bba174f5e03a40a4ab1c63a2272ea5530b98a067"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 15:00:52 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 15:00:52 2009 +0900"
      },
      "message": "vmalloc: separate out insert_vmalloc_vm()\n\nSeparate out insert_vmalloc_vm() from __get_vm_area_node().\ninsert_vmalloc_vm() initializes vm_struct from vmap_area and inserts\nit into vmlist.  insert_vmalloc_vm() only initializes fields which can\nbe determined from @vm, @flags and @caller The rest should be\ninitialized by the caller.  For __get_vm_area_node(), all other fields\njust need to be cleared and this is done by using kzalloc instead of\nkmalloc.\n\nThis will be used to implement pcpu_get_vm_areas().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "512626a04e72aca60effe111fa0333ed0b195d21",
      "tree": "c22e23b0dcc2dd2ff5a9a96a007de6799e9223de",
      "parents": [
        "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
        "3aa27bbe7a6536d1ec859d3a97caf3319b5081b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Add the corresponding MAINTAINERS entry\n  kmemleak: Simple testing module for kmemleak\n  kmemleak: Enable the building of the memory leak detector\n  kmemleak: Remove some of the kmemleak false positives\n  kmemleak: Add modules support\n  kmemleak: Add kmemleak_alloc callback from alloc_large_system_hash\n  kmemleak: Add the vmalloc memory allocation/freeing hooks\n  kmemleak: Add the slub memory allocation/freeing hooks\n  kmemleak: Add the slob memory allocation/freeing hooks\n  kmemleak: Add the slab memory allocation/freeing hooks\n  kmemleak: Add documentation on the memory leak detector\n  kmemleak: Add the base support\n\nManual conflict resolution (with the slab/earlyboot changes) in:\n\tdrivers/char/vt.c\n\tinit/main.c\n\tmm/slab.c\n"
    },
    {
      "commit": "43ebdac42f16037263b52a5aeedcd1bfa4a9bb29",
      "tree": "8f288e9875418fbebd48f9bb31ac22ebae37838c",
      "parents": [
        "83b519e8b9572c319c8e0c615ee5dd7272856090"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon May 25 15:01:35 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 19:17:05 2009 +0300"
      },
      "message": "vmalloc: use kzalloc() instead of alloc_bootmem()\n\nWe can call vmalloc_init() after kmem_cache_init() and use kzalloc() instead of\nthe bootmem allocator when initializing vmalloc data structures.\n\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "89219d37a2377c44fde7bff0bf0623453c05329a",
      "tree": "8183d7bb948f06868e3687b59336c8a99360ce7b",
      "parents": [
        "06f22f13f3cc2eff00db09f053218e5d4b757bc8"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:23:19 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:03:30 2009 +0100"
      },
      "message": "kmemleak: Add the vmalloc memory allocation/freeing hooks\n\nThis patch adds the callbacks to kmemleak_(alloc|free) functions from\nvmalloc/vfree.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "2498ce42d3a4d1a498f1df4884da960087547db7",
      "tree": "52e46a1b944aa0e2e291a3c847c4063827b725b4",
      "parents": [
        "ca1eda2d75b855f434b1d5458534332ffad92d65"
      ],
      "author": {
        "name": "Ralph Wuerthner",
        "email": "ralphw@linux.vnet.ibm.com",
        "time": "Wed May 06 16:02:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 06 16:36:10 2009 -0700"
      },
      "message": "alloc_vmap_area: fix memory leak\n\nIf alloc_vmap_area() fails the allocated struct vmap_area has to be freed.\n\nSigned-off-by: Ralph Wuerthner \u003cralphw@linux.vnet.ibm.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: 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": "d086817dc0d42f1be8db4138233d33e1dd16a956",
      "tree": "de5dfc0e262b78e625d88309b0ab5c8f94ed8320",
      "parents": [
        "ef161a9863b045909142daea9490b067997f3dc5"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 31 15:19:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "vmap: remove needless lock and list in vmap\n\nvmap\u0027s dirty_list is unused.  It\u0027s for optimizing flushing.  but Nick\ndidn\u0027t write the code yet.  so, we don\u0027t need it until time as it is\nneeded.\n\nThis patch removes vmap_block\u0027s dirty_list and codes related to it.\n\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\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": "91d75e209bd59695f0708d66964d928d45b3b2f3",
      "tree": "32cab1359d951e4193bebb181a0f0319824a2b95",
      "parents": [
        "9976b39b5031bbf76f715893cf080b6a17683881",
        "8b0e5860cb099d7958d13b00ffbc35ad02735700"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:29:19 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:29:19 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into core/percpu\n"
    },
    {
      "commit": "55f2b78995826d549401bdf20abeac1832636bb6",
      "tree": "931b31f3b6e0879df0f9a1d58ffd040d9a652f2e",
      "parents": [
        "f5c1aa1537be39d8b9bb5279b5881d81898fd3cd",
        "92b9af9e4f144535c65aee673cfad309f25fa465"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 01 12:47:58 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 01 12:47:58 2009 +0100"
      },
      "message": "Merge branch \u0027x86/urgent\u0027 into x86/pat\n"
    },
    {
      "commit": "cbb766766f3f2f6d9326c561b1020590642c6e39",
      "tree": "0caaf23286211653ac03b04570914d19521e0e5d",
      "parents": [
        "7766970cc13e9071b356b1f2a48a9eb8675bfcce"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Fri Feb 27 14:03:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:21 2009 -0800"
      },
      "message": "mm: fix lazy vmap purging (use-after-free error)\n\nI just got this new warning from kmemcheck:\n\n    WARNING: kmemcheck: Caught 32-bit read from freed memory (c7806a60)\n    a06a80c7ecde70c1a04080c700000000a06709c1000000000000000000000000\n     f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f\n     ^\n\n    Pid: 0, comm: swapper Not tainted (2.6.29-rc4 #230)\n    EIP: 0060:[\u003cc1096df7\u003e] EFLAGS: 00000286 CPU: 0\n    EIP is at __purge_vmap_area_lazy+0x117/0x140\n    EAX: 00070f43 EBX: c7806a40 ECX: c1677080 EDX: 00027b66\n    ESI: 00002001 EDI: c170df0c EBP: c170df00 ESP: c178830c\n     DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n    CR0: 80050033 CR2: c7806b14 CR3: 01775000 CR4: 00000690\n    DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000\n    DR6: 00004000 DR7: 00000000\n     [\u003cc1096f3e\u003e] free_unmap_vmap_area_noflush+0x6e/0x70\n     [\u003cc1096f6a\u003e] remove_vm_area+0x2a/0x70\n     [\u003cc1097025\u003e] __vunmap+0x45/0xe0\n     [\u003cc10970de\u003e] vunmap+0x1e/0x30\n     [\u003cc1008ba5\u003e] text_poke+0x95/0x150\n     [\u003cc1008ca9\u003e] alternatives_smp_unlock+0x49/0x60\n     [\u003cc171ef47\u003e] alternative_instructions+0x11b/0x124\n     [\u003cc171f991\u003e] check_bugs+0xbd/0xdc\n     [\u003cc17148c5\u003e] start_kernel+0x2ed/0x360\n     [\u003cc171409e\u003e] __init_begin+0x9e/0xa9\n     [\u003cffffffff\u003e] 0xffffffff\n\nIt happened here:\n\n    $ addr2line -e vmlinux -i c1096df7\n    mm/vmalloc.c:540\n\nCode:\n\n\tlist_for_each_entry(va, \u0026valist, purge_list)\n\t\t__free_vmap_area(va);\n\nIt\u0027s this instruction:\n\n    mov    0x20(%ebx),%edx\n\nWhich corresponds to a dereference of va-\u003epurge_list.next:\n\n    (gdb) p ((struct vmap_area *) 0)-\u003epurge_list.next\n    Cannot access memory at address 0x20\n\nIt seems that we should use \"safe\" list traversal here, as the element\nis freed inside the loop. Please verify that this is the right fix.\n\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7766970cc13e9071b356b1f2a48a9eb8675bfcce",
      "tree": "615ebb34f392c882cc0b72e2958249a2f9f0ee19",
      "parents": [
        "5170836679185357dc1b7660bad13287b39e1e33"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Feb 27 14:03:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:21 2009 -0800"
      },
      "message": "mm: vmap fix overflow\n\nThe new vmap allocator can wrap the address and get confused in the case\nof large allocations or VMALLOC_END near the end of address space.\n\nProblem reported by Christoph Hellwig on a 32-bit XFS workload.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecc25fbd6b9e07b33895c61ddf84006b00f55d99",
      "tree": "50cb6411d6aa6559b5e04a088afb73aaa1d4e5be",
      "parents": [
        "801c0be81454901e02c49abe12929c67e7d1cb55",
        "b5f26d05565d070b7b352dba56b1f96e10021980",
        "15d4fcd615989ed83fe848e6a3c7e9f0361cf0d0",
        "63823126c221dd721ce7351b596b3b73aa943613",
        "34754b69a6f87aa6aa2860525a82f12532f83afd",
        "694593e3374a67d95ece6a275a1f181644c2c4d8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 06:31:32 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 06:31:32 2009 +0100"
      },
      "message": "Merge branches \u0027x86/apic\u0027, \u0027x86/defconfig\u0027, \u0027x86/memtest\u0027, \u0027x86/mm\u0027 and \u0027linus\u0027 into x86/core\n"
    },
    {
      "commit": "34754b69a6f87aa6aa2860525a82f12532f83afd",
      "tree": "2f5234670238c3cf1139d09545fd25140f49c003",
      "parents": [
        "95108fa34a83ffd97e0af959e4b28d7c62008781"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 25 16:04:03 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 16:38:34 2009 +0100"
      },
      "message": "x86: make vmap yell louder when it is used under irqs_disabled()\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0edcf8d6926f4038443dbc24e319530177ca0353",
      "tree": "6010af62f73d01ab673d5106f310eaf4f4228e32",
      "parents": [
        "87b203079ed949de52f0d92aeae20e5e0116c12f",
        "40150d37be7f7949b2ec07d511244da856647d84"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 24 21:52:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 24 21:52:45 2009 +0100"
      },
      "message": "Merge branch \u0027tj-percpu\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into core/percpu\n\nConflicts:\n\tarch/x86/include/asm/pgtable.h\n"
    },
    {
      "commit": "c0c0a29379b5848aec2e8f1c58d853d3cb7118b8",
      "tree": "521d4c8ae5756652e7ed3f7242c516b79df76aa2",
      "parents": [
        "2d0aae41695257603fc281b519677131ab5a752b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 24 11:57:21 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 24 11:57:21 2009 +0900"
      },
      "message": "vmalloc: add @align to vm_area_register_early()\n\nImpact: allow larger alignment for early vmalloc area allocation\n\nSome early vmalloc users might want larger alignment, for example, for\ncustom large page mapping.  Add @align to vm_area_register_early().\nWhile at it, drop docbook comment on non-existent @size.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\n"
    },
    {
      "commit": "f6fcba7014f9cc535fa75ef98c008b24e49e2212",
      "tree": "85aae17fc20b8a4b6d5112c740950e0dcdcb9baf",
      "parents": [
        "3fd076dd955a34c35dc456f4ef676e03cdced044"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 15:38:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:57:49 2009 -0800"
      },
      "message": "vmalloc: call flush_cache_vunmap() from unmap_kernel_range()\n\nImpact: proper vcache flush on unmap_kernel_range()\n\nflush_cache_vunmap() should be called before pages are unmapped.  Add\na call to it in unmap_kernel_range().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8fc48985006da4ceba24508db64ec77fc0dfe3bb",
      "tree": "2234b92b13c53bfd1972e967c50ff305b6efe013",
      "parents": [
        "f0aa6617903648077dffe5cfcf7c4458f4610fa7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "vmalloc: add un/map_kernel_range_noflush()\n\nImpact: two more public map/unmap functions\n\nImplement map_kernel_range_noflush() and unmap_kernel_range_noflush().\nThese functions respectively map and unmap address range in kernel VM\narea but doesn\u0027t do any vcache or tlb flushing.  These will be used by\nnew percpu allocator.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\n"
    },
    {
      "commit": "f0aa6617903648077dffe5cfcf7c4458f4610fa7",
      "tree": "c97ab20b953bfea8a6516d741585ea088a8bf7ef",
      "parents": [
        "f2a8205c4ef1af917d175c36a4097ae5587791c8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "vmalloc: implement vm_area_register_early()\n\nImpact: allow multiple early vm areas\n\nThere are places where kernel VM area needs to be allocated before\nvmalloc is initialized.  This is done by allocating static vm_struct,\ninitializing several fields and linking it to vmlist and later vmalloc\ninitialization picking up these from vmlist.  This is currently done\nmanually and if there\u0027s more than one such areas, there\u0027s no defined\nway to arbitrate who gets which address.\n\nThis patch implements vm_area_register_early(), which takes vm_area\nstruct with flags and size initialized, assigns address to it and puts\nit on the vmlist.  This way, multiple early vm areas can determine\nwhich addresses they should use.  The only current user - alpha mm\ninit - is converted to use it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "734269521e320ad14ed39ae9b64d482b9028dcd2",
      "tree": "0414076b628cae80a872adaf15eb85e20855024b",
      "parents": [
        "42f8faecf7a88371de0f30aebb052d1ae51762c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:07 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:07 2009 +0900"
      },
      "message": "vmalloc: call flush_cache_vunmap() from unmap_kernel_range()\n\nImpact: proper vcache flush on unmap_kernel_range()\n\nflush_cache_vunmap() should be called before pages are unmapped.  Add\na call to it in unmap_kernel_range().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "c296861291669f305deef19b78042330d7135017",
      "tree": "a623faa7815c0eb70ea463966c8a8715e7e69246",
      "parents": [
        "5955c7a2cfb6a35429adea5dc480002b15ca8cfc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Feb 18 14:48:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:53 2009 -0800"
      },
      "message": "vmalloc: add __get_vm_area_caller()\n\nWe have get_vm_area_caller() and __get_vm_area() but not\n__get_vm_area_caller()\n\nOn powerpc, I use __get_vm_area() to separate the ranges of addresses\ngiven to vmalloc vs.  ioremap (various good reasons for that) so in order\nto be able to implement the new caller tracking in /proc/vmallocinfo, I\nneed a \"_caller\" variant of it.\n\n(akpm: needed for ongoing powerpc development, so merge it early)\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "7682486b3ee06f800d5b11033371c7c5e92e3057"
}
