Page MenuHomeFreeBSD

Improve superpage handling in pmap_advise()
ClosedPublic

Authored by alc on Jul 30 2019, 4:07 PM.
Tags
None
Referenced Files
F82573306: D21115.diff
Tue, Apr 30, 11:56 AM
Unknown Object (File)
Sat, Apr 27, 5:57 PM
Unknown Object (File)
Sat, Apr 27, 5:56 PM
Unknown Object (File)
Sat, Apr 27, 5:56 PM
Unknown Object (File)
Sat, Apr 27, 5:56 PM
Unknown Object (File)
Sat, Apr 27, 4:34 PM
Unknown Object (File)
Sat, Apr 6, 7:03 PM
Unknown Object (File)
Feb 28 2024, 2:27 PM
Subscribers

Details

Summary

In pmap_advise(), when we encounter a superpage mapping, we first demote the mapping and then destroy one of the 4 KB page mappings so that there is a potential trigger for repromotion. Currently, we destroy the first 4 KB page mapping that falls within the (current) superpage mapping or the virtual address range {sva, eva). However, I have found empirically that destroying the last 4 KB mapping produces slightly better results, specifically, more promotions and fewer failed promotion attempts. Accordingly, this revision changes pmap_advise() to destroy the last 4 KB page mapping. It also replaces some nearby uses of boolean_t with bool.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

amd64/amd64/pmap.c
7510

Should this comment be amended to explain why we choose the last page in the range?

This revision is now accepted and ready to land.Jul 30 2019, 7:32 PM
amd64/amd64/pmap.c
7510

Yes, I will do so this evening.