Files
vatrog-vm-signaling/src/test/fixtures/mtree_split_fragmented.txt
T
lirent 3142337e62 fix(discovery): derive the below-4G split robustly from fragmented mtree
host_probe derived the guest's below-4G split (vmie `low`) by taking the first
GPA-0 RAM run in `info mtree -f`. When low RAM is fragmented by overlay pages
(Hyper-V SynIC) and blackhole holes (smbase/tseg), that first run is a tiny
fragment, so the split came out far too small and host_bootstrap could never
recover the System DTB — the memctx context was never published.

Extract a pure parser, mtree_low_split(): anchor on the system flatview, take
`low` from the @file-offset of the high-RAM region at GPA >= 4 GiB (which equals
the split by construction), cross-validate against the PCI-hole base, and fail
closed when it can't be derived. QMP-reply un-escaping moves to the transport
boundary so the parser works on plain text. Unit-tested against a synthetic
fragmented flatview including a decoy non-system address space.

postinst also hints to restart the daemon after an upgrade (a running instance
keeps the old build until restarted).

Bump 0.3.6.
2026-06-24 14:26:50 +03:00

43 lines
2.0 KiB
Plaintext

FlatView #0
AS "cpu-smm-0", root: mem-container-smram
Root memory region: mem-container-smram
0000000000000000-0000000000017fff (prio 0, ram): ram0
0000000000018000-0000000000018fff (prio 0, ram): synic-0-msg-page
000000000001c000-000000007fffffff (prio 0, ram): ram0 @000000000001c000
0000000080000000-0000000081ffffff (prio 0, i/o): vfio-pci-bar3
0000000100000000-000000017fffffff (prio 0, ram): ram0 @0000000040000000
FlatView #1
AS "I/O", root: io
Root memory region: io
0000000000000000-0000000000000007 (prio 0, i/o): dma-chan
0000000000000060-0000000000000060 (prio 0, i/o): i8042-data
0000000000000064-0000000000000064 (prio 0, i/o): i8042-cmd
FlatView #2
AS "memory", root: system
AS "cpu-memory-0", root: system
Root memory region: system
0000000000000000-0000000000017fff (prio 0, ram): ram0
0000000000018000-0000000000018fff (prio 0, ram): synic-0-msg-page
0000000000019000-0000000000019fff (prio 0, ram): synic-1-msg-page
000000000001a000-000000000001afff (prio 0, ram): synic-2-msg-page
000000000001b000-000000000001bfff (prio 0, ram): synic-3-msg-page
000000000001c000-000000000002ffff (prio 0, ram): ram0 @000000000001c000
0000000000030000-000000000004ffff (prio 1, i/o): smbase-blackhole
0000000000050000-00000000000bffff (prio 0, ram): ram0 @0000000000050000
00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
00000000000e0000-00000000000fffff (prio 0, rom): system.flash0 @000000000035c000
0000000000100000-000000007bffffff (prio 0, ram): ram0 @0000000000100000
000000007c000000-000000007fffffff (prio 1, i/o): tseg-blackhole
0000000080000000-0000000081ffffff (prio 0, i/o): vfio-pci-bar3
0000000082000000-0000000082087fff (prio 0, i/o): vfio-pci-bar0
00000000e0000000-00000000efffffff (prio 0, i/o): pcie-mmcfg-mmio
00000000fec00000-00000000fec00fff (prio 0, i/o): kvm-ioapic
00000000ffc00000-00000000ffc83fff (prio 0, romd): system.flash1
0000000100000000-000000027fffffff (prio 0, ram): ram0 @0000000080000000
FlatView #3
AS "pci_bridge_io", root: pci_bridge_io
Root memory region: pci_bridge_io