diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-24 08:52:43 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-24 08:52:43 -0400 |
| commit | fd06e0363b966f43b5e89dff0677f81966d6213d (patch) | |
| tree | 031456456fe94050d0a7a31edb7f05965076670f /kernel/main.c | |
| parent | fedae104af9b569effa8fd3f1cecb72d46d89c16 (diff) | |
| download | open-iov-fd06e0363b966f43b5e89dff0677f81966d6213d.tar.gz open-iov-fd06e0363b966f43b5e89dff0677f81966d6213d.zip | |
kernel: extend RAM scan to the full guest window and rescan hot push pages
The learned VA->PA map only covered guest physical addresses below 5 GB,
but a 4 GB guest has RAM low plus a remapped window above the PCI hole
(top around 6 GB). Structures that landed in the top gigabyte (for
example the UVM semaphore pool) were never discovered, which made the
semaphore translations flaky from boot to boot: releases then could not
be applied and the guest's tracker waits never completed.
Scan and accept translations over the full 6 GB window, and rescan the
pages that have carried release groups in the rolling sweep (pushbuffer
pools are recycled, so those pages hold the next releases). Also log the
first distinct release misses and the sweep position so a stuck wait can
be told apart from a translation gap.
Diffstat (limited to 'kernel/main.c')
0 files changed, 0 insertions, 0 deletions
