summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/wall2/wall2_resolver6.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-13 11:30:46 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-13 11:30:46 -0500
commite1eac3685d6c4208ce7e47bd621e31b76e194811 (patch)
tree0ae623659151812ef9fcc55b83267452fbd7ecf9 /tools/guest-diag/wall2/wall2_resolver6.py
parent42a1c00e335f1f9dc41e82f512f268c97363b186 (diff)
downloadopen-iov-e1eac3685d6c4208ce7e47bd621e31b76e194811.tar.gz
open-iov-e1eac3685d6c4208ce7e47bd621e31b76e194811.zip
vgsp: content-gated FB-shadow push rescue for recycled client pushes (eng20, end-to-end validation pending)
The direct-GL client's one-shot 59,556 B setup push (VA 0x4001004) reads zero at decode time: the live page is recycled before our decode runs, so no C597 bind attaches for h=0xbeef0100. The rescue recovers the push body from the FB shadow with strict content gates: reject fill windows (require >=2 multi-word INC runs + >=8 distinct headers), scan at the push VA's in-page offset (0x4041004 starts 4 B into a page), and log the channel handle. eng20 refuted the unregistered-VAS hypothesis: the payload pages DO walk via VAS 0xbeef0300 (0x4000000->pa=0x342ead000, 0x4001000->pa=0x342eae000, consistent delta). Also found: sema_gl_xlate (absent from params-r1780; default 0) gates every C597 section-recognition site - with it on, the lane produced its first C597 captures (127x c305, 20x c307). Validation cyclic c308 (guest init panic) / c309 (QGA wedge) blocked; no observation yet. Unvalidated end to end.
Diffstat (limited to 'tools/guest-diag/wall2/wall2_resolver6.py')
0 files changed, 0 insertions, 0 deletions