consider increasing page size
ARM64 supports 3 different page size granularities: 4K, 16K, 64K. We'reusing 4K.
According to someone on the internet, larger sizes can boost performance https://news.ycombinator.com/item?id=30732181 , which might be worth checking out.
Downside: Android and x86 applications might not work https://asahilinux.org/2021/10/progress-report-september-2021/
Necessary pieces:
- build kernel with CONFIG_ARM64_16K_PAGES=y
- make sure userspace binaries' sections are aligned to 16K https://lwn.net/Articles/872394/
Binaries built this way remain compatible with the current setup.
My tests show that the kernel is currently not booting when built with 16K pages - I don't have serial here, so don't know why.
For the long term, if this actually has a speed effect, we could ship 2 kernels, depending on whether speed or compatibility is needed.