Page MenuHomeFreeBSD

Handle non-page aligned/sized memory in physmem
ClosedPublic

Authored by andrew on Mar 28 2022, 3:05 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Oct 21, 7:31 PM
Unknown Object (File)
Mon, Oct 13, 10:57 AM
Unknown Object (File)
Mon, Oct 13, 10:57 AM
Unknown Object (File)
Sun, Oct 12, 10:24 PM
Unknown Object (File)
Sun, Oct 12, 10:24 PM
Unknown Object (File)
Sun, Oct 12, 10:24 PM
Unknown Object (File)
Sun, Oct 12, 1:45 PM
Unknown Object (File)
Sun, Oct 12, 10:53 AM
Subscribers

Details

Summary

In some configurations the firmware may pass memory regions that are
not page sized or aligned, e.g. when using 16k pages on arm64. If this
is the case we will calculate many small regions because the alignment
is applied before being inserted. As we round the start up and end down
this will leave a 1 page hole between what should have been a single
region.

Fix by keeping the original alignment until we are just about to insert
the region into the avail array.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 44902
Build 41790: arc lint + arc unit