)]}'
{
  "commit": "304dbdb7a4fbb7f40a6ad5c5836fdd456c233c63",
  "tree": "2bdd71bb0ab19422362e9d3999f975ae27206965",
  "parents": [
    "3b5fd59fdd2e656dd4d10f2cedb41a7519b131b2"
  ],
  "author": {
    "name": "Lee Schermerhorn",
    "email": "Lee.Schermerhorn@hp.com",
    "time": "Sat Apr 22 02:35:48 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sat Apr 22 09:19:52 2006 -0700"
  },
  "message": "[PATCH] add migratepage address space op to shmem\n\nBasic problem: pages of a shared memory segment can only be migrated once.\n\nIn 2.6.16 through 2.6.17-rc1, shared memory mappings do not have a\nmigratepage address space op.  Therefore, migrate_pages() falls back to\ndefault processing.  In this path, it will try to pageout() dirty pages.\nOnce a shared memory page has been migrated it becomes dirty, so\nmigrate_pages() will try to page it out.  However, because the page count\nis 3 [cache + current + pte], pageout() will return PAGE_KEEP because\nis_page_cache_freeable() returns false.  This will abort all subsequent\nmigrations.\n\nThis patch adds a migratepage address space op to shared memory segments to\navoid taking the default path.  We use the \"migrate_page()\" function\nbecause it knows how to migrate dirty pages.  This allows shared memory\nsegment pages to migrate, subject to other conditions such as # pte\u0027s\nreferencing the page [page_mapcount(page)], when requested.\n\nI think this is safe.  If we\u0027re migrating a shared memory page, then we\nfound the page via a page table, so it must be in memory.\n\nCan be verified with memtoy and the shmem-mbind-test script, both\navailable at:  http://free.linux.hp.com/~lts/Tools/\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "37eaf42ed2c686541e4e1ef7a7a41afe736e7eb7",
      "old_mode": 33188,
      "old_path": "mm/shmem.c",
      "new_id": "4c5e68e4e9aed7fcf6b31a88d240046ffeb0f899",
      "new_mode": 33188,
      "new_path": "mm/shmem.c"
    }
  ]
}
