diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-08 11:33:57 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-08 11:33:57 -0400 |
| commit | bd029a10344e7cf27cf4bee123ca88ef84e73094 (patch) | |
| tree | 9bc971743bf66285ab81ce80b651d305e04ab8ff /wiki/Error-Codes.md | |
| parent | 0cb2a7ee0c6300415e4265cabb1f3007b8519c58 (diff) | |
| download | open-iov-bd029a10344e7cf27cf4bee123ca88ef84e73094.tar.gz open-iov-bd029a10344e7cf27cf4bee123ca88ef84e73094.zip | |
vgsp-sema: multi-page content rescue pins a whole CE push from RAM content (ISSUE-0001)
svc_rescue_try() substitutes exactly one candidate page and requires every
other page of the entry to resolve through svc_lookup_trusted(). For a
multi-page push whose pages have no translations yet that precondition can
never hold: the content scan finds the release-group page by content, but
the pages that need a candidate are exactly the ones missing from every
trusted source. That is the stalled-boot class named by SA-STALL (entry
va=0x120021db8, len=12816, release #39; 17-host-m84-r1.txt:841-842), where
the userspace pin stream was the only supplier of those translations.
Add svc_rescue_run_try(): once content has anchored one page of the entry
(release-group candidate from the matcher, or the verified window base),
read every page of the entry directly from the same signed page delta in
both physical directions, validate the assembled buffer exactly like the
single-page rescue (full method-stream parse + the channel's exact next
release), and only then pin every page of the run. A failed direction
pins nothing; a passed validation is content proof for every page. Wire it
into the svc_pb fast path, the hot-page scan and the descending RAM scan,
ahead of the unchanged single-substitution try.
This makes the pump able to consume a starved CE push with no watcher pins
and no pre-existing per-page translations; the watchers become pure
accelerators. New counter resc_run is printed when non-zero.
Evidence: ISSUE-0001, SA-STALL 3.2/3.4; 17-host-m104-r1.txt entry[38] and
17-host-m84-r1.txt rescue rejects.
Diffstat (limited to 'wiki/Error-Codes.md')
0 files changed, 0 insertions, 0 deletions
