On 3/27/19 10:48 AM, Zi Yan wrote: > For 40MB/s vs 750MB/s, they were using sys_migrate_pages(). Sorry > about the confusion there. As I measure only the migrate_pages() in > the kernel, the throughput becomes: migrating 4KB page: 0.312GB/s > vs migrating 512 4KB pages: 0.854GB/s. They are still >2x > difference. > > Furthermore, if we only consider the migrate_page_copy() in > mm/migrate.c, which only calls copy_highpage() and > migrate_page_states(), the throughput becomes: migrating 4KB page: > 1.385GB/s vs migrating 512 4KB pages: 1.983GB/s. The gap is > smaller, but migrating 512 4KB pages still achieves 40% more > throughput. > > Do these numbers make sense to you? Yes. It would be very interesting to batch the migrations in the kernel and see how it affects the code. A 50% boost is interesting, but not if it's only in microbenchmarks and takes 2k lines of code. 50% is *very* interesting if it happens in the real world and we can do it in 10 lines of code. So, let's see what the code looks like.