)]}'
{
  "log": [
    {
      "commit": "4365a5676fa3aa1d5ae6c90c22a0044f09ba584e",
      "tree": "5b9914ccbdcf2aa695473421e71f6299fbe78cef",
      "parents": [
        "3b4798cbc13dd8d1150aa6377f97f0e11450a67d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hioryu@jp.fujitsu.com",
        "time": "Tue Dec 15 16:45:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:57 2009 -0800"
      },
      "message": "oom-kill: fix NUMA constraint check with nodemask\n\nFix node-oriented allocation handling in oom-kill.c I myself think of this\nas a bugfix not as an ehnancement.\n\nIn these days, things are changed as\n  - alloc_pages() eats nodemask as its arguments, __alloc_pages_nodemask().\n  - mempolicy don\u0027t maintain its own private zonelists.\n  (And cpuset doesn\u0027t use nodemask for __alloc_pages_nodemask())\n\nSo, current oom-killer\u0027s check function is wrong.\n\nThis patch does\n  - check nodemask, if nodemask \u0026\u0026 nodemask doesn\u0027t cover all\n    node_states[N_HIGH_MEMORY], this is CONSTRAINT_MEMORY_POLICY.\n  - Scan all zonelist under nodemask, if it hits cpuset\u0027s wall\n    this faiulre is from cpuset.\nAnd\n  - modifies the caller of out_of_memory not to call oom if __GFP_THISNODE.\n    This doesn\u0027t change \"current\" behavior. If callers use __GFP_THISNODE\n    it should handle \"page allocation failure\" by itself.\n\n  - handle __GFP_NOFAIL+__GFP_THISNODE path.\n    This is something like a FIXME but this gfpmask is not used now.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hioryu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a8670a29b5277cbe601f74ab63d2c5211fb3005",
      "tree": "1b2ca94009c1f3d7ff05bbda3b8956631e3f38d9",
      "parents": [
        "0b21767637c3c99890a248fe47ac414e51cf5eb7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:03:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "oom: move oom_killer_enable()/oom_killer_disable to where they belong\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.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": "172acf60f39046987d3ff7b955f2bcc45de7ddd3",
      "tree": "49c3d7aa17f2f595aa89057ffdb57db075c37654",
      "parents": [
        "3ff566963ce804809af9e32331b287eedeeff501"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "oom: prevent including sched.h in header file\n\nIt\u0027s not necessary to include all of linux/sched.h in linux/oom.h.  Instead,\nsimply include prototypes for the relevant structs and include linux/types.h\nfor gfp_t.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Alexey Dobriyan \u003cadobriyan@gmail.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": "5a3135c2e77fe88cdea20b5e3f4761068b799ac2",
      "tree": "d82b0568722d285673251210716801e6fc4a90ed",
      "parents": [
        "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957"
      ],
      "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 prototypes to appropriate header file\n\nMove the OOM killer\u0027s extern function prototypes to include/linux/oom.h and\ninclude it where necessary.\n\n[clg@fr.ibm.com: build fix]\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: Cedric Le Goater \u003cclg@fr.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": "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"
    }
  ]
}
