)]}'
{
  "commit": "5a6fe125950676015f5108fb71b2a67441755003",
  "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
  "parents": [
    "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
  ],
  "author": {
    "name": "Mel Gorman",
    "email": "mel@csn.ul.ie",
    "time": "Tue Feb 10 14:02:27 2009 +0000"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Feb 10 10:48:42 2009 -0800"
  },
  "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6903d37af0371d4befd7484fbc2e747c1d6c2f51",
      "old_mode": 33188,
      "old_path": "fs/hugetlbfs/inode.c",
      "new_id": "9b800d97a68771b2299e978ebfdb003476e1c075",
      "new_mode": 33188,
      "new_path": "fs/hugetlbfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "f1d2fba19ea0a98ba97490a0b4184251365a3a6c",
      "old_mode": 33188,
      "old_path": "include/linux/hugetlb.h",
      "new_id": "af09660001c7dc13cbdd4055145e3bf762f5d83f",
      "new_mode": 33188,
      "new_path": "include/linux/hugetlb.h"
    },
    {
      "type": "modify",
      "old_id": "e8ddc98b8405fdf7c9d32680731e0d5738bb97e1",
      "old_mode": 33188,
      "old_path": "include/linux/mm.h",
      "new_id": "323561582c100bf1b18c3a3b6084eda970f89eeb",
      "new_mode": 33188,
      "new_path": "include/linux/mm.h"
    },
    {
      "type": "modify",
      "old_id": "f8f69fad3a27879e1f0bf82725c196455dec81c8",
      "old_mode": 33188,
      "old_path": "ipc/shm.c",
      "new_id": "05d51d2a792c116630f8d4d1cd28bbdcf754c81f",
      "new_mode": 33188,
      "new_path": "ipc/shm.c"
    },
    {
      "type": "modify",
      "old_id": "736ba7f3306a1078fa851fd3dce755205162abfc",
      "old_mode": 33188,
      "old_path": "mm/fremap.c",
      "new_id": "b6ec85abbb39cc22dac7e9c309953c60a22e921c",
      "new_mode": 33188,
      "new_path": "mm/fremap.c"
    },
    {
      "type": "modify",
      "old_id": "618e98304080a8bdb3ace929c8dcb8938662fad4",
      "old_mode": 33188,
      "old_path": "mm/hugetlb.c",
      "new_id": "207464209546918457f9a06746f3f8383c006a80",
      "new_mode": 33188,
      "new_path": "mm/hugetlb.c"
    },
    {
      "type": "modify",
      "old_id": "214b6a258eeb6f807f2cf8ae11f02c4ae9c78005",
      "old_mode": 33188,
      "old_path": "mm/mmap.c",
      "new_id": "eb1270bebe672287191b0a13cedb0eff8dd451ec",
      "new_mode": 33188,
      "new_path": "mm/mmap.c"
    },
    {
      "type": "modify",
      "old_id": "abe2694e13f497ea8ecaa443fa6d7d11a5edb084",
      "old_mode": 33188,
      "old_path": "mm/mprotect.c",
      "new_id": "258197b76fb4142d01b81d7871fddbca80510114",
      "new_mode": 33188,
      "new_path": "mm/mprotect.c"
    }
  ]
}
