MGLRU Improvement Yielding Nice Gains On Linux 7.2: MongoDB 30~100% Higher Throughput

The items I found most interesting with the MM feature changes for the Linux 7.2 kernel included:
- Improving MGLRU's reclaim loop and dirty writeback handling. The patch series yields up to a 30% increase in some workloads such as MongoDB with YCSB. With slow I/O, some benchmarks like MongoDB may be as much as a 100% gain where as the 30% increase was with NVMe storage. The benchmark results from the patch series for improving MGLRU's reclaim loop and dirty folio handling are pretty wild. It will be interesting to see what other workloads may benefit from this improvement.
- Faster freeing of 0-order pages by doing it more efficiently by freeing a contiguous set of order-0 pages as a batch. In turn this addresses some performance regressions noted last year in vmalloc performance. This mainly benefits vfree() and releasing of frozen pages.
- Support for pausing and resuming DAMON without losing its current state.
- Extending DAMON for monitoring general data attributes other than just accesses.
- Speeding up of the Kernel Address Sanitizer (KASAN) by removing its ineffective tagging of stacks and page tables.
- Tightening of the mmap_miss hit accounting that yields a significant reduction in synchronous mmap readahead I/O and cuts down execution time and gigabytes read for sparse random and strided memory access workloads. This is showing some nice improvements.
- Unifying the allocation and charging of anon and shared memory swap in folios to provide better synchronization and enhanced performance.
More details on the many MM changes for Linux 7.2 via the main MM pull request that is already merged to Git.
6 Comments
