Intel Prepares Linux Batch TLB Flushing For Page Migration As A Big Performance Win
Intel engineer Huang Ying sent out a set of patches today to implement batch TLB flushing for page migration within the migrate_pages() function and is showing very promising results.
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:
See this patch series for those interested in all of the technical details.
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.
3 Comments