)]}'
{
  "log": [
    {
      "commit": "eb33575cf67d3f35fa2510210ef92631266e2465",
      "tree": "55dd9958dd10758aa5b1ad0186a3356ae620da44",
      "parents": [
        "e1342f1da06d39b3bbd530e9306347c4438bc6e5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed May 13 17:34:48 2009 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon May 18 11:22:24 2009 +0100"
      },
      "message": "[ARM] Double check memmap is actually valid with a memmap has unexpected holes V2\n\npfn_valid() is meant to be able to tell if a given PFN has valid memmap\nassociated with it or not. In FLATMEM, it is expected that holes always\nhave valid memmap as long as there is valid PFNs either side of the hole.\nIn SPARSEMEM, it is assumed that a valid section has a memmap for the\nentire section.\n\nHowever, ARM and maybe other embedded architectures in the future free\nmemmap backing holes to save memory on the assumption the memmap is never\nused. The page_zone linkages are then broken even though pfn_valid()\nreturns true. A walker of the full memmap must then do this additional\ncheck to ensure the memmap they are looking at is sane by making sure the\nzone and PFN linkages are still valid. This is expensive, but walkers of\nthe full memmap are extremely rare.\n\nThis was caught before for FLATMEM and hacked around but it hits again for\nSPARSEMEM because the page_zone linkages can look ok where the PFN linkages\nare totally screwed. This looks like a hatchet job but the reality is that\nany clean solution would end up consumning all the memory saved by punching\nthese unexpected holes in the memmap. For example, we tried marking the\nmemmap within the section invalid but the section size exceeds the size of\nthe hole in most cases so pfn_valid() starts returning false where valid\nmemmap exists. Shrinking the size of the section would increase memory\nconsumption offsetting the gains.\n\nThis patch identifies when an architecture is punching unexpected holes\nin the memmap that the memory model cannot automatically detect and sets\nARCH_HAS_HOLES_MEMORYMODEL. At the moment, this is restricted to EP93xx\nwhich is the model sub-architecture this has been reported on but may expand\nlater. When set, walkers of the full memmap must call memmap_valid_within()\nfor each PFN and passing in what it expects the page and zone to be for\nthat PFN. If it finds the linkages to be broken, it assumes the memmap is\ninvalid for that PFN.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "5bead2a0680687b9576d57c177988e8aa082b922",
      "tree": "25d8db69bd7b353131f9a5260d024d3018eeffa0",
      "parents": [
        "7e96445533ac3f4f7964646a202ff3620602fab4"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Sat Sep 13 02:33:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 13 14:41:52 2008 -0700"
      },
      "message": "mm: mark the correct zone as full when scanning zonelists\n\nThe iterator for_each_zone_zonelist() uses a struct zoneref *z cursor when\nscanning zonelists to keep track of where in the zonelist it is.  The\nzoneref that is returned corresponds to the the next zone that is to be\nscanned, not the current one.  It was intended to be treated as an opaque\nlist.\n\nWhen the page allocator is scanning a zonelist, it marks elements in the\nzonelist corresponding to zones that are temporarily full.  As the\nzonelist is being updated, it uses the cursor here;\n\n  if (NUMA_BUILD)\n        zlc_mark_zone_full(zonelist, z);\n\nThis is intended to prevent rescanning in the near future but the zoneref\ncursor does not correspond to the zone that has been found to be full.\nThis is an easy misunderstanding to make so this patch corrects the\nproblem by changing zoneref cursor to be the current zone being scanned\ninstead of the next one.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.26.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19770b32609b6bf97a3dece2529089494cbfc549",
      "tree": "3b5922d1b20aabdf929bde9309f323841717747a",
      "parents": [
        "dd1a239f6f2d4d3eedd318583ec319aa145b324c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:19 2008 -0700"
      },
      "message": "mm: filter based on a nodemask as well as a gfp_mask\n\nThe MPOL_BIND policy creates a zonelist that is used for allocations\ncontrolled by that mempolicy.  As the per-node zonelist is already being\nfiltered based on a zone id, this patch adds a version of __alloc_pages() that\ntakes a nodemask for further filtering.  This eliminates the need for\nMPOL_BIND to create a custom zonelist.\n\nA positive benefit of this is that allocations using MPOL_BIND now use the\nlocal node\u0027s distance-ordered zonelist instead of a custom node-id-ordered\nzonelist.  I.e., pages will be allocated from the closest allowed node with\navailable memory.\n\n[Lee.Schermerhorn@hp.com: Mempolicy: update stale documentation and comments]\n[Lee.Schermerhorn@hp.com: Mempolicy: make dequeue_huge_page_vma() obey MPOL_BIND nodemask]\n[Lee.Schermerhorn@hp.com: Mempolicy: make dequeue_huge_page_vma() obey MPOL_BIND nodemask rework]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "045f147f3290395661b56b9231fc4d221e150963",
      "tree": "63df3be162913b044a7f88a03b45c59f438bbb19",
      "parents": [
        "a8f48a95619cbce8f85423480e7d0a1bf971a62b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:40:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:44 2006 -0800"
      },
      "message": "[PATCH] remove EXPORT_UNUSED_SYMBOL\u0027ed symbols\n\nIn time for 2.6.20, we can get rid of this junk.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0d85c5c3009d292fe195f666cbbec7da47dabf4",
      "tree": "ca1e7158f37b8335e32568cf78dc552b2b6f29a5",
      "parents": [
        "26fc52367af3774b123334bca409159ce37d2857"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 10 04:44:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:17 2006 -0700"
      },
      "message": "[PATCH] mm/mmzone.c: EXPORT_UNUSED_SYMBOL\n\nThis patch marks three unused exports as EXPORT_UNUSED_SYMBOL.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "95144c788dc01b6a0ff2c9c2222e37ffdab358b8",
      "tree": "9f7f186575bb717de39cedaf42bf02a94c11b664",
      "parents": [
        "ae0f15fb91274e67d78836d38c99ec363df33073"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:16:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] uninline zone helpers\n\nHelper functions for for_each_online_pgdat/for_each_zone look too big to be\ninlined.  Speed of these helper macro itself is not very important.  (inner\nloops are tend to do more work than this)\n\nThis patch make helper function to be out-of-lined.\n\n\tinline\t\tout-of-line\n.text   005c0680        005bf6a0\n\n005c0680 - 005bf6a0 \u003d FE0 \u003d 4Kbytes.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
