This is incomplete implementation of non-isolating memory migration and compaction. It's alive! The main reason -- it can preserve lru order during compaction. Also it makes implementation of migration for various types of pages: zram, balloon, ptes, kernel stacks [ Why not? I've already migrated them accidentally and kernel have crashed in very funny places ] much easier: owner just have to set page->mappingw with valid method a_ops->migratepage. --- Konstantin Khlebnikov (6): pagevec: segmented page vectors mm/migrate: move putback of old page out of unmap_and_move mm/cma: repalce reclaim_clean_pages_from_list with try_to_reclaim_page mm/migrate: page migration without page isolation mm/compaction: use migration without isolation mm/migrate: preserve lru order if possible include/linux/migrate.h | 4 + include/linux/mm.h | 1 include/linux/pagevec.h | 48 ++++++++- include/trace/events/compaction.h | 12 +- mm/compaction.c | 205 +++++++++++++++++++++---------------- mm/filemap.c | 20 ++++ mm/internal.h | 12 +- mm/migrate.c | 141 +++++++++++++++++++++---- mm/page_alloc.c | 35 ++++-- mm/swap.c | 69 ++++++++++++ mm/vmscan.c | 42 +------- 11 files changed, 410 insertions(+), 179 deletions(-) -- Konstantin -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>