diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-24 00:49:14 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-24 00:49:14 -0400 |
| commit | c88a7f6b2658ea2d49b67cd63179a5a1fbce3663 (patch) | |
| tree | ae59e33ee4aadbdcac2871355c5d2923e21282ec /tools/cuda-bridge/bridge_selftest.py | |
| parent | ddc0339729687651f82f8641535cfea782fa89ba (diff) | |
| download | open-iov-c88a7f6b2658ea2d49b67cd63179a5a1fbce3663.tar.gz open-iov-c88a7f6b2658ea2d49b67cd63179a5a1fbce3663.zip | |
vgsp-sema r588: copy-pending sees a CE ring's undecoded backlog (stream-order)
The r568 copy-pending guard in svc_gr_request could only see decoded
state: an active entry hold (svc_copy_pending) or a recorded device-write
target (svc_dstpend_overlap). A CE copy entry sitting BEHIND a
translation-held entry in the ring has neither - it was never decoded -
so copypend read 0 while the ring still owed that copy. A GR launch
decoded in that window captured the copy's destination before its data
landed: r587 mail VADD computed c = a + 0 (h_c == h_a exactly: bad =
32735 = 32768 - 33, the count of i where b[i] == 0; csum = sum(a) =
8139264), because the d_b H2D bigcopy executed after the launch's
copy-in.
Extend svc_copy_pending() (now per-device) to also report a CE channel
whose ring has submitted-but-unconsumed entries (last_get != put_prev -
the same outstanding relation the completion publish uses). With the
r507o CE-before-GR pass order the CE channel's write-back for the pass
has already run when the GR decision reads it, so the guard defers
(bounded by the existing defer/expiry machinery) until the ring drains
and the re-fill captures the post-copy pages.
Diffstat (limited to 'tools/cuda-bridge/bridge_selftest.py')
0 files changed, 0 insertions, 0 deletions
