diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-21 06:17:49 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-21 06:17:49 -0400 |
| commit | 3077c18f3acc20c0b92de7a8337c175c14986b94 (patch) | |
| tree | c85019468bf8976659a377a369dc6501ef71f06d /debug/risc-v-gsp-rm-vm/ghidra/MarkGreenEyeHits.java | |
| parent | 4083a969bde1a39bf23f6cde0f61cace28a8d127 (diff) | |
| download | open-iov-3077c18f3acc20c0b92de7a8337c175c14986b94.tar.gz open-iov-3077c18f3acc20c0b92de7a8337c175c14986b94.zip | |
sema: r407 drop-stale must not deliver a held entry's releases on a rewind (only consumed entries are stale)
The r406 inplace_scale repro root cause: the H2D copy's operand
translation was unresolved (memcopy rc=-2) and the entry was held with
its release withheld (correct); a pin-batch rewind then re-opened lower
indices (83) while the held entry (91) sat ahead, and the unconditional
svc_opdef_drop_stale treated 91 as an already-consumed entry and applied
its withheld release at 104955.751. The copy itself only executed at
104957.418 - the client raced past its blocking cudaMemcpy, launched,
the launch's copy-in read the stale buffer (previous run's data) and
the copy landed after the launch's copy-out: wrong results with a
healthy-looking 32/1032 changed and no classifier firing.
An entry is only 'passed' if the ring consumed it (slot_done_epoch);
gate the stale drop on svc_replay_seen so a rewind can never deliver a
still-held entry's release early.
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/ghidra/MarkGreenEyeHits.java')
0 files changed, 0 insertions, 0 deletions
