diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 17:32:20 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 17:32:20 -0400 |
| commit | 3ba89790de6bde0efec10c25be5e5254fe10014e (patch) | |
| tree | f39a85ebb02cff6eff38a66c1e2c08b300c4d779 /tools/rmtool/src/nv2080.c | |
| parent | f7c626f1bcb1a031372c855db3e9e9cb545085a4 (diff) | |
| download | open-iov-3ba89790de6bde0efec10c25be5e5254fe10014e.tar.gz open-iov-3ba89790de6bde0efec10c25be5e5254fe10014e.zip | |
vgsp-sema r566: note a held entry's unexecuted device-dst copies for the launch guard
Root cause (r567/r568, deterministic): the mail client's b H2D COPY op was
COLLECTED but never attempted while its entry was held for another operand;
the VADD launch's copy-in ran 0.6 s BEFORE the copy executed, so the engine
read b = 0 and computed c = a + 0 (the readback page held a's values
{0.0,0.5,1.0,1.5} vs the correct {0.0,0.75,1.5,2.25}). The r541 guard only
saw copies that FAILED with -ENOENT (svc_dstpend_note at the failure site),
so a merely PENDING copy was invisible to it.
svc_dstpend_note_ops() runs after each svc_run_ops() call in
svc_decode_stream whenever svc.op_tr_pending is set: every collected
device-dst copy whose per-op done bit is not set (i.e. did not execute this
pass or earlier) gets its destination noted. The launch guard then defers
until the copy runs (the copy's success path clears the record), bounded by
the existing dstpend TTL + busy-defer + 15 s cap machinery.
Diffstat (limited to 'tools/rmtool/src/nv2080.c')
0 files changed, 0 insertions, 0 deletions
