summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_sema_service.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_sema_service.c')
-rw-r--r--kernel/gsp_sema_service.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c
index 79faf61..0217594 100644
--- a/kernel/gsp_sema_service.c
+++ b/kernel/gsp_sema_service.c
@@ -13405,15 +13405,16 @@ static void svc_gr_data_fill(struct nv_vgpu_device *vgpu)
}
}
/*
- * m170 fix: never CLEAR the per-argument stall signal set above. The
- * original aggregate condition only held a launch when NO high
- * argument resolved at all; one resolved kernel operand masked every
- * unresolved one (r175: matmul cand[5]/[6] probe=none held fail-closed
- * per-arg, then this line reset the flag because cand[13]/[14] had
- * pins - the launch queued with two stale operands, bad=65536).
+ * m170 revert: the per-argument fail-closed signal is kept as
+ * DIAGNOSTIC only (the held fail-closed line above identifies the
+ * exact unresolved operand), but the launch-level stall keeps the
+ * historical aggregate semantics: a fresh client's launch stream
+ * carries BENIGN 0-page candidates (junk pointer words that never
+ * translate), and persisting the per-arg flag held mail's first
+ * launch forever (r176). Only a launch with NO resolvable high
+ * argument holds for the bounded m150 retry.
*/
- if (n_arg_hi > 0 && n_arg_hi_res == 0)
- svc_gr_data_stalled = true;
+ svc_gr_data_stalled = (n_arg_hi > 0 && n_arg_hi_res == 0);
if (svc_gr_data_stalled)
pr_info("vgsp-sema: svc-gr data fill: %u candidate ptrs, %u pages resolved; %u high argument ptr(s), %u resolved -> launch held for a bounded retry\n",
n_cand, svc_fwd_req.gr_n_data, n_arg_hi, n_arg_hi_res);