)]}'
{
  "commit": "daa88c8d214ca4ab2f1764b6e503cef4b3cde9b2",
  "tree": "f01848aa624796944b62dc67a41c7d1bdac6ac04",
  "parents": [
    "46626296314e5679c9aaca36979a50ac20692e0b"
  ],
  "author": {
    "name": "Ken Chen",
    "email": "kenchen@google.com",
    "time": "Sat Feb 10 01:43:18 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Sun Feb 11 10:51:19 2007 -0800"
  },
  "message": "[PATCH] do not disturb page referenced state when unmapping memory range\n\nWhen kernel unmaps an address range, it needs to transfer PTE state into\npage struct.  Currently, kernel transfer access bit via\nmark_page_accessed().  The call to mark_page_accessed in the unmap path\ndoesn\u0027t look logically correct.\n\nAt unmap time, calling mark_page_accessed will causes page LRU state to be\nbumped up one step closer to more recently used state.  It is causing quite\na bit headache in a scenario when a process creates a shmem segment, touch\na whole bunch of pages, then unmaps it.  The unmapping takes a long time\nbecause mark_page_accessed() will start moving pages from inactive to\nactive list.\n\nI\u0027m not too much concerned with moving the page from one list to another in\nLRU.  Sooner or later it might be moved because of multiple mappings from\nvarious processes.  But it just doesn\u0027t look logical that when user asks a\nrange to be unmapped, it\u0027s his intention that the process is no longer\ninterested in these pages.  Moving those pages to active list (or bumping\nup a state towards more active) seems to be an over reaction.  It also\nprolongs unmapping latency which is the core issue I\u0027m trying to solve.\n\nAs suggested by Peter, we should still preserve the info on pte young\npages, but not more.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: 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": "0047d3a4e364809389b5fc7a405f1f8f21b2272d",
      "old_mode": 33188,
      "old_path": "mm/memory.c",
      "new_id": "0e6a402d86bee7edf968b1ef97f8b46a42f37a52",
      "new_mode": 33188,
      "new_path": "mm/memory.c"
    }
  ]
}
