diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-11 04:59:29 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-11 04:59:29 -0500 |
| commit | f6184ac3fa8e4a8546bf2d7807be27d23751cc01 (patch) | |
| tree | 893838d0513bd96f1a96a1ccf4f20657658f46ba /debug/risc-v-gsp-rm-vm/tests/test_log_decode.py | |
| parent | 131d44e083925f35f842114b6f7b6db546f28368 (diff) | |
| download | open-iov-f6184ac3fa8e4a8546bf2d7807be27d23751cc01.tar.gz open-iov-f6184ac3fa8e4a8546bf2d7807be27d23751cc01.zip | |
- gsp_sema_service: never fabricate scrub completions. The guest
decrements its scrub-list size by the reported finish delta without
a guard, so a fabricated delta larger than the pending list
underflows it and the guest spins (~2^64) under the scrubber mutex
(r1766-r1768 X soft-locks and guest panics; root-caused by static
analysis + gdbstub decode of lastSeen/lastSubmitted/scrubListSize).
The release now mirrors the registered channel's own ring: count new
valid pushes (wrap-safe snapshot delta) and set the finish word
forward-only to the cumulative count - exactly the work the guest
submitted, never more. False ring-page registrations are detected
and skipped (a mis-registered ring page had its first GPFIFO entry
clobbered by an all-ones write). sema_scrub_ramp=0 keeps the legacy
all-ones release for A/B; the finish word is never all-ones with the
ledger enabled.
- gsp_rm_emulation/gsp_display_engine: gate the hSrcResource==0 -> alloc
parent event association behind ev_assoc (default 0) and keep strict
display-event posting behind disp_events_strict (default 0) - both
remain A/B knobs for the flip-event delivery fix.
- Live validation (r1769): 4/4 green boots, 0 panics, 0 wedges;
glprobe pixel=ff0000ff; gl_frames 500/500 non-black frames captured
to a 45 s 640x480 mp4 via pbuffer -> sysmem -> ivshmem.
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/tests/test_log_decode.py')
0 files changed, 0 insertions, 0 deletions
