)]}'
{
  "commit": "3148890bfa4f36c9949871264e06ef4d449eeff9",
  "tree": "f8d7b2498ec83883d1434abd9042ae8e6863bdb2",
  "parents": [
    "aa877b3dc9f2a1fdffac4ea36bee97c21db11a69"
  ],
  "author": {
    "name": "Nick Piggin",
    "email": "nickpiggin@yahoo.com.au",
    "time": "Mon Nov 28 13:44:03 2005 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Mon Nov 28 14:42:24 2005 -0800"
  },
  "message": "[PATCH] mm: __alloc_pages cleanup fix\n\nI believe this patch is required to fix breakage in the asynch reclaim\nwatermark logic introduced by this patch:\n\nhttp://www.kernel.org/git/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003d7fb1d9fca5c6e3b06773b69165a73f3fb786b8ee\n\nJust some background of the watermark logic in case it isn\u0027t clear...\nBasically what we have is this:\n\n ---  pages_high\n   |\n   | (a)\n   |\n ---  pages_low\n   |\n   | (b)\n   |\n ---  pages_min\n   |\n   | (c)\n   |\n ---  0\n\nNow when pages_low is reached, we want to kick asynch reclaim, which gives us\nan interval of \"b\" before we must start synch reclaim, and gives kswapd an\ninterval of \"a\" before it need go back to sleep.\n\nWhen pages_min is reached, normal allocators must enter synch reclaim, but\nPF_MEMALLOC, ALLOC_HARDER, and ALLOC_HIGH (ie.  atomic allocations, recursive\nallocations, etc.) get access to varying amounts of the reserve \"c\".\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1731236dec352ffd9dc3e21e11cc9ce27bd9bde2",
      "old_mode": 33188,
      "old_path": "mm/page_alloc.c",
      "new_id": "b257720edfc83ce4d025159d05c82354b9dd220b",
      "new_mode": 33188,
      "new_path": "mm/page_alloc.c"
    }
  ]
}
