Hi All, I played with CMA's core function alloc_contig_range and found it's very very slow so I suspect we can use it in real practice. I tested it with a bit tweak for working CMA in x86 on qemu. Test environment is following as. 1. x86_64 machince, 2G RAM, 4 core, movable zone 40M with try alloc_contig_range(movable_zone->middle_pfn, movable_zone->middle_pfn + 10M) per 5sec until background stress test program is terminated. 2. There is background stress program which can make lots of clean cache page. It mimics movie player. alloc_contig_range's latency unit: usec before: min 204000 max 8156000 mean 3109310.34482759 success count 58 after: min 8000 max 112000 mean 45788.2352941177 success count 85 So this patch reduces 8 sec as worst case, 3 sec as mean case. I'm off from now on until the day of tomorrow so please understand if I can't reply instantly. Minchan Kim (2): cma: remove __reclaim_pages cma: support MIGRATE_DISCARD include/linux/migrate_mode.h | 11 +++++-- include/linux/mm.h | 2 +- include/linux/mmzone.h | 9 ------ mm/compaction.c | 2 +- mm/migrate.c | 50 +++++++++++++++++++++++------ mm/page_alloc.c | 73 +++++------------------------------------- 6 files changed, 58 insertions(+), 89 deletions(-) -- 1.7.9.5 -- 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>