)]}'
{
  "commit": "8a9f3ccd24741b50200c3f33d62534c7271f3dfc",
  "tree": "066aabd8d2952299501f067a91cbfd6f47ee62f6",
  "parents": [
    "78fb74669e80883323391090e4d26d17fe29488f"
  ],
  "author": {
    "name": "Balbir Singh",
    "email": "balbir@linux.vnet.ibm.com",
    "time": "Thu Feb 07 00:13:53 2008 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Thu Feb 07 08:42:18 2008 -0800"
  },
  "message": "Memory controller: memory accounting\n\nAdd the accounting hooks.  The accounting is carried out for RSS and Page\nCache (unmapped) pages.  There is now a common limit and accounting for both.\nThe RSS accounting is accounted at page_add_*_rmap() and page_remove_rmap()\ntime.  Page cache is accounted at add_to_page_cache(),\n__delete_from_page_cache().  Swap cache is also accounted for.\n\nEach page\u0027s page_cgroup is protected with the last bit of the\npage_cgroup pointer, this makes handling of race conditions involving\nsimultaneous mappings of a page easier.  A reference count is kept in the\npage_cgroup to deal with cases where a page might be unmapped from the RSS\nof all tasks, but still lives in the page cache.\n\nCredits go to Vaidyanathan Srinivasan for helping with reference counting work\nof the page cgroup.  Almost all of the page cache accounting code has help\nfrom Vaidyanathan Srinivasan.\n\n[hugh@veritas.com: fix swapoff breakage]\n[akpm@linux-foundation.org: fix locking]\nSigned-off-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\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: \u003cValdis.Kletnieks@vt.edu\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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7d1f119c796efb42e470572d2e05dd607d267408",
      "old_mode": 33188,
      "old_path": "include/linux/memcontrol.h",
      "new_id": "f5b47efab48b8d9d602f8b65df20e5334144e822",
      "new_mode": 33188,
      "new_path": "include/linux/memcontrol.h"
    },
    {
      "type": "modify",
      "old_id": "81fb9bff0d4f9022db02f9d3194ebc5ccd0c350e",
      "old_mode": 33188,
      "old_path": "mm/filemap.c",
      "new_id": "b7a01e9279534d43d13c1c99aa6f20ac5b1c930c",
      "new_mode": 33188,
      "new_path": "mm/filemap.c"
    },
    {
      "type": "modify",
      "old_id": "4d4805eb37c77b06a98a9d06690982420734e077",
      "old_mode": 33188,
      "old_path": "mm/memcontrol.c",
      "new_id": "ebca767292dc2ad2aac09d47e1c819e600fa02ce",
      "new_mode": 33188,
      "new_path": "mm/memcontrol.c"
    },
    {
      "type": "modify",
      "old_id": "9d073fa0a2d02631f53ba3117e80b32efc2b9ae9",
      "old_mode": 33188,
      "old_path": "mm/memory.c",
      "new_id": "0ba224ea6ba4b723c50a8c231c53fbf4e56d2cc6",
      "new_mode": 33188,
      "new_path": "mm/memory.c"
    },
    {
      "type": "modify",
      "old_id": "857a987e36904a5850a4d663c6d9e41e494ffe1f",
      "old_mode": 33188,
      "old_path": "mm/migrate.c",
      "new_id": "417bbda14e5b749b9c8512ac1b44ebcb31c346f1",
      "new_mode": 33188,
      "new_path": "mm/migrate.c"
    },
    {
      "type": "modify",
      "old_id": "37576b822f06c98c2d3342af1cdecbe0e5a8f25b",
      "old_mode": 33188,
      "old_path": "mm/page_alloc.c",
      "new_id": "26a54a17dc9f5dfc0191da8f0dd774476ab8eee0",
      "new_mode": 33188,
      "new_path": "mm/page_alloc.c"
    },
    {
      "type": "modify",
      "old_id": "57ad276900c94903a2febd53e1c0d995958a38a9",
      "old_mode": 33188,
      "old_path": "mm/rmap.c",
      "new_id": "4a3487921effd04b4ab3c3cdbddf216259366d10",
      "new_mode": 33188,
      "new_path": "mm/rmap.c"
    },
    {
      "type": "modify",
      "old_id": "ec42f01a8d02669fb5bd2c73dcffefb5bb619f6c",
      "old_mode": 33188,
      "old_path": "mm/swap_state.c",
      "new_id": "f96e3ff1e7913472107791f35360c273ab0862a4",
      "new_mode": 33188,
      "new_path": "mm/swap_state.c"
    },
    {
      "type": "modify",
      "old_id": "afae7b1f680b5f4140d305d2a5be7fb476f50fd5",
      "old_mode": 33188,
      "old_path": "mm/swapfile.c",
      "new_id": "fddc4cc4149bce91491ee9d08aa8099969793236",
      "new_mode": 33188,
      "new_path": "mm/swapfile.c"
    }
  ]
}
