Page MenuHomeFreeBSD

arm64 pmap: Enable L3C promotions by pmap_enter_quick()
ClosedPublic

Authored by alc on Jun 1 2024, 9:33 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 5, 7:13 AM
Unknown Object (File)
Fri, Oct 18, 8:09 AM
Unknown Object (File)
Thu, Oct 17, 7:58 AM
Unknown Object (File)
Thu, Oct 17, 5:14 AM
Unknown Object (File)
Tue, Oct 15, 10:27 PM
Unknown Object (File)
Sun, Oct 13, 2:28 AM
Unknown Object (File)
Fri, Oct 11, 3:19 PM
Unknown Object (File)
Wed, Oct 9, 3:36 PM

Details

Summary

This is dependent on D45431 to achieve a reasonable ratio of promotion successes to failures.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

alc requested review of this revision.Jun 1 2024, 9:33 PM
This revision is now accepted and ready to land.Jun 4 2024, 5:25 AM
sys/arm64/arm64/pmap.c
5897–5898

The same situation arises on amd64. However, there the promotion fails inexpensively at the very beginning of pmap_promote_pde(), before we enter the loop, because of misalignment of the physical superpage in the address space. For example, for the clang executable, I see a fully populated reservation, but it is misaligned, and so we don't perform pmap_enter_2mpage(). Instead, we wind up here 512 times, and attempt promotion once. This is because ld.ldd (unlike our earlier binutils linker) sets maxpagesize to 4KB on amd64, and so the text segment is almost always misaligned by default.