)]}'
{
  "commit": "e9d6c157385e4efa61cb8293e425c9d8beba70d3",
  "tree": "fca2452b46328c9005b8a4043a22b7b1b4d47d0c",
  "parents": [
    "1f0a738868cbfe20ae53a00b7c302c04ef7ab8fc"
  ],
  "author": {
    "name": "KOSAKI Motohiro",
    "email": "kosaki.motohiro@jp.fujitsu.com",
    "time": "Mon May 24 14:31:48 2010 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue May 25 08:06:56 2010 -0700"
  },
  "message": "tmpfs: insert tmpfs cache pages to inactive list at first\n\nShaohua Li reported parallel file copy on tmpfs can lead to OOM killer.\nThis is regression of caused by commit 9ff473b9a7 (\"vmscan: evict\nstreaming IO first\").  Wow, It is 2 years old patch!\n\nCurrently, tmpfs file cache is inserted active list at first.  This means\nthat the insertion doesn\u0027t only increase numbers of pages in anon LRU, but\nit also reduces anon scanning ratio.  Therefore, vmscan will get totally\nconfused.  It scans almost only file LRU even though the system has plenty\nunused tmpfs pages.\n\nHistorically, lru_cache_add_active_anon() was used for two reasons.\n1) Intend to priotize shmem page rather than regular file cache.\n2) Intend to avoid reclaim priority inversion of used once pages.\n\nBut we\u0027ve lost both motivation because (1) Now we have separate anon and\nfile LRU list.  then, to insert active list doesn\u0027t help such priotize.\n(2) In past, one pte access bit will cause page activation.  then to\ninsert inactive list with pte access bit mean higher priority than to\ninsert active list.  Its priority inversion may lead to uninteded lru\nchun.  but it was already solved by commit 645747462 (vmscan: detect\nmapped file pages used only once).  (Thanks Hannes, you are great!)\n\nThus, now we can use lru_cache_add_anon() instead.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec2b7a42b45f683cc885ed7001a444f3349681da",
      "old_mode": 33188,
      "old_path": "include/linux/swap.h",
      "new_id": "600b03b7732e4634946929a3a21f75991df6538d",
      "new_mode": 33188,
      "new_path": "include/linux/swap.h"
    },
    {
      "type": "modify",
      "old_id": "140ebda9640f64a7f05b58a5d31156cb874a6eb9",
      "old_mode": 33188,
      "old_path": "mm/filemap.c",
      "new_id": "d6f4f073836e2af566385bff6b366cce28477547",
      "new_mode": 33188,
      "new_path": "mm/filemap.c"
    }
  ]
}
