Physical memory compaction for the FreeBSD kernel
Links:
GSoC project wiki page URL: https://wiki.freebsd.org/SummerOfCode2023Projects/PhysicalMemoryAntiFragmentationMechanisms
Differential revision
40575 URL: https://reviews.freebsd.org/D40575
Differential revision
40772 URL: https://reviews.freebsd.org/D40772
Contact: Bojan Novković <bnovkov@FreeBSD.org>
Most modern CPU architectures offer performance boosts by supporting pages that are larger than the standard page size. Unfortunately, allocating such pages can fail due to a high degree of physical memory fragmentation. This work implements physical memory compaction as a means of actively reducing fragmentation in running systems. This work is part of an ongoing Google Summer of Code project, the goal of which is to add various physical memory anti-fragmentation measures to the virtual memory subsystem.
Differential D40575 implements a well-known metric used for quantifying the degree of physical memory fragmentation. Differential D40772 implements physical memory compaction and adds a daemon that monitors the system and performs compaction when needed.
Planned future work includes designing an appropriate benchmarking suite, running tests, and tweaking the code using feedback from reviews and test results. This is still a work in progress, so any testing, reviews, and feedback would be greatly appreciated.
Sponsor: The Google Summer of Code '23 program
Last modified on: July 10, 2023 by Graham Perrin
