Page MenuHomeFreeBSD

kboot: Allocate a really big first segment
ClosedPublic

Authored by imp on Feb 1 2023, 6:24 AM.
Tags
None
Referenced Files
Unknown Object (File)
Oct 4 2024, 8:34 PM
Unknown Object (File)
Oct 4 2024, 8:46 AM
Unknown Object (File)
Oct 3 2024, 8:34 PM
Unknown Object (File)
Oct 1 2024, 5:44 PM
Unknown Object (File)
Oct 1 2024, 5:20 PM
Unknown Object (File)
Oct 1 2024, 12:04 AM
Unknown Object (File)
Sep 30 2024, 2:15 AM
Unknown Object (File)
Sep 25 2024, 2:27 AM
Subscribers

Details

Summary

Allocate a huge segment for the first kexec_load segments. We limit the
lessor of:
allocation to the size of the remaining memory segment
45% of available memory
95% of the memory we can allocate

This allows us to have really large RAM disks. We likely need to limit
this to the amount we actually used, though, since this can be a lot of
memory.

We have to do this complicated calculation for a few reasons: First, we
need 2 copies of the loaded kernel in the memory: The kernel can copy
everything to a temporary buffer. Next, malloc (via mmap) is limited to
a certain amount due to over commit, so we have to not allocate all we
can (only most of what we can).

Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 49465
Build 46355: arc lint + arc unit