1
0
mirror of https://git.FreeBSD.org/src.git synced 2026-06-02 11:24:32 +00:00

amd64: explain in more details why the slop is needed

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
Konstantin Belousov
2026-05-31 22:15:37 +03:00
parent 03c69dd901
commit 963a92d63b
2 changed files with 10 additions and 0 deletions
+3
View File
@@ -261,7 +261,10 @@ Invalid syntax and the like are silently ignored.
.Ss Staging Slop
The kernel must parse the firmware memory map tables to know what memory
it can use.
It also needs to allocate memory for the kernel page tables.
Since it must allocate memory to do this,
without overwriting important structures,
for instance the trampoline page table,
.Nm
ensures there's extra memory available, called
.Dq slop ,
+7
View File
@@ -1273,6 +1273,13 @@ amd64_bsp_ist_init(struct pcpu *pc)
* - there is a usable memory block right after the end of the
* mapped kernel and all modules/metadata, pointed to by
* physfree, for early allocations
*
* The memory block after the end of the kernel is important, loader
* must ensure that no critical data structures are put there. Among
* them is the trampoline page table, which must not be overwritten by
* the allocations until pmap_bootstrap() switches %cr3 to the initial
* version of the kernel page table. Size of the block is controlled
* by the 'staging_slop' command for loader.efi.
*/
vm_paddr_t __nosanitizeaddress __nosanitizememory
amd64_loadaddr(void)