mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-08 06:00:16 +02:00
StealMemoryRegion guards the open() with LogMan::Throw::AFmt, which compiles out in release builds. With no procfs mounted the fd is -1 and CollectMemoryGaps then loops on read(-1) forever at 100% CPU. This is hit whenever FEX is the x86_64 binfmt handler and something runs an x86 binary in a root without /proc. BuildKit does exactly that: its emulator probe execs a static x86_64 binary in an empty chroot, so every BuildKit start on an Arm host with FEX registered hangs. Reserve nothing instead: StealMemoryRegion returns no regions and Setup48BitAllocatorIfExists skips the 48-bit allocator. The guest then runs without the upper VA hidden, which only matters in environments that previously never got past startup.