)]}'
{
  "commit": "0753ba01e126020bf0f8150934903b48935b697d",
  "tree": "fbfd7e2d0abbe724a8c5e0e17fb9af522ed2e097",
  "parents": [
    "89a4eb4b66e8f4d395e14a14d262dac4d6ca52f0"
  ],
  "author": {
    "name": "KOSAKI Motohiro",
    "email": "kosaki.motohiro@jp.fujitsu.com",
    "time": "Tue Aug 18 14:11:10 2009 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Aug 18 16:31:13 2009 -0700"
  },
  "message": "mm: revert \"oom: move oom_adj value\"\n\nThe commit 2ff05b2b (oom: move oom_adj value) moveed the oom_adj value to\nthe mm_struct.  It was a very good first step for sanitize OOM.\n\nHowever Paul Menage reported the commit makes regression to his job\nscheduler.  Current OOM logic can kill OOM_DISABLED process.\n\nWhy? His program has the code of similar to the following.\n\n\t...\n\tset_oom_adj(OOM_DISABLE); /* The job scheduler never killed by oom */\n\t...\n\tif (vfork() \u003d\u003d 0) {\n\t\tset_oom_adj(0); /* Invoked child can be killed */\n\t\texecve(\"foo-bar-cmd\");\n\t}\n\t....\n\nvfork() parent and child are shared the same mm_struct.  then above\nset_oom_adj(0) doesn\u0027t only change oom_adj for vfork() child, it\u0027s also\nchange oom_adj for vfork() parent.  Then, vfork() parent (job scheduler)\nlost OOM immune and it was killed.\n\nActually, fork-setting-exec idiom is very frequently used in userland program.\nWe must not break this assumption.\n\nThen, this patch revert commit 2ff05b2b and related commit.\n\nReverted commit list\n---------------------\n- commit 2ff05b2b4e (oom: move oom_adj value from task_struct to mm_struct)\n- commit 4d8b9135c3 (oom: avoid unnecessary mm locking and scanning for OOM_DISABLE)\n- commit 8123681022 (oom: only oom kill exiting tasks with attached memory)\n- commit 933b787b57 (mm: copy over oom_adj value at fork time)\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "fad18f9456e4f048f277bac165601f499c1e041e",
      "old_mode": 33188,
      "old_path": "Documentation/filesystems/proc.txt",
      "new_id": "ffead13f9443fd7d11b63e2cd3a6ffb15c0f1994",
      "new_mode": 33188,
      "new_path": "Documentation/filesystems/proc.txt"
    },
    {
      "type": "modify",
      "old_id": "175db258942f95a225ab7a16cd137b8a78fb02a1",
      "old_mode": 33188,
      "old_path": "fs/proc/base.c",
      "new_id": "6f742f6658a9897503568c3ea7b78407829e760f",
      "new_mode": 33188,
      "new_path": "fs/proc/base.c"
    },
    {
      "type": "modify",
      "old_id": "7acc8439d9b305caad3d8354ee7ad43e0a3de465",
      "old_mode": 33188,
      "old_path": "include/linux/mm_types.h",
      "new_id": "0042090a4d70cd839a97c6b436ea91f8ddf51d40",
      "new_mode": 33188,
      "new_path": "include/linux/mm_types.h"
    },
    {
      "type": "modify",
      "old_id": "3ab08e4bb6b87c608d8e58b3f37e4260c18c1f4e",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "0f1ea4a6695763debe7a6e87bf586c36efcc0c76",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "021e1138556e22ce7b35dbdd06267f67f0057a98",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "144326b7af505a7c6c2c43cf58e481df29d7e1b2",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "175a67a78a99e7b0368dfba11edf9888bc049674",
      "old_mode": 33188,
      "old_path": "mm/oom_kill.c",
      "new_id": "a7b2460e922b779252ebcc225cecaf6060b0e964",
      "new_mode": 33188,
      "new_path": "mm/oom_kill.c"
    }
  ]
}
