)]}'
{
  "log": [
    {
      "commit": "f52407ce2deac76c87abc8211a63ea152ba72d54",
      "tree": "6e3976fae721bd178d68d11750f7ad7f86d8feca",
      "parents": [
        "8e7e40d9658cf7b2ae2b76484e235799b3ddaa97"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Sep 21 17:01:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:26 2009 -0700"
      },
      "message": "memory hotplug: alloc page from other node in memory online\n\nTo initialize hotadded node, some pages are allocated.  At that time, the\nnode hasn\u0027t memory, this makes the allocation always fail.  In such case,\nlet\u0027s allocate pages from other nodes.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Yakui Zhao \u003cyakui.zhao@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b41ad14c30acf023d09ac064096a4cf41248ce46",
      "tree": "30609ac0611f9172cecf846a5b67a65f973adf78",
      "parents": [
        "0aedadf91a70a11c4a3e7c7d99b21e5528af8d5d"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Nov 06 12:53:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "vmemmap: warn about page_structs with remote distance\n\nIt\u0027s insufficient to simply compare node ids when warning about offnode\npage_structs since it\u0027s possible to still have local affinity.\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-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": "cde53535991fbb5c34a1566f25955297c1487b8d",
      "tree": "4f87e67b52c8761cfc421a619379263733b91159",
      "parents": [
        "a926c063738f31c8c8b5c2b883812a40e7868072"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jul 04 09:59:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:04 2008 -0700"
      },
      "message": "Christoph has moved\n\nRemove all clameter@sgi.com addresses from the kernel tree since they will\nbecome invalid on June 27th.  Change my maintainer email address for the\nslab allocators to cl@linux-foundation.org (which will be the new email\naddress for the future).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9dce07f1a441b77a15631cf0ed0238e0baa7ed64",
      "tree": "2131d670d31ae4727b4234e3e0ad176ae103d571",
      "parents": [
        "1076d17ac70d1bb28fadc6f4bd96977b56897025"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Mar 29 03:07:28 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 30 14:18:41 2008 -0700"
      },
      "message": "NULL noise: fs/*, mm/*, kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0dc3a53def41efeabb3f39ad8e9f67e81ca1025",
      "tree": "f605744bf9998c062079c1369924e93a617ef42a",
      "parents": [
        "164e217cec236f84718676543659181ea300a862"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Nov 28 16:21:57 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:54 2007 -0800"
      },
      "message": "memory hotplug fix: fix section mismatch in vmammap_allock_block()\n\nFixes section mismatch below.\n\nWARNING: vmlinux.o(.text+0x946b5): Section mismatch: reference to .init.text:\u0027\n__alloc_bootmem_node (between \u0027vmemmap_alloc_block\u0027 and \u0027vmemmap_pgd_populate\u0027)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8bca44bbd39007065cc6a4e3a50201475629a6cf",
      "tree": "ce2735c05a2ae18965505014db3a4103d75cb2dc",
      "parents": [
        "4138f08d1c2783a28df2af6ed81aa180462ec374"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "gcosta@redhat.com",
        "time": "Mon Oct 29 14:37:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 30 08:06:55 2007 -0700"
      },
      "message": "mm/sparse-vmemmap.c: make sure init_mm is included\n\nmm/sparse-vmemmap.c uses init_mm in some places.  However, it is not\npresent in any of the headers currently included in the file.\n\ninit_mm is defined as extern in sched.h, so we add it to the headers list\n\nUp to now, this problem was masked by the fact that functions like\nset_pte_at() and pmd_populate_kernel() are usually macros that expand to\nsimpler variants that does not use the first parameter at all.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cgcosta@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": "98f3cfc1dc7a53b629d43b7844a9b3f786213048",
      "tree": "de98ff0e3c25b01863c31abc0f3054de978b9ef8",
      "parents": [
        "48e94196a533dbee17c252bf80d0310fb8c8c2eb"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Oct 16 01:26:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:02 2007 -0700"
      },
      "message": "memory hotplug: Hot-add with sparsemem-vmemmap\n\nThis patch is to avoid panic when memory hot-add is executed with\nsparsemem-vmemmap.  Current vmemmap-sparsemem code doesn\u0027t support memory\nhot-add.  Vmemmap must be populated when hot-add.  This is for\n2.6.23-rc2-mm2.\n\nTodo: # Even if this patch is applied, the message \"[xxxx-xxxx] potential\n        offnode page_structs\" is displayed. To allocate memmap on its node,\n        memmap (and pgdat) must be initialized itself like chicken and\n        egg relationship.\n\n      # vmemmap_unpopulate will be necessary for followings.\n         - For cancel hot-add due to error.\n         - For unplug.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29c71111d0557385328211b130246a90f9223b46",
      "tree": "5588a49ee548d38e15bd7541cec29e069b9e457c",
      "parents": [
        "8f6aac419bd590f535fb110875a51f7db2b62b5b"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Oct 16 01:24:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "vmemmap: generify initialisation via helpers\n\nConvert the common vmemmap population into initialisation helpers for use by\narchitecture vmemmap populators.  All architecture implementing the\nSPARSEMEM_VMEMMAP variant supply an architecture specific vmemmap_populate()\ninitialiser, which may make use of the helpers.\n\nThis allows us to clean up and remove the initialisation Kconfig entries.\nWith this patch there is a single SPARSEMEM_VMEMMAP_ENABLE Kconfig option to\nindicate use of that variant.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f6aac419bd590f535fb110875a51f7db2b62b5b",
      "tree": "64e73e9f7a4b5a68648a2b4b16e66307c3d8d3cf",
      "parents": [
        "540557b9439ec19668553830c90222f9fb0c2e95"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:24:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:51 2007 -0700"
      },
      "message": "Generic Virtual Memmap support for SPARSEMEM\n\nSPARSEMEM is a pretty nice framework that unifies quite a bit of code over all\nthe arches.  It would be great if it could be the default so that we can get\nrid of various forms of DISCONTIG and other variations on memory maps.  So far\nwhat has hindered this are the additional lookups that SPARSEMEM introduces\nfor virt_to_page and page_address.  This goes so far that the code to do this\nhas to be kept in a separate function and cannot be used inline.\n\nThis patch introduces a virtual memmap mode for SPARSEMEM, in which the memmap\nis mapped into a virtually contigious area, only the active sections are\nphysically backed.  This allows virt_to_page page_address and cohorts become\nsimple shift/add operations.  No page flag fields, no table lookups, nothing\ninvolving memory is required.\n\nThe two key operations pfn_to_page and page_to_page become:\n\n   #define __pfn_to_page(pfn)      (vmemmap + (pfn))\n   #define __page_to_pfn(page)     ((page) - vmemmap)\n\nBy having a virtual mapping for the memmap we allow simple access without\nwasting physical memory.  As kernel memory is typically already mapped 1:1\nthis introduces no additional overhead.  The virtual mapping must be big\nenough to allow a struct page to be allocated and mapped for all valid\nphysical pages.  This vill make a virtual memmap difficult to use on 32 bit\nplatforms that support 36 address bits.\n\nHowever, if there is enough virtual space available and the arch already maps\nits 1-1 kernel space using TLBs (f.e.  true of IA64 and x86_64) then this\ntechnique makes SPARSEMEM lookups even more efficient than CONFIG_FLATMEM.\nFLATMEM needs to read the contents of the mem_map variable to get the start of\nthe memmap and then add the offset to the required entry.  vmemmap is a\nconstant to which we can simply add the offset.\n\nThis patch has the potential to allow us to make SPARSMEM the default (and\neven the only) option for most systems.  It should be optimal on UP, SMP and\nNUMA on most platforms.  Then we may even be able to remove the other memory\nmodels: FLATMEM, DISCONTIG etc.\n\n[apw@shadowen.org: config cleanups, resplit code etc]\n[kamezawa.hiroyu@jp.fujitsu.com: Fix sparsemem_vmemmap init]\n[apw@shadowen.org: vmemmap: remove excess debugging]\n[apw@shadowen.org: simplify initialisation code and reduce duplication]\n[apw@shadowen.org: pull out the vmemmap code into its own file]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-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"
    }
  ]
}
