)]}'
{
  "commit": "867578cbccb0893cc14fc29c670f7185809c90d6",
  "tree": "e4d0cefac265fc64399223bc82ed714a88ebe20c",
  "parents": [
    "0263c12c12ccc90edc9d856fa839f8936183e6d1"
  ],
  "author": {
    "name": "KAMEZAWA Hiroyuki",
    "email": "kamezawa.hiroyu@jp.fujitsu.com",
    "time": "Wed Mar 10 15:22:39 2010 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Mar 12 15:52:38 2010 -0800"
  },
  "message": "memcg: fix oom kill behavior\n\nIn current page-fault code,\n\n\thandle_mm_fault()\n\t\t-\u003e ...\n\t\t-\u003e mem_cgroup_charge()\n\t\t-\u003e map page or handle error.\n\t-\u003e check return code.\n\nIf page fault\u0027s return code is VM_FAULT_OOM, page_fault_out_of_memory() is\ncalled.  But if it\u0027s caused by memcg, OOM should have been already\ninvoked.\n\nThen, I added a patch: a636b327f731143ccc544b966cfd8de6cb6d72c6.  That\npatch records last_oom_jiffies for memcg\u0027s sub-hierarchy and prevents\npage_fault_out_of_memory from being invoked in near future.\n\nBut Nishimura-san reported that check by jiffies is not enough when the\nsystem is terribly heavy.\n\nThis patch changes memcg\u0027s oom logic as.\n * If memcg causes OOM-kill, continue to retry.\n * remove jiffies check which is used now.\n * add memcg-oom-lock which works like perzone oom lock.\n * If current is killed(as a process), bypass charge.\n\nSomething more sophisticated can be added but this pactch does\nfundamental things.\nTODO:\n - add oom notifier\n - add permemcg disable-oom-kill flag and freezer at oom.\n - more chances for wake up oom waiter (when changing memory limit etc..)\n\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nTested-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "1f9b119f4ace3624e492bb6cb88495b3e9d0f5e2",
      "old_mode": 33188,
      "old_path": "include/linux/memcontrol.h",
      "new_id": "44301c6affa8b06d831cb0e48b5b28fc22d96687",
      "new_mode": 33188,
      "new_path": "include/linux/memcontrol.h"
    },
    {
      "type": "modify",
      "old_id": "f7b910fc14fb590fb2eebdc0fdd9b7d947988bfb",
      "old_mode": 33188,
      "old_path": "mm/memcontrol.c",
      "new_id": "7973b5221fb8e86b816c8e9667aff5f6c5fa7e21",
      "new_mode": 33188,
      "new_path": "mm/memcontrol.c"
    },
    {
      "type": "modify",
      "old_id": "71d10bf52dc846533eb3270ddb7cdd2ce0e26f0b",
      "old_mode": 33188,
      "old_path": "mm/oom_kill.c",
      "new_id": "9b223af6a147f6fc82b22c58d1d878f09fb80053",
      "new_mode": 33188,
      "new_path": "mm/oom_kill.c"
    }
  ]
}
