)]}'
{
  "log": [
    {
      "commit": "97d87c9710bc6c5f2585fb9dc58f5bedbe996f10",
      "tree": "60d6b2adc950c55330504fc472464339328d7ef7",
      "parents": [
        "0c0a4a517a31e05efb38304668198a873bfec6ca"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Apr 28 02:13:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "oom_kill: remove unused parameter in badness()\n\nIn commit 4c4a22148909e4c003562ea7ffe0a06e26919e3c, we moved the\nmemcontroller-related code from badness() to select_bad_process(), so the\nparameter \u0027mem\u0027 in badness() is unused now.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd1a239f6f2d4d3eedd318583ec319aa145b324c",
      "tree": "aff4224c96b5e2e67588c3946858a724863eeaf9",
      "parents": [
        "54a6eb5c4765aa573a030ceeba2c14e3d2ea5706"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: have zonelist contains structs with both a zone pointer and zone_idx\n\nFiltering zonelists requires very frequent use of zone_idx().  This is costly\nas it involves a lookup of another structure and a substraction operation.  As\nthe zone_idx is often required, it should be quickly accessible.  The node idx\ncould also be stored here if it was found that accessing zone-\u003enode is\nsignificant which may be the case on workloads where nodemasks are heavily\nused.\n\nThis patch introduces a struct zoneref to store a zone pointer and a zone\nindex.  The zonelist then consists of an array of these struct zonerefs which\nare looked up as necessary.  Helpers are given for accessing the zone index as\nwell as the node index.\n\n[kamezawa.hiroyu@jp.fujitsu.com: Suggested struct zoneref instead of embedding information in pointers]\n[hugh@veritas.com: mm-have-zonelist: fix memcg ooms]\n[hugh@veritas.com: just return do_try_to_free_pages]\n[hugh@veritas.com: do_try_to_free_pages gfp_mask redundant]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54a6eb5c4765aa573a030ceeba2c14e3d2ea5706",
      "tree": "547176a090beb787722a153cf2b8b942dc0e68db",
      "parents": [
        "18ea7e710d2452fa726814a406779188028cf1bf"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: use two zonelist that are filtered by GFP mask\n\nCurrently a node has two sets of zonelists, one for each zone type in the\nsystem and a second set for GFP_THISNODE allocations.  Based on the zones\nallowed by a gfp mask, one of these zonelists is selected.  All of these\nzonelists consume memory and occupy cache lines.\n\nThis patch replaces the multiple zonelists per-node with two zonelists.  The\nfirst contains all populated zones in the system, ordered by distance, for\nfallback allocations when the target/preferred node has no free pages.  The\nsecond contains all populated zones in the node suitable for GFP_THISNODE\nallocations.\n\nAn iterator macro is introduced called for_each_zone_zonelist() that interates\nthrough each zone allowed by the GFP flags in the selected zonelist.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e115f2d89253490fb2dbf304b627f8d908df26f1",
      "tree": "cfed18e5ac01247f6edbf0d72b418b9e7e110265",
      "parents": [
        "e169c139642fb4c682ec12a409725508dbefa520"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 15 14:34:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 15 19:35:40 2008 -0700"
      },
      "message": "memcg: fix oops in oom handling\n\nWhen I used a test program to fork mass processes and immediately move them to\na cgroup where the memory limit is low enough to trigger oom kill, I got oops:\n\nBUG: unable to handle kernel NULL pointer dereference at 0000000000000808\nIP: [\u003cffffffff8045c47f\u003e] _spin_lock_irqsave+0x8/0x18\nPGD 4c95f067 PUD 4406c067 PMD 0\nOops: 0002 [1] SMP\nCPU 2\nModules linked in:\n\nPid: 11973, comm: a.out Not tainted 2.6.25-rc7 #5\nRIP: 0010:[\u003cffffffff8045c47f\u003e]  [\u003cffffffff8045c47f\u003e] _spin_lock_irqsave+0x8/0x18\nRSP: 0018:ffff8100448c7c30  EFLAGS: 00010002\nRAX: 0000000000000202 RBX: 0000000000000009 RCX: 000000000001c9f3\nRDX: 0000000000000100 RSI: 0000000000000001 RDI: 0000000000000808\nRBP: ffff81007e444080 R08: 0000000000000000 R09: ffff8100448c7900\nR10: ffff81000105f480 R11: 00000100ffffffff R12: ffff810067c84140\nR13: 0000000000000001 R14: ffff8100441d0018 R15: ffff81007da56200\nFS:  00007f70eb1856f0(0000) GS:ffff81007fbad3c0(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: 0000000000000808 CR3: 000000004498a000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess a.out (pid: 11973, threadinfo ffff8100448c6000, task ffff81007da533e0)\nStack:  ffffffff8023ef5a 00000000000000d0 ffffffff80548dc0 00000000000000d0\n ffff810067c84140 ffff81007e444080 ffffffff8026cef9 00000000000000d0\n ffff8100441d0000 00000000000000d0 ffff8100441d0000 ffff8100505445c0\nCall Trace:\n [\u003cffffffff8023ef5a\u003e] ? force_sig_info+0x25/0xb9\n [\u003cffffffff8026cef9\u003e] ? oom_kill_task+0x77/0xe2\n [\u003cffffffff8026d696\u003e] ? mem_cgroup_out_of_memory+0x55/0x67\n [\u003cffffffff802910ad\u003e] ? mem_cgroup_charge_common+0xec/0x202\n [\u003cffffffff8027997b\u003e] ? handle_mm_fault+0x24e/0x77f\n [\u003cffffffff8022c4af\u003e] ? default_wake_function+0x0/0xe\n [\u003cffffffff8027a17a\u003e] ? get_user_pages+0x2ce/0x3af\n [\u003cffffffff80290fee\u003e] ? mem_cgroup_charge_common+0x2d/0x202\n [\u003cffffffff8027a441\u003e] ? make_pages_present+0x8e/0xa4\n [\u003cffffffff8027d1ab\u003e] ? mmap_region+0x373/0x429\n [\u003cffffffff8027d7eb\u003e] ? do_mmap_pgoff+0x2ff/0x364\n [\u003cffffffff80210471\u003e] ? sys_mmap+0xe5/0x111\n [\u003cffffffff8020bfc9\u003e] ? tracesys+0xdc/0xe1\n\nCode: 00 00 01 48 8b 3c 24 e9 46 d4 dd ff f0 ff 07 48 8b 3c 24 e9 3a d4 dd ff fe 07 48 8b 3c 24 e9 2f d4 dd ff 9c 58 fa ba 00 01 00 00 \u003cf0\u003e 66 0f c1 17 38 f2 74 06 f3 90 8a 17 eb f6 c3 fa b8 00 01 00\nRIP  [\u003cffffffff8045c47f\u003e] _spin_lock_irqsave+0x8/0x18\n RSP \u003cffff8100448c7c30\u003e\nCR2: 0000000000000808\n---[ end trace c3702fa668021ea4 ]---\n\nIt\u0027s reproducable in a x86_64 box, but doesn\u0027t happen in x86_32.\n\nThis is because tsk-\u003esighand is not guarded by RCU, so we have to\nhold tasklist_lock, just as what out_of_memory() does.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: David Rientjes \u003crientjes@cs.washington.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b578df02207a67a29e8ced4db3b36d89df52fef",
      "tree": "0ac17c57012263be37b8a4abe70f8ef21e52cd64",
      "parents": [
        "46711810200c50e639ffc52e755b3dba9b4c82a3"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Mar 19 17:00:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 19 18:53:35 2008 -0700"
      },
      "message": "mm/oom_kill: fix kernel-doc\n\nFix kernel-doc notation in oom_kill.c.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00f0b8259e48979c37212995d798f3fbd0374690",
      "tree": "589e8250c016450324e0c730139d020cf2bf887c",
      "parents": [
        "804defea1c020d5c52985685e56986f1a399acde"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Mar 04 14:28:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:12 2008 -0800"
      },
      "message": "Memory controller: rename to Memory Resource Controller\n\nRename Memory Controller to Memory Resource Controller.  Reflect the same\nchanges in the CONFIG definition for the Memory Resource Controller.  Group\ntogether the config options for Resource Counters and Memory Resource\nController.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fef1bdd68c81b71882ccb6f47c70980a03182063",
      "tree": "4cfa5c2c10787a3d54de05ca511db31730a239fd",
      "parents": [
        "4c4a22148909e4c003562ea7ffe0a06e26919e3c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "oom: add sysctl to enable task memory dump\n\nAdds a new sysctl, \u0027oom_dump_tasks\u0027, that enables the kernel to produce a\ndump of all system tasks (excluding kernel threads) when performing an\nOOM-killing.  Information includes pid, uid, tgid, vm size, rss, cpu,\noom_adj score, and name.\n\nThis is helpful for determining why there was an OOM condition and which\nrogue task caused it.\n\nIt is configurable so that large systems, such as those with several\nthousand tasks, do not incur a performance penalty associated with dumping\ndata they may not desire.\n\nIf an OOM was triggered as a result of a memory controller, the tasklist\nshall be filtered to exclude tasks that are not a member of the same\ncgroup.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c4a22148909e4c003562ea7ffe0a06e26919e3c",
      "tree": "fa8b7d00e89f0eb4cdb4394dbc74d898810519aa",
      "parents": [
        "4c6bc8dd5a0932f2c0b30a5f0a124464b7f614d0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcontrol: move oom task exclusion to tasklist scan\n\nCreates a helper function to return non-zero if a task is a member of a\nmemory controller:\n\n\tint task_in_mem_cgroup(const struct task_struct *task,\n\t\t\t       const struct mem_cgroup *mem);\n\nWhen the OOM killer is constrained by the memory controller, the exclusion\nof tasks that are not a member of that controller was previously misplaced\nand appeared in the badness scoring function.  It should be excluded\nduring the tasklist scan in select_bad_process() instead.\n\n[akpm@linux-foundation.org: build fix]\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7ba5c9e8176704bfac0729875fa62798037584d",
      "tree": "00df1c4cb67e313cdb66233381b4cee275fd46c0",
      "parents": [
        "0eea10301708c64a6b793894c156e21ddd15eb64"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: OOM handling\n\nOut of memory handling for cgroups over their limit. A task from the\ncgroup over limit is chosen using the existing OOM logic and killed.\n\nTODO:\n1. As discussed in the OLS BOF session, consider implementing a user\nspace policy for OOM handling.\n\n[akpm@linux-foundation.org: fix build due to oom-killer changes]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97829955ad291acec1d8b94e9911b3ceb1118bb1",
      "tree": "4af91977d82494375e09a961594f83ca77f253d7",
      "parents": [
        "3b7391de67da515c91f48aa371de77cb6cc5c07e"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Feb 04 22:29:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "oom_kill: remove uid\u003d\u003d0 checks\n\nRoot processes are considered more important when out of memory and killing\nproceses.  The check for CAP_SYS_ADMIN was augmented with a check for\nuid\u003d\u003d0 or euid\u003d\u003d0.\n\nThere are several possible ways to look at this:\n\n\t1. uid comparisons are unnecessary, trust CAP_SYS_ADMIN\n\t   alone.  However CAP_SYS_RESOURCE is the one that really\n\t   means \"give me extra resources\" so allow for that as\n\t   well.\n\t2. Any privileged code should be protected, but uid is not\n\t   an indication of privilege.  So we should check whether\n\t   any capabilities are raised.\n\t3. uid\u003d\u003d0 makes processes on the host as well as in containers\n\t   more important, so we should keep the existing checks.\n\t4. uid\u003d\u003d0 makes processes only on the host more important,\n\t   even without any capabilities.  So we should be keeping\n\t   the (uid\u003d\u003d0||euid\u003d\u003d0) check but only when\n\t   userns\u003d\u003d\u0026init_user_ns.\n\nI\u0027m following number 1 here.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Andrew Morgan \u003cmorgan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e338d263a76af78fe8f38a72131188b58fceb591",
      "tree": "f3f046fc6fd66de43de7191830f0daf3bc4ec8eb",
      "parents": [
        "8f6936f4d29aa14e54a2470b954a2e1f96322988"
      ],
      "author": {
        "name": "Andrew Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Feb 04 22:29:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "Add 64-bit capability support to the kernel\n\nThe patch supports legacy (32-bit) capability userspace, and where possible\ntranslates 32-bit capabilities to/from userspace and the VFS to 64-bit\nkernel space capabilities.  If a capability set cannot be compressed into\n32-bits for consumption by user space, the system call fails, with -ERANGE.\n\nFWIW libcap-2.00 supports this change (and earlier capability formats)\n\n http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/\n\n[akpm@linux-foundation.org: coding-syle fixes]\n[akpm@linux-foundation.org: use get_task_comm()]\n[ezk@cs.sunysb.edu: build fix]\n[akpm@linux-foundation.org: do not initialise statics to 0 or NULL]\n[akpm@linux-foundation.org: unused var]\n[serue@us.ibm.com: export __cap_ symbols]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa717060f1ab7eb6570f2fb49136f838fc9195a9",
      "tree": "0338460dae3116563645e3bfa1ff5100d39826f8",
      "parents": [
        "8eb703e4f33488bf75829564d51d427e17f7cd4c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:27 2008 +0100"
      },
      "message": "sched: sched_rt_entity\n\nMove the task_struct members specific to rt scheduling together.\nA future optimization could be to put sched_entity and sched_rt_entity\ninto a union.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e91a810e884850781a1cada2ea81b8016881d244",
      "tree": "ed23efe49c12aeb8e336795bee11dde3e4ebb2ec",
      "parents": [
        "e8b8c977734193adedf2b0f607d6252c78e86394"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Oct 20 21:45:33 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Oct 20 15:04:06 2007 -0700"
      },
      "message": "oom_kill bug\n\nWrong order of arguments\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed",
      "tree": "3123c03b25dd5c0cd24b6ab4fc16731217838157",
      "parents": [
        "9a2e70572e94e21e7ec4186702d045415422bda0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use helpers to obtain task pid in printks\n\nThe task_struct-\u003epid member is going to be deprecated, so start\nusing the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in\nthe kernel.\n\nThe first thing to start with is the pid, printed to dmesg - in\nthis case we may safely use task_pid_nr(). Besides, printks produce\nmore (much more) than a half of all the explicit pid usage.\n\n[akpm@linux-foundation.org: git-drm went and changed lots of stuff]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bac0abd6174e427404dd197cdbefece31e97329b",
      "tree": "68ed6bd8619552c921c9fb99e83cb04fcb235a39",
      "parents": [
        "19b9b9b54e5f115907efd56be2c3799775a46561"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "Isolate some explicit usage of task-\u003etgid\n\nWith pid namespaces this field is now dangerous to use explicitly, so hide\nit behind the helpers.\n\nAlso the pid and pgrp fields o task_struct and signal_struct are to be\ndeprecated.  Unfortunately this patch cannot be sent right now as this\nleads to tons of warnings, so start isolating them, and deprecate later.\n\nActually the p-\u003etgid \u003d\u003d pid has to be changed to has_group_leader_pid(),\nbut Oleg pointed out that in case of posix cpu timers this is the same, and\nthread_group_leader() is more preferable.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b1915a989ea4d426d0fd98974ab80f30ef1d779",
      "tree": "b643758364628db742c3bdd27d0d36c9a39a95a5",
      "parents": [
        "2e1975868ac9d41211fcaa6f2c5e44c4e7ff9e5b"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Thu Oct 18 23:39:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "mm/oom_kill.c: Use list_for_each_entry instead of list_for_each\n\nmm/oom_kill.c: Convert list_for_each to list_for_each_entry in\noom_kill_process()\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b460cbc581a53cc088ceba80608021dd49c63c43",
      "tree": "83c28d0adbc15f4157c77b40fa60c40a71cb8673",
      "parents": [
        "3743ca05ff464b8a9e345c08a6c9ce30485f9805"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Oct 18 23:39:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: define is_global_init() and is_container_init()\n\nis_init() is an ambiguous name for the pid\u003d\u003d1 check.  Split it into\nis_global_init() and is_container_init().\n\nA cgroup init has it\u0027s tsk-\u003epid \u003d\u003d 1.\n\nA global init also has it\u0027s tsk-\u003epid \u003d\u003d 1 and it\u0027s active pid namespace\nis the init_pid_ns.  But rather than check the active pid namespace,\ncompare the task structure with \u0027init_pid_ns.child_reaper\u0027, which is\ninitialized during boot to the /sbin/init process and never changes.\n\nChangelog:\n\n\t2.6.22-rc4-mm2-pidns1:\n\t- Use \u0027init_pid_ns.child_reaper\u0027 to determine if a given task is the\n\t  global init (/sbin/init) process. This would improve performance\n\t  and remove dependence on the task_pid().\n\n\t2.6.21-mm2-pidns2:\n\n\t- [Sukadev Bhattiprolu] Changed is_container_init() calls in {powerpc,\n\t  ppc,avr32}/traps.c for the _exception() call to is_global_init().\n\t  This way, we kill only the cgroup if the cgroup\u0027s init has a\n\t  bug rather than force a kernel panic.\n\n[akpm@linux-foundation.org: fix comment]\n[sukadev@us.ibm.com: Use is_global_init() in arch/m32r/mm/fault.c]\n[bunk@stusta.de: kernel/pid.c: remove unused exports]\n[sukadev@us.ibm.com: Fix capability.c to work with threaded init]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae74138da609c576b221c765efa8b81b2365f465",
      "tree": "514b8ea20d97815a7dfd5fd9ebcb6377b178f2b0",
      "parents": [
        "9aad369e5690cbd0505f75aa1d34c9cacfef48da"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:26:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "oom: convert zone_scan_lock from mutex to spinlock\n\nThere\u0027s no reason to sleep in try_set_zone_oom() or clear_zonelist_oom() if\nthe lock can\u0027t be acquired; it will be available soon enough once the zonelist\nscanning is done.  All other threads waiting for the OOM killer are also\ncontingent on the exiting task being able to acquire the lock in\nclear_zonelist_oom() so it doesn\u0027t make sense to put it to sleep.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ff566963ce804809af9e32331b287eedeeff501",
      "tree": "dd71c5613b27e8c309d7bbe48798e6cd5c4145cc",
      "parents": [
        "bbe373f2c60b2aa36c3231734a5afc5271a06718"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "oom: do not take callback_mutex\n\nSince no task descriptor\u0027s \u0027cpuset\u0027 field is dereferenced in the execution of\nthe OOM killer anymore, it is no longer necessary to take callback_mutex.\n\n[akpm@linux-foundation.org: restore cpuset_lock for other patches]\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbe373f2c60b2aa36c3231734a5afc5271a06718",
      "tree": "00146d69594672ca41e35be8ff9b349e8751ab5c",
      "parents": [
        "7213f5066fc8a17c78389fe245de522b5cf0648a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "oom: compare cpuset mems_allowed instead of exclusive ancestors\n\nInstead of testing for overlap in the memory nodes of the the nearest\nexclusive ancestor of both current and the candidate task, it is better to\nsimply test for intersection between the task\u0027s mems_allowed in their task\ndescriptors.  This does not require taking callback_mutex since it is only\nused as a hint in the badness scoring.\n\nTasks that do not have an intersection in their mems_allowed with the current\ntask are not explicitly restricted from being OOM killed because it is quite\npossible that the candidate task has allocated memory there before and has\nsince changed its mems_allowed.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7213f5066fc8a17c78389fe245de522b5cf0648a",
      "tree": "76e33ed1e0bfa62cb6c2e05bd4bbf79f37ca4796",
      "parents": [
        "fe071d7e8aae5745c009c808bb8933f22a9e305a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "oom: suppress extraneous stack and memory dump\n\nSuppresses the extraneous stack and memory dump when a parallel OOM killing\nhas been found.  There\u0027s no need to fill the ring buffer with this information\nif its already been printed and the condition that triggered the previous OOM\nkiller has not yet been alleviated.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe071d7e8aae5745c009c808bb8933f22a9e305a",
      "tree": "757dc7c41a7b56974c383743103fb711c976c288",
      "parents": [
        "ff0ceb9deb6eb017f52900b708d49cfa77bf25fb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "oom: add oom_kill_allocating_task sysctl\n\nAdds a new sysctl, \u0027oom_kill_allocating_task\u0027, which will automatically kill\nthe OOM-triggering task instead of scanning through the tasklist to find a\nmemory-hogging target.  This is helpful for systems with an insanely large\nnumber of tasks where scanning the tasklist significantly degrades\nperformance.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "098d7f128a4e53cb64930628915ac767785e0e60",
      "tree": "ed3cab1daecab7f2a64b27deed190df3ec218789",
      "parents": [
        "e815af95f94914993bbad279c71cf5fef9f4eaac"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "oom: add per-zone locking\n\nOOM killer synchronization should be done with zone granularity so that memory\npolicy and cpuset allocations may have their corresponding zones locked and\nallow parallel kills for other OOM conditions that may exist elsewhere in the\nsystem.  DMA allocations can be targeted at the zone level, which would not be\npossible if locking was done in nodes or globally.\n\nSynchronization shall be done with a variation of \"trylocks.\" The goal is to\nput the current task to sleep and restart the failed allocation attempt later\nif the trylock fails.  Otherwise, the OOM killer is invoked.\n\nEach zone in the zonelist that __alloc_pages() was called with is checked for\nthe newly-introduced ZONE_OOM_LOCKED flag.  If any zone has this flag present,\nthe \"trylock\" to serialize the OOM killer fails and returns zero.  Otherwise,\nall the zones have ZONE_OOM_LOCKED set and the try_set_zone_oom() function\nreturns non-zero.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70e24bdf6d2fead14631e72a07fba012400c521e",
      "tree": "2c00056dfdf90f733876c717159bb8bbf9f440fe",
      "parents": [
        "5a3135c2e77fe88cdea20b5e3f4761068b799ac2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "oom: move constraints to enum\n\nThe OOM killer\u0027s CONSTRAINT definitions are really more appropriate in an\nenum, so define them in include/linux/oom.h.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee31af5d649d8aa6ac7948a6d97ae48367ff2d7e",
      "tree": "8a16d8c15b8b56058b905c2b83a3a5f8112746c4",
      "parents": [
        "6eaf806a223e61dc5f2de4ab591f11beb97a8f3b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:25:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:58 2007 -0700"
      },
      "message": "Memoryless nodes: OOM: use N_HIGH_MEMORY map instead of constructing one on the fly\n\nconstrained_alloc() builds its own memory map for nodes with memory.  We have\nthat available in N_HIGH_MEMORY now.  So simplify the code.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nAcked-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Bob Picco \u003cbob.picco@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@skynet.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5e58a61420e99dd08685f622d4dc666bf07e9a5",
      "tree": "e9dfbeac7648a954c927d2461016e8d0d98cca74",
      "parents": [
        "c8ed39ebe0cf490abd7bf7c77b728dd6fefb2cf8"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jul 31 00:37:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:36 2007 -0700"
      },
      "message": "oom: print points as unsigned long\n\nIn badness(), the automatic variable \u0027points\u0027 is unsigned long.  Print it\nas such.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e950f6f0189f65f8bf069cf2272649ef418f5e4",
      "tree": "95710bedf2a5aa3b61002f3399e0950192fdd504",
      "parents": [
        "673d5b43daa00b42759cecc6b0760b8bf6be80d2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jul 30 02:36:13 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 29 17:09:29 2007 -0700"
      },
      "message": "Remove fs.h from mm.h\n\nRemove fs.h from mm.h. For this,\n 1) Uninline vma_wants_writenotify(). It\u0027s pretty huge anyway.\n 2) Add back fs.h or less bloated headers (err.h) to files that need it.\n\nAs result, on x86_64 allyesconfig, fs.h dependencies cut down from 3929 files\nrebuilt down to 3444 (-12.3%).\n\nCross-compile tested without regressions on my two usual configs and (sigh):\n\nalpha              arm-mx1ads        mips-bigsur          powerpc-ebony\nalpha-allnoconfig  arm-neponset      mips-capcella        powerpc-g5\nalpha-defconfig    arm-netwinder     mips-cobalt          powerpc-holly\nalpha-up           arm-netx          mips-db1000          powerpc-iseries\narm                arm-ns9xxx        mips-db1100          powerpc-linkstation\narm-assabet        arm-omap_h2_1610  mips-db1200          powerpc-lite5200\narm-at91rm9200dk   arm-onearm        mips-db1500          powerpc-maple\narm-at91rm9200ek   arm-picotux200    mips-db1550          powerpc-mpc7448_hpc2\narm-at91sam9260ek  arm-pleb          mips-ddb5477         powerpc-mpc8272_ads\narm-at91sam9261ek  arm-pnx4008       mips-decstation      powerpc-mpc8313_rdb\narm-at91sam9263ek  arm-pxa255-idp    mips-e55             powerpc-mpc832x_mds\narm-at91sam9rlek   arm-realview      mips-emma2rh         powerpc-mpc832x_rdb\narm-ateb9200       arm-realview-smp  mips-excite          powerpc-mpc834x_itx\narm-badge4         arm-rpc           mips-fulong          powerpc-mpc834x_itxgp\narm-carmeva        arm-s3c2410       mips-ip22            powerpc-mpc834x_mds\narm-cerfcube       arm-shannon       mips-ip27            powerpc-mpc836x_mds\narm-clps7500       arm-shark         mips-ip32            powerpc-mpc8540_ads\narm-collie         arm-simpad        mips-jazz            powerpc-mpc8544_ds\narm-corgi          arm-spitz         mips-jmr3927         powerpc-mpc8560_ads\narm-csb337         arm-trizeps4      mips-malta           powerpc-mpc8568mds\narm-csb637         arm-versatile     mips-mipssim         powerpc-mpc85xx_cds\narm-ebsa110        i386              mips-mpc30x          powerpc-mpc8641_hpcn\narm-edb7211        i386-allnoconfig  mips-msp71xx         powerpc-mpc866_ads\narm-em_x270        i386-defconfig    mips-ocelot          powerpc-mpc885_ads\narm-ep93xx         i386-up           mips-pb1100          powerpc-pasemi\narm-footbridge     ia64              mips-pb1500          powerpc-pmac32\narm-fortunet       ia64-allnoconfig  mips-pb1550          powerpc-ppc64\narm-h3600          ia64-bigsur       mips-pnx8550-jbs     powerpc-prpmc2800\narm-h7201          ia64-defconfig    mips-pnx8550-stb810  powerpc-ps3\narm-h7202          ia64-gensparse    mips-qemu            powerpc-pseries\narm-hackkit        ia64-sim          mips-rbhma4200       powerpc-up\narm-integrator     ia64-sn2          mips-rbhma4500       s390\narm-iop13xx        ia64-tiger        mips-rm200           s390-allnoconfig\narm-iop32x         ia64-up           mips-sb1250-swarm    s390-defconfig\narm-iop33x         ia64-zx1          mips-sead            s390-up\narm-ixp2000        m68k              mips-tb0219          sparc\narm-ixp23xx        m68k-amiga        mips-tb0226          sparc-allnoconfig\narm-ixp4xx         m68k-apollo       mips-tb0287          sparc-defconfig\narm-jornada720     m68k-atari        mips-workpad         sparc-up\narm-kafa           m68k-bvme6000     mips-wrppmc          sparc64\narm-kb9202         m68k-hp300        mips-yosemite        sparc64-allnoconfig\narm-ks8695         m68k-mac          parisc               sparc64-defconfig\narm-lart           m68k-mvme147      parisc-allnoconfig   sparc64-up\narm-lpd270         m68k-mvme16x      parisc-defconfig     um-x86_64\narm-lpd7a400       m68k-q40          parisc-up            x86_64\narm-lpd7a404       m68k-sun3         powerpc              x86_64-allnoconfig\narm-lubbock        m68k-sun3x        powerpc-cell         x86_64-defconfig\narm-lusl7200       mips              powerpc-celleb       x86_64-up\narm-mainstone      mips-atlas        powerpc-chrp32\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b45ab3398a0ba119b1f672c7c56fd5a431b7f0a",
      "tree": "302238b786d2137111244702345acf6d4a17d4b7",
      "parents": [
        "2b744c01a54fe0c9974ff1b29522f25f07084053"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Sun May 06 14:50:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "oom: fix constraint deadlock\n\nFixes a deadlock in the OOM killer for allocations that are not\n__GFP_HARDWALL.\n\nBefore the OOM killer checks for the allocation constraint, it takes\ncallback_mutex.\n\nconstrained_alloc() iterates through each zone in the allocation zonelist\nand calls cpuset_zone_allowed_softwall() to determine whether an allocation\nfor gfp_mask is possible.  If a zone\u0027s node is not in the OOM-triggering\ntask\u0027s mems_allowed, it is not exiting, and we did not fail on a\n__GFP_HARDWALL allocation, cpuset_zone_allowed_softwall() attempts to take\ncallback_mutex to check the nearest exclusive ancestor of current\u0027s cpuset.\n This results in deadlock.\n\nWe now take callback_mutex after iterating through the zonelist since we\ndon\u0027t need it yet.\n\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Martin J. Bligh \u003cmbligh@mbligh.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b744c01a54fe0c9974ff1b29522f25f07084053",
      "tree": "6f9c7399703ad34ab35f01a55c77a1d34a5c6dc1",
      "parents": [
        "824ebef122153a03925ae0ed211b4e8568d1c8db"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Sun May 06 14:49:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "mm: fix handling of panic_on_oom when cpusets are in use\n\nThe current panic_on_oom may not work if there is a process using\ncpusets/mempolicy, because other nodes\u0027 memory may remain.  But some people\nwant failover by panic ASAP even if they are used.  This patch makes new\nsetting for its request.\n\nThis is tested on my ia64 box which has 3 nodes.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Ethan Solomita \u003csolo@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a82782f8f58219d0c6dc5f0211ce301adf6c6f4",
      "tree": "0caef745a8ef3f96b3e2444d00a5180669e5c469",
      "parents": [
        "3d67f2d7c0fb28b0eb6a6aa100b190526a971ad9"
      ],
      "author": {
        "name": "Joshua N Pritikin",
        "email": "jpritikin@pobox.com",
        "time": "Sun May 06 14:49:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "allow oom_adj of saintly processes\n\nIf the badness of a process is zero then oom_adj\u003e0 has no effect.  This\npatch makes sure that the oom_adj shift actually increases badness points\nappropriately.\n\nSigned-off-by: Joshua N. Pritikin \u003cjpritikin@pobox.com\u003e\nCc: Andrea Arcangeli \u003candrea@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d124cbba316737af8f3a6959edb95bbd130a4d8",
      "tree": "273350d3ce14b1252ff79fd24efa43f39161a200",
      "parents": [
        "fdc30b3d448bf86dd45f9df3e8ac0d36a3bdd9b2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Apr 23 14:41:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Apr 24 08:23:07 2007 -0700"
      },
      "message": "fix OOM killing processes wrongly thought MPOL_BIND\n\nI only have CONFIG_NUMA\u003dy for build testing: surprised when trying a memhog\nto see lots of other processes killed with \"No available memory\n(MPOL_BIND)\".  memhog is killed correctly once we initialize nodemask in\nconstrained_alloc().\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: William Irwin \u003cbill.irwin@oracle.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "650a7c974f1b91de9732c0f720e792837f8abfd6",
      "tree": "c1f3b166e7128a4b0c35a4f900ad5cd6c959b4a2",
      "parents": [
        "c445a31cd7f469d77acc37538ab43a99530968b8"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Apr 23 21:36:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Apr 24 08:11:49 2007 -0700"
      },
      "message": "oom: kill all threads that share mm with killed task\n\noom_kill_task() calls __oom_kill_task() to OOM kill a selected task.\nWhen finding other threads that share an mm with that task, we need to\nkill those individual threads and not the same one.\n\n(Bug introduced by f2a2a7108aa0039ba7a5fe7a0d2ecef2219a7584)\n\nAcked-by: William Irwin \u003cbill.irwin@oracle.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35ae834fa02ba89cfbd4a80892c0e458fd6d5c0b",
      "tree": "37be7d571b1d6b4141f42dcd05a0289df1811d0a",
      "parents": [
        "e5d480ff17f9220cd6198b5c91e8c75329f5594f"
      ],
      "author": {
        "name": "Ankita Garg",
        "email": "ankita@in.ibm.com",
        "time": "Fri Mar 16 13:38:33 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:06 2007 -0700"
      },
      "message": "[PATCH] oom fix: prevent oom from killing a process with children/sibling unkillable\n\nLooking at oom_kill.c, found that the intention to not kill the selected\nprocess if any of its children/siblings has OOM_DISABLE set, is not being\nmet.\n\nSigned-off-by: Ankita Garg \u003cankita@in.ibm.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ba3485947ee7bc89a17f86250fe9b692a615dff",
      "tree": "77fce78136f040d9382f1b27687478bbcbec051a",
      "parents": [
        "c8af57eb76fbd70c7f5b421b065fd55d096e2bff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Fri Jan 05 16:37:03 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:29 2007 -0800"
      },
      "message": "[PATCH] fix OOM killing of swapoff\n\nThese days, if you swapoff when there isn\u0027t enough memory, OOM killer gives\n\"BUG: scheduling while atomic\" and the machine hangs: badness() needs to do\nits PF_SWAPOFF return after the task_unlock (tasklist_lock is also held\nhere, so p isn\u0027t going to be freed: PF_SWAPOFF might get turned off at any\nmoment, but that doesn\u0027t really matter).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "96ac5913f4e45c6a1b98350f2c0a8bb3abe2646a",
      "tree": "eb7f85431598ebf035e8b190d253e1b160694596",
      "parents": [
        "e4e6bdbb426d1ecd9e4587f22115f8d0d426d21f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Dec 29 16:47:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:55:55 2006 -0800"
      },
      "message": "[PATCH] fix oom killer kills current every time if there is memory-less-node take2\n\nconstrained_alloc(), which is called to detect where oom is from, checks\npassed zone_list().  If zone_list doesn\u0027t include all nodes, it thinks oom\nis from mempolicy.\n\nBut there is memory-less-node.  memory-less-node\u0027s zones are never included\nin zonelist[].\n\ncontstrained_alloc() should get memory_less_node into count.  Otherwise, it\nalways thinks \u0027oom is from mempolicy\u0027.  This means that current process\ndies at any time.  This patch fix it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02a0e53d8227aff5e62e0433f82c12c1c2805fd6",
      "tree": "fe32435308e5f1afe8bd12357bd8c5ff3b4133c7",
      "parents": [
        "55935a34a428a1497e3b37982e2782c09c6f914d"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Dec 13 00:34:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] cpuset: rework cpuset_zone_allowed api\n\nElaborate the API for calling cpuset_zone_allowed(), so that users have to\nexplicitly choose between the two variants:\n\n  cpuset_zone_allowed_hardwall()\n  cpuset_zone_allowed_softwall()\n\nUntil now, whether or not you got the hardwall flavor depended solely on\nwhether or not you or\u0027d in the __GFP_HARDWALL gfp flag to the gfp_mask\nargument.\n\nIf you didn\u0027t specify __GFP_HARDWALL, you implicitly got the softwall\nversion.\n\nUnfortunately, this meant that users would end up with the softwall version\nwithout thinking about it.  Since only the softwall version might sleep,\nthis led to bugs with possible sleeping in interrupt context on more than\none occassion.\n\nThe hardwall version requires that the current tasks mems_allowed allows\nthe node of the specified zone (or that you\u0027re in interrupt or that\n__GFP_THISNODE is set or that you\u0027re on a one cpuset system.)\n\nThe softwall version, depending on the gfp_mask, might allow a node if it\nwas allowed in the nearest enclusing cpuset marked mem_exclusive (which\nrequires taking the cpuset lock \u0027callback_mutex\u0027 to evaluate.)\n\nThis patch removes the cpuset_zone_allowed() call, and forces the caller to\nexplicitly choose between the hardwall and the softwall case.\n\nIf the caller wants the gfp_mask to determine this choice, they should (1)\nbe sure they can sleep or that __GFP_HARDWALL is set, and (2) invoke the\ncpuset_zone_allowed_softwall() routine.\n\nThis adds another 100 or 200 bytes to the kernel text space, due to the few\nlines of nearly duplicate code at the top of both cpuset_zone_allowed_*\nroutines.  It should save a few instructions executed for the calls that\nturned into calls of cpuset_zone_allowed_hardwall, thanks to not having to\nset (before the call) then check (within the call) the __GFP_HARDWALL flag.\n\nFor the most critical call, from get_page_from_freelist(), the same\ninstructions are executed as before -- the old cpuset_zone_allowed()\nroutine it used to call is the same code as the\ncpuset_zone_allowed_softwall() routine that it calls now.\n\nNot a perfect win, but seems worth it, to reduce this chance of hitting a\nsleeping with irq off complaint again.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2a2a7108aa0039ba7a5fe7a0d2ecef2219a7584",
      "tree": "a82338b774d680ca410830e94c1125fa3b9b693d",
      "parents": [
        "f3af38d30c18538d069a95e624a3db7c3d486a1e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Dec 06 20:31:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:20 2006 -0800"
      },
      "message": "[PATCH] oom: less memdie\n\nDon\u0027t cause all threads in all other thread groups to gain TIF_MEMDIE\notherwise we\u0027ll get a thundering herd eating our memory reserve.  This may not\nbe the optimal scheme, but it fits our policy of allowing just one TIF_MEMDIE\nin the system at once.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3af38d30c18538d069a95e624a3db7c3d486a1e",
      "tree": "549bb2246a2932727285f962f405d6e0c49ecdf8",
      "parents": [
        "c33e0fca3508f0aa387b1c10d0ef158102deb140"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Dec 06 20:31:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:20 2006 -0800"
      },
      "message": "[PATCH] oom: cleanup messages\n\nClean up the OOM killer messages to be more consistent.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c33e0fca3508f0aa387b1c10d0ef158102deb140",
      "tree": "d4dbbddbcd7cdf605dc5c0c97088789c7e10f4b4",
      "parents": [
        "7253f4ef04b1cd138baf2b29a95473743ac0a307"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Dec 06 20:31:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:20 2006 -0800"
      },
      "message": "[PATCH] oom: don\u0027t kill unkillable children or siblings\n\nAbort the kill if any of our threads have OOM_DISABLE set.  Having this\ntest here also prevents any OOM_DISABLE child of the \"selected\" process\nfrom being killed.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ac773b4f73afa6fd66695131103944b975d5d5c",
      "tree": "7a3ea0d703cde009c5f2e1196d80f06cf5d00d54",
      "parents": [
        "887b95931b4072e60e3bf4253ff7bffe372bca46"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 19 23:28:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:38 2006 -0700"
      },
      "message": "[PATCH] OOM killer meets userspace headers\n\nDespite mm.h is not being exported header, it does contain one thing\nwhich is part of userspace ABI -- value disabling OOM killer for given\nprocess. So,\na) create and export include/linux/oom.h\nb) move OOM_DISABLE define there.\nc) turn bounding values of /proc/$PID/oom_adj into defines and export\n   them too.\n\nNote: mass __KERNEL__ removal will be done later.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b78483a4ba60d5d90930262a533a784e1d9df660",
      "tree": "0b2cb0f3cf2852bf4138c13179221e58a37f402a",
      "parents": [
        "01017a227044d64face2588fab9427a1da1bdb9f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Sep 29 02:01:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] oom: don\u0027t kill current when another OOM in progress\n\nA previous patch to allow an exiting task to OOM kill itself (and thereby\navoid a little deadlock) introduced a problem.  We don\u0027t want the\nPF_EXITING task, even if it is \u0027current\u0027, to access mem reserves if there\nis already a TIF_MEMDIE process in the system sucking up reserves.\n\nAlso make the commenting a little bit clearer, and note that our current\nscheme of effectively single threading the OOM killer is not itself\nperfect.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01017a227044d64face2588fab9427a1da1bdb9f",
      "tree": "b1f369a8d20aff94447ac6acd18bbb23d268b443",
      "parents": [
        "972c4ea59c9dbf82647ee9665d9e945241911a51"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] oom_kill_task(): cleanup -\u003emm checks\n\n- It is not possible to have task-\u003emm \u003d\u003d \u0026init_mm.\n\n- task_lock() buys nothing for \u0027if (!p-\u003emm)\u0027 check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "972c4ea59c9dbf82647ee9665d9e945241911a51",
      "tree": "11f084b503b2b539e0dba3c18e69ccdf7d722052",
      "parents": [
        "28324d1df646521256e83389244adcce98e89ff2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] select_bad_process(): cleanup \u0027releasing\u0027 check\n\nNo logic changes, but imho easier to read.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28324d1df646521256e83389244adcce98e89ff2",
      "tree": "aaa81642185611b4996daeba7d65e6b3c3eb05a7",
      "parents": [
        "c394cc9fbb367f87faa2228ec2eabacd2d4701c6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] select_bad_process(): kill a bogus PF_DEAD/TASK_DEAD check\n\nThe only one usage of TASK_DEAD outside of last schedule path,\n\nselect_bad_process:\n\n\tfor_each_task(p) {\n\n\t\tif (!p-\u003emm)\n\t\t\tcontinue;\n\t\t...\n\t\t\tif (p-\u003estate \u003d\u003d TASK_DEAD)\n\t\t\t\tcontinue;\n\t\t...\n\nTASK_DEAD state is set at the end of do_exit(), this means that p-\u003emm\nwas already set \u003d\u003d NULL by exit_mm(), so this task was already rejected\nby \u0027if (!p-\u003emm)\u0027 above.\n\nNote also that the caller holds tasklist_lock, this means that p can\u0027t\npass exit_notify() and then set TASK_DEAD when p-\u003emm !\u003d NULL.\n\nAlso, remove open-coded is_init().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c394cc9fbb367f87faa2228ec2eabacd2d4701c6",
      "tree": "2177214ac92b3a7ac21cb2632786c9de728c3868",
      "parents": [
        "55a101f8f71a3d3dbda7b5c77083ffe47552f831"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] introduce TASK_DEAD state\n\nI am not sure about this patch, I am asking Ingo to take a decision.\n\ntask_struct-\u003estate \u003d\u003d EXIT_DEAD is a very special case, to avoid a confusion\nit makes sense to introduce a new state, TASK_DEAD, while EXIT_DEAD should\nlive only in -\u003eexit_state as documented in sched.h.\n\nNote that this state is not visible to user-space, get_task_state() masks off\nunsuitable states.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55a101f8f71a3d3dbda7b5c77083ffe47552f831",
      "tree": "52706df201efd82d09bed39562502b4caa357af4",
      "parents": [
        "29b884921634e1e01cbd276e1c9b8fc07a7e4a90"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:20 2006 -0700"
      },
      "message": "[PATCH] kill PF_DEAD flag\n\nAfter the previous change (-\u003eflags \u0026 PF_DEAD) \u003c\u003d\u003e (-\u003estate \u003d\u003d EXIT_DEAD), we\ndon\u0027t need PF_DEAD any longer.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f400e198b2ed26ce55b22a1412ded0896e7516ac",
      "tree": "a3d78bfc1c20635e199fe0fe85aaa1d8792acc58",
      "parents": [
        "959ed340f4867fda7684340625f60e211c2296d6"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Fri Sep 29 02:00:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:12 2006 -0700"
      },
      "message": "[PATCH] pidspace: is_init()\n\nThis is an updated version of Eric Biederman\u0027s is_init() patch.\n(http://lkml.org/lkml/2006/2/6/280).  It applies cleanly to 2.6.18-rc3 and\nreplaces a few more instances of -\u003epid \u003d\u003d 1 with is_init().\n\nFurther, is_init() checks pid and thus removes dependency on Eric\u0027s other\npatches for now.\n\nEric\u0027s original description:\n\n\tThere are a lot of places in the kernel where we test for init\n\tbecause we give it special properties.  Most  significantly init\n\tmust not die.  This results in code all over the kernel test\n\t-\u003epid \u003d\u003d 1.\n\n\tIntroduce is_init to capture this case.\n\n\tWith multiple pid spaces for all of the cases affected we are\n\tlooking for only the first process on the system, not some other\n\tprocess that has pid \u003d\u003d 1.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \u003clxc-devel@lists.sourceforge.net\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89fa30242facca249aead2aac03c4c69764f911c",
      "tree": "1ac46b4777b819f2a4793d8e37330576ae5089ec",
      "parents": [
        "4415cc8df630b05d3a54267d5f3e5c0b63a4ec05"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:52 2006 -0700"
      },
      "message": "[PATCH] NUMA: Add zone_to_nid function\n\nThere are many places where we need to determine the node of a zone.\nCurrently we use a difficult to read sequence of pointer dereferencing.\nPut that into an inline function and use throughout VM.  Maybe we can find\na way to optimize the lookup in the future.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5a291b98b2116d669449885abef3000f747504b3",
      "tree": "25b2c9a9e989bea0a860ae13dffbe0e3a243012b",
      "parents": [
        "83e33a4711760469f5c3861b8ffea4947656d4eb"
      ],
      "author": {
        "name": "Ram Gupta",
        "email": "ram.gupta5@gmail.com",
        "time": "Mon Sep 25 23:31:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:52 2006 -0700"
      },
      "message": "[PATCH] oom-kill: update comments to reflect current code\n\nUpdate the comments for __oom_kill_task() to reflect the code changes.\n\nSigned-off-by: Ram Gupta \u003cr.gupta@astronautics.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b72f160443cb78b2f8addae6e331d2adaa70f869",
      "tree": "3321d797b286aba5f16f83db07d0d3fe93993e73",
      "parents": [
        "5081dde33f7a61d28d9b185cc386f12cb837c7a4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] oom: more printk\n\nPrint the name of the task invoking the OOM killer.  Could make debugging\neasier.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5081dde33f7a61d28d9b185cc386f12cb837c7a4",
      "tree": "d2e6f39db4005229580f571137a833c1dabfc38b",
      "parents": [
        "af5b912435de32fbede08cee949429823ed49781"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] oom: kthread infinite loop fix\n\nSkip kernel threads, rather than having them return 0 from badness.\nTheoretically, badness might truncate all results to 0, thus a kernel thread\nmight be picked first, causing an infinite loop.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "af5b912435de32fbede08cee949429823ed49781",
      "tree": "ea1de1a800c6fc60537912d4dad35a3cf211c86e",
      "parents": [
        "4a3ede107e422a0c53d28024b0aa902ca22a8768"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] oom: swapoff tasks tweak\n\nPF_SWAPOFF processes currently cause select_bad_process to return straight\naway.  Instead, give them high priority, so we will kill them first, however\nwe also first ensure no parallel OOM kills are happening at the same time.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a3ede107e422a0c53d28024b0aa902ca22a8768",
      "tree": "39f687cc0470cea45ed1387ebc16fee7d6066485",
      "parents": [
        "50ec3bbffbe8a96347c54832d48110a5bc9e9ff8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: handle oom_disable exiting\n\nHaving the oomkilladj \u003d\u003d OOM_DISABLE check before the releasing check means\nthat oomkilladj \u003d\u003d OOM_DISABLE tasks exiting will not stop the OOM killer.\n\nMoving the test down will give the desired behaviour.  Also: it will allow\nthem to \"OOM-kill\" themselves if they are exiting.  As per the previous patch,\nthis is required to prevent OOM killer deadlocks (and they don\u0027t actually get\nkilled, because they\u0027re already exiting -- they\u0027re simply allowed access to\nmemory reserves).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "50ec3bbffbe8a96347c54832d48110a5bc9e9ff8",
      "tree": "3941902b1c68525472ea3a502e76faa7fe675cd1",
      "parents": [
        "7887a3da753e1ba8244556cc9a2b38c815bfe256"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: handle current exiting\n\nIf current *is* exiting, it should actually be allowed to access reserved\nmemory rather than OOM kill something else.  Can\u0027t do this via a straight\ncheck in page_alloc.c because that would allow multiple tasks to use up\nreserves.  Instead cause current to OOM-kill itself which will mark it as\nTIF_MEMDIE.\n\nThe current procedure of simply aborting the OOM-kill if a task is exiting can\nlead to OOM deadlocks.\n\nIn the case of killing a PF_EXITING task, don\u0027t make a lot of noise about it.\nThis becomes more important in future patches, where we can \"kill\" OOM_DISABLE\ntasks.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7887a3da753e1ba8244556cc9a2b38c815bfe256",
      "tree": "f3563927615c6b9c260f7ca84567c7bca2dac91f",
      "parents": [
        "4ff1ffb4870b007b86f21e5f27eeb11498c4c077"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: cpuset hint\n\ncpuset_excl_nodes_overlap does not always indicate that killing a task will\nnot free any memory we for us.  For example, we may be asking for an\nallocation from _anywhere_ in the machine, or the task in question may be\npinning memory that is outside its cpuset.  Fix this by just causing\ncpuset_excl_nodes_overlap to reduce the badness rather than disallow it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8bc719d3cab8414938f9ea6e33b58d8810d18068",
      "tree": "1afd4ce7865466bf9578ca746c63c1d351f07cdc",
      "parents": [
        "19655d3487001d7df0e10e9cbfc27c758b77c2b5"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Sep 25 23:31:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] out of memory notifier\n\nAdd a notifer chain to the out of memory killer.  If one of the registered\ncallbacks could release some memory, do not kill the process but return and\nretry the allocation that forced the oom killer to run.\n\nThe purpose of the notifier is to add a safety net in the presence of\nmemory ballooners.  If the resource manager inflated the balloon to a size\nwhere memory allocations can not be satisfied anymore, it is better to\ndeflate the balloon a bit instead of killing processes.\n\nThe implementation for the s390 ballooner is included.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36c8b586896f60cb91a4fd526233190b34316baf",
      "tree": "003246e1e676de33703daa979b3e3109ca202a89",
      "parents": [
        "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, remove task_t, convert to struct task_struct\n\ncleanup: remove task_t and convert all the uses to struct task_struct. I\nintroduced it for the scheduler anno and it was a mistake.\n\nConversion was mostly scripted, the result was reviewed and all\nsecondary whitespace and style impact (if any) was fixed up by hand.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6937a25cff818d32d0f9ff58a518c9ab96760aeb",
      "tree": "233fd6927556b83818cdb31c1656b1066643d8dc",
      "parents": [
        "fadd8fbd153c12963f8fe3c9ef7f8967f286f98b"
      ],
      "author": {
        "name": "Dave Peterson",
        "email": "dsp@llnl.gov",
        "time": "Fri Jun 23 02:03:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:47 2006 -0700"
      },
      "message": "[PATCH] mm: fix typos in comments in mm/oom_kill.c\n\nThis fixes a few typos in the comments in mm/oom_kill.c.\n\nSigned-off-by: David S. Peterson \u003cdsp@llnl.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fadd8fbd153c12963f8fe3c9ef7f8967f286f98b",
      "tree": "547cdee6203b769773521118a4dd19e95a7ef3fd",
      "parents": [
        "67de648211fa041fe08a0c25241a4980bbb90698"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:47 2006 -0700"
      },
      "message": "[PATCH] support for panic at OOM\n\nThis patch adds panic_on_oom sysctl under sys.vm.\n\nWhen sysctl vm.panic_on_oom \u003d 1, the kernel panics intead of killing rogue\nprocesses.  And if vm.panic_on_oom is 0 the kernel will do oom_kill() in\nthe same way as it does today.  Of course, the default value is 0 and only\nroot can modifies it.\n\nIn general, oom_killer works well and kill rogue processes.  So the whole\nsystem can survive.  But there are environments where panic is preferable\nrather than kill some processes.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "013159227b840dfd441bd2e4c8b4d77ffb3cc42e",
      "tree": "15bd8349b4a105efc75c77dcd0c1a579ecd87ab4",
      "parents": [
        "97c2c9b84d0c1edf4926b13661d5af3f0edccbce"
      ],
      "author": {
        "name": "Dave Peterson",
        "email": "dsp@llnl.gov",
        "time": "Tue Apr 18 22:20:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:50 2006 -0700"
      },
      "message": "[PATCH] mm: fix mm_struct reference counting bugs in mm/oom_kill.c\n\nFix oom_kill_task() so it doesn\u0027t call mmput() (which may sleep) while\nholding tasklist_lock.\n\nSigned-off-by: David S. Peterson \u003cdsp@llnl.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97c2c9b84d0c1edf4926b13661d5af3f0edccbce",
      "tree": "bc986808cd7b5a8219a0c40ca9fdfc40524883e4",
      "parents": [
        "75129e297e861e6c61038aa4cdbf604b022de4ff"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Apr 18 22:20:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:49 2006 -0700"
      },
      "message": "[PATCH] oom-kill: mm locking fix\n\nDave Peterson \u003cdsp@llnl.gov\u003e points out that badness() is playing with\nmm_structs without taking a reference on them.\n\nmmput() can sleep, so taking a reference here (inside tasklist_lock) is\nhard.  Fix it up via task_lock() instead.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "140ffcec4def3ee3af7565b2cf1d3b2580f7e180",
      "tree": "466da398c345f5b6f2760c124beec84403b35655",
      "parents": [
        "b1e2d907cb748ef40b180184f36e594d35f12ba6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Mar 02 02:54:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 02 08:33:07 2006 -0800"
      },
      "message": "[PATCH] out_of_memory() locking fix\n\nI seem to have lost this read_unlock().\n\nWhile we\u0027re there, let\u0027s turn that interruptible sleep unto uninterruptible,\nso we don\u0027t get a busywait if signal_pending().  (Again.  We seem to have a\nhabit of doing this).\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6713e046336ffa98060418c4d2c65243639e107",
      "tree": "3c076173875f22069a2e08fb127b4be11d670cb1",
      "parents": [
        "0551fbd29e16fccd46e41b7d01bf0f8f39b14212"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Feb 28 16:59:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:44 2006 -0800"
      },
      "message": "[PATCH] out_of_memory(): use of uninitialised\n\nUnder some circumstances `points\u0027 can get printed before it\u0027s initialised.\nSpotted by Carlos Martin \u003ccarlos@cmartin.tk\u003e.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b0f8b040acd8dfd23860754c0d09ff4f44e2cbc",
      "tree": "33c69908705c88b86f14d9e835b6dee6a9c3a31b",
      "parents": [
        "9827b781f20828e5ceb911b879f268f78fe90815"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Mon Feb 20 18:27:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:09 2006 -0800"
      },
      "message": "[PATCH] Terminate process that fails on a constrained allocation\n\nSome allocations are restricted to a limited set of nodes (due to memory\npolicies or cpuset constraints).  If the page allocator is not able to find\nenough memory then that does not mean that overall system memory is low.\n\nIn particular going postal and more or less randomly shooting at processes\nis not likely going to help the situation but may just lead to suicide (the\nwhole system coming down).\n\nIt is better to signal to the process that no memory exists given the\nconstraints that the process (or the configuration of the process) has\nplaced on the allocation behavior.  The process may be killed but then the\nsysadmin or developer can investigate the situation.  The solution is\nsimilar to what we do when running out of hugepages.\n\nThis patch adds a check before we kill processes.  At that point\nperformance considerations do not matter much so we just scan the zonelist\nand reconstruct a list of nodes.  If the list of nodes does not contain all\nonline nodes then this is a constrained allocation and we should kill the\ncurrent process.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9827b781f20828e5ceb911b879f268f78fe90815",
      "tree": "9ba223facf6071a1fd21bf8471801ab794738c05",
      "parents": [
        "bd71c2b17468a2531fb4c81ec1d73520845e97e1"
      ],
      "author": {
        "name": "Kurt Garloff",
        "email": "garloff@suse.de",
        "time": "Mon Feb 20 18:27:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:09 2006 -0800"
      },
      "message": "[PATCH] OOM kill: children accounting\n\nIn the badness() calculation, there\u0027s currently this piece of code:\n\n        /*\n         * Processes which fork a lot of child processes are likely\n         * a good choice. We add the vmsize of the children if they\n         * have an own mm. This prevents forking servers to flood the\n         * machine with an endless amount of children\n         */\n        list_for_each(tsk, \u0026p-\u003echildren) {\n                struct task_struct *chld;\n                chld \u003d list_entry(tsk, struct task_struct, sibling);\n                if (chld-\u003emm \u003d p-\u003emm \u0026\u0026 chld-\u003emm)\n                        points +\u003d chld-\u003emm-\u003etotal_vm;\n        }\n\nThe intention is clear: If some server (apache) keeps spawning new children\nand we run OOM, we want to kill the father rather than picking a child.\n\nThis -- to some degree -- also helps a bit with getting fork bombs under\ncontrol, though I\u0027d consider this a desirable side-effect rather than a\nfeature.\n\nThere\u0027s one problem with this: No matter how many or few children there are,\nif just one of them misbehaves, and all others (including the father) do\neverything right, we still always kill the whole family.  This hits in real\nlife; whether it\u0027s javascript in konqueror resulting in kdeinit (and thus the\nwhole KDE session) being hit or just a classical server that spawns children.\n\nSidenote: The killer does kill all direct children as well, not only the\nselected father, see oom_kill_process().\n\nThe idea in attached patch is that we do want to account the memory\nconsumption of the (direct) children to the father -- however not fully.\nThis maintains the property that fathers with too many children will still\nvery likely be picked, whereas a single misbehaving child has the chance to\nbe picked by the OOM killer.\n\nIn the patch I account only half (rounded up) of the children\u0027s vm_size to\nthe parent.  This means that if one child eats more mem than the rest of\nthe family, it will be picked, otherwise it\u0027s still the father and thus the\nwhole family that gets selected.\n\nThis is heuristics -- we could debate whether accounting for a fourth would\nbe better than for half of it.  Or -- if people would consider it worth the\ntrouble -- make it a sysctl.  For now I sticked to accounting for half,\nwhich should IMHO be a significant improvement.\n\nThe patch does one more thing: As users tend to be irritated by the choice\nof killed processes (mainly because the children are killed first, despite\nsome of them having a very low OOM score), I added some more output: The\nselected (father) process will be reported first and it\u0027s oom_score printed\nto syslog.\n\nDescription:\n\nOnly account for half of children\u0027s vm size in oom score calculation\n\nThis should still give the parent enough point in case of fork bombs.  If\nany child however has more than 50% of the vm size of all children\ntogether, it\u0027ll get a higher score and be elected.\n\nThis patch also makes the kernel display the oom_score.\n\nSigned-off-by: Kurt Garloff \u003cgarloff@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b958f7d9f35bfb61625f201cd92a3fc39504af7a",
      "tree": "57668e6d26da9a66c98e5b0f0b1f85903cede63f",
      "parents": [
        "343e0d7a93951e35065fdb5e3dd61aece0ec6b3c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Feb 01 03:05:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] dump_stack() in oom handler\n\nSometimes it\u0027s nice to know who\u0027s calling.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "505970b96e3b7d22177c38e03435a68376628e7a",
      "tree": "5508317e391961355bf3d946a6aac05bb21569eb",
      "parents": [
        "ed68cb3676bb179768529aeb808403d57295af56"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat Jan 14 13:21:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:10 2006 -0800"
      },
      "message": "[PATCH] cpuset oom lock fix\n\nThe problem, reported in:\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d5859\n\nand by various other email messages and lkml posts is that the cpuset hook\nin the oom (out of memory) code can try to take a cpuset semaphore while\nholding the tasklist_lock (a spinlock).\n\nOne must not sleep while holding a spinlock.\n\nThe fix seems easy enough - move the cpuset semaphore region outside the\ntasklist_lock region.\n\nThis required a few lines of mechanism to implement.  The oom code where\nthe locking needs to be changed does not have access to the cpuset locks,\nwhich are internal to kernel/cpuset.c only.  So I provided a couple more\ncpuset interface routines, available to the rest of the kernel, which\nsimple take and drop the lock needed here (cpusets callback_sem).\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2f659f462d2ab519068d0e2bb677d7a700decb8d",
      "tree": "de65a0b6151880ef5d0b06efd949e32629a2dfd5",
      "parents": [
        "6ce3c4c0ff62ca6391019b7832fb41a7f28b9e26"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Sun Jan 08 01:01:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:45 2006 -0800"
      },
      "message": "[PATCH] Optimise oom kill of current task\n\nWhen oom_killer kills current there\u0027s no need to call\nschedule_timeout_interruptible() since task must die ASAP.\n\nSigned-Off-By: Pavel Emelianov \u003cxemul@sw.ru\u003e\nSigned-Off-By: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13e4b57f6a4e23ceb99794a650d777e74831f4a6",
      "tree": "a585fdc3a2374dbedcf0114fa3c38d2fb7920774",
      "parents": [
        "75bcc8c5e1de78616b04ef9f317a293a7c1c163c"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:37 2005 -0700"
      },
      "message": "[PATCH] mm: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ef08e3b4981aebf2ba9bd7025ef7210e8eec07ce",
      "tree": "3b5386e011c87dde384115c8eb0d6961c2536025",
      "parents": [
        "9bf2229f8817677127a60c177aefce1badd22d7b"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Sep 06 15:18:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:40 2005 -0700"
      },
      "message": "[PATCH] cpusets: confine oom_killer to mem_exclusive cpuset\n\nNow the real motivation for this cpuset mem_exclusive patch series seems\ntrivial.\n\nThis patch keeps a task in or under one mem_exclusive cpuset from provoking an\noom kill of a task under a non-overlapping mem_exclusive cpuset.  Since only\ninterrupt and GFP_ATOMIC allocations are allowed to escape mem_exclusive\ncontainment, there is little to gain from oom killing a task under a\nnon-overlapping mem_exclusive cpuset, as almost all kernel and user memory\nallocation must come from disjoint memory nodes.\n\nThis patch enables configuring a system so that a runaway job under one\nmem_exclusive cpuset cannot cause the killing of a job in another such cpuset\nthat might be using very high compute and memory resources for a prolonged\ntime.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a49335cceab8afb6603152fcc3f7d3b6677366ca",
      "tree": "83f8c06d781a6de77f0b34ec14577bba1e410ac6",
      "parents": [
        "f68f447e8389de9a62e3e80c3c5823cce484c2e5"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Sep 06 15:18:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:39 2005 -0700"
      },
      "message": "[PATCH] cpusets: oom_kill tweaks\n\nThis patch series extends the use of the cpuset attribute \u0027mem_exclusive\u0027\nto support cpuset configurations that:\n 1) allow GFP_KERNEL allocations to come from a potentially larger\n    set of memory nodes than GFP_USER allocations, and\n 2) can constrain the oom killer to tasks running in cpusets in\n    a specified subtree of the cpuset hierarchy.\n\nHere\u0027s an example usage scenario.  For a few hours or more, a large NUMA\nsystem at a University is to be divided in two halves, with a bunch of student\njobs running in half the system under some form of batch manager, and with a\nbig research project running in the other half.  Each of the student jobs is\nplaced in a small cpuset, but should share the classic Unix time share\nfacilities, such as buffered pages of files in /bin and /usr/lib.  The big\nresearch project wants no interference whatsoever from the student jobs, and\nhas highly tuned, unusual memory and i/o patterns that intend to make full use\nof all the main memory on the nodes available to it.\n\nIn this example, we have two big sibling cpusets, one of which is further\ndivided into a more dynamic set of child cpusets.\n\nWe want kernel memory allocations constrained by the two big cpusets, and user\nallocations constrained by the smaller child cpusets where present.  And we\nrequire that the oom killer not operate across the two halves of this system,\nor else the first time a student job runs amuck, the big research project will\nlikely be first inline to get shot.\n\nTweaking /proc/\u003cpid\u003e/oom_adj is not ideal -- if the big research project\nreally does run amuck allocating memory, it should be shot, not some other\ntask outside the research projects mem_exclusive cpuset.\n\nI propose to extend the use of the \u0027mem_exclusive\u0027 flag of cpusets to manage\nsuch scenarios.  Let memory allocations for user space (GFP_USER) be\nconstrained by a tasks current cpuset, but memory allocations for kernel space\n(GFP_KERNEL) by constrained by the nearest mem_exclusive ancestor of the\ncurrent cpuset, even though kernel space allocations will still _prefer_ to\nremain within the current tasks cpuset, if memory is easily available.\n\nLet the oom killer be constrained to consider only tasks that are in\noverlapping mem_exclusive cpusets (it won\u0027t help much to kill a task that\nnormally cannot allocate memory on any of the same nodes as the ones on which\nthe current task can allocate.)\n\nThe current constraints imposed on setting mem_exclusive are unchanged.  A\ncpuset may only be mem_exclusive if its parent is also mem_exclusive, and a\nmem_exclusive cpuset may not overlap any of its siblings memory nodes.\n\nThis patch was presented on linux-mm in early July 2005, though did not\ngenerate much feedback at that time.  It has been built for a variety of\narch\u0027s using cross tools, and built, booted and tested for function on SN2\n(ia64).\n\nThere are 4 patches in this set:\n  1) Some minor cleanup, and some improvements to the code layout\n     of one routine to make subsequent patches cleaner.\n  2) Add another GFP flag - __GFP_HARDWALL.  It marks memory\n     requests for USER space, which are tightly confined by the\n     current tasks cpuset.\n  3) Now memory requests (such as KERNEL) that not marked HARDWALL can\n     if short on memory, look in the potentially larger pool of memory\n     defined by the nearest mem_exclusive ancestor cpuset of the current\n     tasks cpuset.\n  4) Finally, modify the oom killer to skip any task whose mem_exclusive\n     cpuset doesn\u0027t overlap ours.\n\nPatch (1), the one time I looked on an SN2 (ia64) build, actually saved 32\nbytes of kernel text space.  Patch (2) has no affect on the size of kernel\ntext space (it just adds a preprocessor flag).  Patches (3) and (4) added\nabout 600 bytes each of kernel text space, mostly in kernel/cpuset.c, which\nmatters only if CONFIG_CPUSET is enabled.\n\nThis patch:\n\nThis patch applies a few comment and code cleanups to mm/oom_kill.c prior to\napplying a few small patches to improve cpuset management of memory placement.\n\nThe comment changed in oom_kill.c was seriously misleading.  The code layout\nchange in select_bad_process() makes room for adding another condition on\nwhich a process can be spared the oom killer (see the subsequent\ncpuset_nodes_overlap patch for this addition).\n\nAlso a couple typos and spellos that bugged me, while I was here.\n\nThis patch should have no material affect.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "42639269f9ce4aac2e6c20bcbca30b5da8b9a899",
      "tree": "1583ac4da9d2e40669d4579e338d8e506dedba5a",
      "parents": [
        "37b173a4d03d1681e6c9529bc43d7a3308132db6"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Thu Jul 07 17:56:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:36 2005 -0700"
      },
      "message": "[PATCH] mm: quieten OOM killer noise\n\nWe now print statistics when invoking the OOM killer, however this\ninformation is not rate limited and you can get into situations where the\nconsole is continually spammed.\n\nFor example, when a task is exiting the OOM killer will simply return\n(waiting for that task to exit and clear up memory).  If the VM continually\ncalls back into the OOM killer we get thousands of copies of show_mem() on\nthe console.\n\nUse printk_ratelimit() to quieten it.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "79b9ce311e192e9a31fd9f3cf1ee4a4edf9e2650",
      "tree": "210896405b2b70aded7582750e20967df8c8e7bf",
      "parents": [
        "cb2c0233755429037462e16ea0d5497a0092738c"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "marcelo.tosatti@cyclades.com",
        "time": "Thu Jul 07 17:56:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:35 2005 -0700"
      },
      "message": "[PATCH] print order information when OOM killing\n\nDump the current allocation order when OOM killing.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "578c2fd6a7f378434655e5c480e23152a3994404",
      "tree": "3a6408c416e3825cd17e33ac776425a52b743adc",
      "parents": [
        "c2f29ea111e3344ed48257c2a142c3db514e1529"
      ],
      "author": {
        "name": "Janet Morgan",
        "email": "janetmor@us.ibm.com",
        "time": "Tue Jun 21 17:14:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:17 2005 -0700"
      },
      "message": "[PATCH] add OOM debug\n\nThis patch provides more debug info when the system is OOM.  It displays\nmemory stats (basically sysrq-m info) from __alloc_pages() when page\nallocation fails and during OOM kill.\n\nThanks to Dave Jones for coming up with the idea.\n\nSigned-off-by: Janet Morgan \u003cjanetmor@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "79befd0c08c4766f8fa27e37ac2a70e40840a56a",
      "tree": "d0600c289b1a54902e3b78eec0729dc7011569a3",
      "parents": [
        "d345734267dbec642f4e34a9d392d2fd85b5fa9b"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sat Apr 16 15:24:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:24:05 2005 -0700"
      },
      "message": "[PATCH] oom-killer disable for iscsi/lvm2/multipath userland critical sections\n\niscsi/lvm2/multipath needs guaranteed protection from the oom-killer, so\nmake the magical value of -17 in /proc/\u003cpid\u003e/oom_adj defeat the oom-killer\naltogether.\n\n(akpm: we still need to document oom_adj and friends in\nDocumentation/filesystems/proc.txt!)\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
