summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-20 12:32:54 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-20 12:32:54 -0400
commitc89e0fe1479d9cee0ee4996f5c5ca6a7ac31b34b (patch)
treee46cff575de706d138dc5448a2a07f772fe65cf3 /kernel
parentf896e6b1a5cb1bccd4a3161e21133d51a3030994 (diff)
downloadopen-iov-c89e0fe1479d9cee0ee4996f5c5ca6a7ac31b34b.tar.gz
open-iov-c89e0fe1479d9cee0ee4996f5c5ca6a7ac31b34b.zip
sema: revert the capture-site launch hold (opdef holds accumulated without expiry and wedged client init; keep the content-hash witness and the bound-expiry retry-forward)
Diffstat (limited to 'kernel')
-rw-r--r--kernel/gsp_sema_service.c29
1 files changed, 1 insertions, 28 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c
index 9b937e4..514fa1e 100644
--- a/kernel/gsp_sema_service.c
+++ b/kernel/gsp_sema_service.c
@@ -7853,34 +7853,7 @@ static void svc_qmd_accum(struct nv_vgpu_device *vgpu, struct svc_channel *ch,
if (gsp_phys_gr_forward_enabled() && trusted && !replay)
svc_gr_cand_capture(ch, st, recs, n, push, push_len,
st->push_va);
- else if (gsp_phys_gr_forward_enabled() && !trusted &&
- !replay && !gsp_cuda_bridge_enabled()) {
- /*
- * r351 (launch-lottery class): a complete QMD decoded
- * before the capture trust exists (the pin stream has
- * not reached this push page yet) used to fall to the
- * disabled bridge (a no-op), COMPLETE the pass, and
- * every later re-decode was replay-suppressed - the
- * launch never ran and the client read zeros
- * (victory_reduce first run: zero GR LAUNCH lines,
- * the immediate re-run green once the pins had
- * landed). Hold the entry instead: op_tr_pending
- * forces the pump to clear the replay suppression
- * and retry the decode, so the launch is captured as
- * soon as an injected pin arrives. The opdef hold
- * expiry still bounds it (a genuinely unforwardable
- * launch is released, never hung). replay=1 keeps
- * the original suppression: it means a prior pass
- * COMPLETED, i.e. the launch was already captured -
- * re-capturing would run it twice.
- */
- svc.op_tr_pending = 1;
- if (svc_gr_await_log < 64) {
- svc_gr_await_log++;
- pr_info("sema-gr: launch held (no capture trust yet) va=0x%llx push=0x%llx\n",
- st->push_va, push);
- }
- } else if (!replay || !gsp_phys_gr_forward_enabled())
+ else if (!replay || !gsp_phys_gr_forward_enabled())
gsp_cuda_bridge_launch(vgpu, ch->h_object, st->qmd,
st->qmd_dev_va, st->push_va,
recs, n);