Intel Prepares Linux Batch TLB Flushing For Page Migration As A Big Performance Win
For cases where multiple folios are passed to migrate_pages(), the Intel engineer worked on support to batch the TLB flushing and copying while in turn reducing the number of inter-processor interrupts (IPIs). The migrate_pages() function is used to move all pages in a process to another set of nodes. THis patch series also allows for accelerating the folio copying using the likes of the Intel Data Streaming Accelerator (DSA) with Xeon Scalable Sapphire Rapids.
As for the current benefit from this optimization work to the migrate_pages() call:
"With the patch, the TLB flushing IPI reduces 99.1% during the test and the number of pages migrated successfully per second increases 291.7%."
See this patch series for those interested in all of the technical details.