Skip to content

SpiritBoot Main Physical Ownership

Codex edited this page Oct 10, 2026 · 1 revision

SpiritBoot plain main: complete physical ownership census

Exact source tree 6e7666c73c916a235d29ec793dc9ee0920df299b, flash SHA256 75bee35302ea9b004f1e6fc1ea9d1e5857985c96489635c56b7461a46849ca73, bound to the retained completed allocation/lifetime guest. 16,052 available + 332 unavailable = 16,384 pages. Each unavailable physical page has one owner; no duplicate/free-page claims or unattributed busy pages remain in this owned-source census.

This is 1,328 KiB unavailable, including title and hardware allocations. It is not 1,328 KiB of pure firmware. The conventional image owns 102 pages / 408 KiB. Compare the same retained Complex guest checkpoint: 16,226 available / 158 unavailable, giving 174 pages / 696 KiB less available on main after workload activity. Initial main availability is 16,083, a distinct 143-page / 572 KiB gap. Do not average or exchange initial and final checkpoints.

Companions: Memory-Reduction-Targets, SpiritBoot-Main-Emitted-Extent-Ledger, Complex-BIOS-Size-and-Layout. Optional ROM+pool changes are excluded.

Every physical owner

Owner Pages KiB
page_supply_links 16 64
page_supply_pin_state 8 32
pool_metadata 3 12
kernel_headers 1 4
residual_pfn_backing 1 4
working_set_backing 1 4
low_boot_reservations 6 24
nv2a_padding 16 64
kernel_.text 81 324
kernel_.data 1 4
kernel_.rdata 7 28
kernel_.bss 11 44
kernel_PAGE 1 4
installed_page_tables 17 68
live_contiguous 2 8
pool_window 86 344
other_system_pte 37 148
title_virtual 37 148

Every unavailable physical interval

End addresses are excluded. These disjoint ranges account for all 332 busy pages. Virtual aliases are not charged again. Pool-backed cache or stacks are part of their raw physical owner; public category counters are not additional allocations.

Physical start Physical end Pages Owner
0x382b000 0x383b000 16 page_supply_links
0x383b000 0x3843000 8 page_supply_pin_state
0x3843000 0x3846000 3 pool_metadata
0x3400000 0x3401000 1 kernel_headers
0x3820000 0x3821000 1 residual_pfn_backing
0x3bfe000 0x3bff000 1 working_set_backing
0x0 0x1000 1 low_boot_reservations
0xd000 0xf000 2 low_boot_reservations
0x10000 0x11000 1 low_boot_reservations
0x30000 0x31000 1 low_boot_reservations
0x3f000 0x40000 1 low_boot_reservations
0x3ff0000 0x4000000 16 nv2a_padding
0x3401000 0x3452000 81 kernel_.text
0x3452000 0x3453000 1 kernel_.data
0x3453000 0x345a000 7 kernel_.rdata
0x345a000 0x3465000 11 kernel_.bss
0x3465000 0x3466000 1 kernel_PAGE
0xf000 0x10000 1 installed_page_tables
0x3821000 0x382b000 10 installed_page_tables
0x3bd3000 0x3bd6000 3 installed_page_tables
0x3bf9000 0x3bfa000 1 installed_page_tables
0x3bfd000 0x3bfe000 1 installed_page_tables
0x3bff000 0x3c00000 1 installed_page_tables
0x3ba0000 0x3ba1000 1 live_contiguous
0x3ba2000 0x3ba3000 1 live_contiguous
0x3466000 0x346d000 7 pool_window
0x380d000 0x381d000 16 pool_window
0x3b8e000 0x3b9d000 15 pool_window
0x3ba1000 0x3ba2000 1 pool_window
0x3ba3000 0x3bab000 8 pool_window
0x3bae000 0x3bc0000 18 pool_window
0x3bd2000 0x3bd3000 1 pool_window
0x3bd6000 0x3bde000 8 pool_window
0x3be4000 0x3be5000 1 pool_window
0x3beb000 0x3bec000 1 pool_window
0x3bf2000 0x3bf9000 7 pool_window
0x3bfa000 0x3bfd000 3 pool_window
0x346d000 0x347d000 16 other_system_pte
0x3b9d000 0x3ba0000 3 other_system_pte
0x3bab000 0x3bae000 3 other_system_pte
0x3bde000 0x3be4000 6 other_system_pte
0x3be5000 0x3beb000 6 other_system_pte
0x3bec000 0x3bef000 3 other_system_pte
0x3800000 0x380d000 13 title_virtual
0x381d000 0x3820000 3 title_virtual
0x3bc0000 0x3bd2000 18 title_virtual
0x3bef000 0x3bf2000 3 title_virtual

Counters and backing are different

Metric Value Interpretation
public_stack_pages 37 observed counter/backing, not an extra charge
actual_pool_window_pages 86 observed counter/backing, not an extra charge
stack_pages_in_pool 0 observed counter/backing, not an extra charge
public_cache_pages 16 observed counter/backing, not an extra charge

What the owners allow us to target

  • 102 image pages: reduce linked retained contents or prove a discard/ROM placement lifetime; changing symbol spelling or debug symbols does not recover RAM.
  • 27 metadata pages: 16 links + 8 pins + 3 pool metadata. Dense pin-batch scratch has already been removed; these are live state.
  • 17 page-table pages: installed mappings with actual PDE references, not obsolete loader scratch.
  • 86 pool-window pages: live small objects, empty retained capacity, ordinary cache, private write-back reserve and other whole-page allocations. Reclaim whole pages after proving last use; per-object byte reductions need layout confirmation.
  • 37 other system-PTE pages: the counter agrees with stack mappings in this capture; thread identity/high-water and blocking dependencies are required before trimming.
  • 37 title virtual pages and 2 contiguous pages: preserve title requests and alignment/lifecycle requirements; these are not automatically firmware waste.
  • 16 NV2A padding pages: hardware-unavailable capacity; equal hardware reservations cancel in a comparison instead of becoming an optimization target.

Detailed historical object/tag/sizeof proofs remain in Memory-Allocation-Object-Ledger and Memory-Function-and-Table-Ledger, with their own revision boundaries. This exact census updates physical totals; it does not silently upgrade historical per-object labels or thread-stack observations into new proofs.

SpiritBoot reference

Internal contracts

BIOS sizes and layouts

Resident memory research

Retail 5838 and current main sizing update — 2026-10-10

Memory removal workbook and kernel overhaul

Clone this wiki locally