=== Physical memory compaction for the FreeBSD kernel

Links: +
link:https://wiki.freebsd.org/SummerOfCode2023Projects/PhysicalMemoryAntiFragmentationMechanisms[GSoC project wiki page] URL: link:https://wiki.freebsd.org/SummerOfCode2023Projects/PhysicalMemoryAntiFragmentationMechanisms[] +
link:https://reviews.freebsd.org/D40575[Differential revision 40575] URL: link:https://reviews.freebsd.org/D40575[] +
link:https://reviews.freebsd.org/D40772[Differential revision 40772] URL: link: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 link:https://reviews.freebsd.org/D40575[D40575] implements a well-known metric used for quantifying the degree of physical memory fragmentation.
Differential link:https://reviews.freebsd.org/D40772[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
