)]}'
{
  "commit": "2ebba6b7e1d98724d266ae048d8af4f7ca95cafd",
  "tree": "e01da37ea8493be9407cdec40e6b3f2b97db05ab",
  "parents": [
    "5cec38ac866bfb8775638e71a86e4d8cac30caae"
  ],
  "author": {
    "name": "Hugh Dickins",
    "email": "hughd@google.com",
    "time": "Fri Dec 12 16:56:19 2014 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sat Dec 13 12:42:49 2014 -0800"
  },
  "message": "mm: unmapped page migration avoid unmap+remap overhead\n\nPage migration\u0027s __unmap_and_move(), and rmap\u0027s try_to_unmap(), were\ncreated for use on pages almost certainly mapped into userspace.  But\nnowadays compaction often applies them to unmapped page cache pages: which\nmay exacerbate contention on i_mmap_rwsem quite unnecessarily, since\ntry_to_unmap_file() makes no preliminary page_mapped() check.\n\nNow check page_mapped() in __unmap_and_move(); and avoid repeating the\nsame overhead in rmap_walk_file() - don\u0027t remove_migration_ptes() when we\nnever inserted any.\n\n(The PageAnon(page) comment blocks now look even sillier than before, but\nclean that up on some other occasion.  And note in passing that\ntry_to_unmap_one() does not use a migration entry when PageSwapCache, so\nremove_migration_ptes() will then not update that swap entry to newpage\npte: not a big deal, but something else to clean up later.)\n\nDavidlohr remarked in \"mm,fs: introduce helpers around the i_mmap_mutex\"\nconversion to i_mmap_rwsem, that \"The biggest winner of these changes is\nmigration\": a part of the reason might be all of that unnecessary taking\nof i_mmap_mutex in page migration; and it\u0027s rather a shame that I didn\u0027t\nget around to sending this patch in before his - this one is much less\nuseful after Davidlohr\u0027s conversion to rwsem, but still good.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "01439953abf548690ac17f1b994511b587e9326a",
      "old_mode": 33188,
      "old_path": "mm/migrate.c",
      "new_id": "253474c22239a33b4f678d3f8a4dfd2a171252fb",
      "new_mode": 33188,
      "new_path": "mm/migrate.c"
    }
  ]
}
