)]}'
{
  "commit": "56de7263fcf3eb10c8dcdf8d59a9cec831795f3f",
  "tree": "164637c0b678e20adfdcec4129563d9234faf405",
  "parents": [
    "ed4a6d7f0676db50b5023cc01f6cda82a2f2a307"
  ],
  "author": {
    "name": "Mel Gorman",
    "email": "mel@csn.ul.ie",
    "time": "Mon May 24 14:32:30 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue May 25 08:06:59 2010 -0700"
  },
  "message": "mm: compaction: direct compact when a high-order allocation fails\n\nOrdinarily when a high-order allocation fails, direct reclaim is entered\nto free pages to satisfy the allocation.  With this patch, it is\ndetermined if an allocation failed due to external fragmentation instead\nof low memory and if so, the calling process will compact until a suitable\npage is freed.  Compaction by moving pages in memory is considerably\ncheaper than paging out to disk and works where there are locked pages or\nno swap.  If compaction fails to free a page of a suitable size, then\nreclaim will still occur.\n\nDirect compaction returns as soon as possible.  As each block is\ncompacted, it is checked if a suitable page has been freed and if so, it\nreturns.\n\n[akpm@linux-foundation.org: Fix build errors]\n[aarcange@redhat.com: fix count_vm_event preempt in memory compaction direct reclaim]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ba98cfe0ae1502a81a7ed13c1bb571856bee9c6e",
      "old_mode": 33188,
      "old_path": "include/linux/compaction.h",
      "new_id": "eed40ec4280b2275e210ca848674df99174528b5",
      "new_mode": 33188,
      "new_path": "include/linux/compaction.h"
    },
    {
      "type": "modify",
      "old_id": "b421d1b22b628719491c6709e8545f6a73a94ed9",
      "old_mode": 33188,
      "old_path": "include/linux/vmstat.h",
      "new_id": "7f43ccdc1d38c0eb919efe4891e1b91ec19c3705",
      "new_mode": 33188,
      "new_path": "include/linux/vmstat.h"
    },
    {
      "type": "modify",
      "old_id": "f61f77983ff4e1ec15759370c3caa4ba199254ca",
      "old_mode": 33188,
      "old_path": "mm/compaction.c",
      "new_id": "9583e193dc47b3e0f5728629bec48a94685de037",
      "new_mode": 33188,
      "new_path": "mm/compaction.c"
    },
    {
      "type": "modify",
      "old_id": "c54376a09f309523e0e133e3931604ac4f9752aa",
      "old_mode": 33188,
      "old_path": "mm/page_alloc.c",
      "new_id": "cd88a860f088aac5cc19781c5e1aa02730265897",
      "new_mode": 33188,
      "new_path": "mm/page_alloc.c"
    },
    {
      "type": "modify",
      "old_id": "c6aacf51b554545a89f2f0b23b6c3df2b8eb0a75",
      "old_mode": 33188,
      "old_path": "mm/vmstat.c",
      "new_id": "7759941d4e7760616e1bf89c0ed887f485b473a9",
      "new_mode": 33188,
      "new_path": "mm/vmstat.c"
    }
  ]
}
