summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/gsp_sema_service.c36
1 files changed, 9 insertions, 27 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c
index 4ba37d9..77c2315 100644
--- a/kernel/gsp_sema_service.c
+++ b/kernel/gsp_sema_service.c
@@ -11509,34 +11509,16 @@ static void svc_pump_channels(struct nv_vgpu_device *vgpu)
svc_counter_autoreg(vgpu, ch, n_gr);
svc_counter_flush_pending(vgpu, ch);
/*
- * FORENSICS-grv5 E1 (debug-gated): the fixed-total
- * build maps a rank's counter slot onto the same word
- * the push's REPORT_SEM release writes, so publish is a
- * structural no-op (cur=1 already) while the client
- * still waits - green m104/m141 had *every* slot in the
- * 0x20400f000 page reach 1 (13 releases + formula
- * publishes) before the client unblocked. Replicate
- * green's end state for channels whose slot is still 0:
- * write 1 once, forward-only, to the proof-gated
- * registration. Diagnostic only (sema_dbg); if the
- * client unblocks, the durable rule replaces this.
+ * FORENSICS-grv5 E1 (pub-mirror) was removed: SA-GATE
+ * (FORENSICS-grv7-gate) proved the forced write into
+ * the guest's counter word broke the guest's own
+ * state machine before ctx-init - mirror builds
+ * produced zero GR ring entries on every boot while
+ * non-mirror builds pushed (grv5 165; green 392/400).
+ * Never write a guest-visible word the guest did not
+ * ask for; read-only diagnostics (pub-info, gr-get-back)
+ * stay dbg-gated.
*/
- if (gsp_sema_dbg && !ch->engine_type &&
- ch->counter_pa && svc.counter_pub_dbg < 96) {
- u32 mcur = 0, mval = 1;
-
- if (!svc_read_ap(vgpu, ch->counter_pa,
- SVC_APERTURE_SYS, &mcur,
- sizeof(mcur)) && mcur == 0 &&
- !svc_write_ap(vgpu, ch->counter_pa,
- SVC_APERTURE_SYS, &mval,
- sizeof(mval))) {
- svc.counter_pub_dbg++;
- pr_info("sema-chan: pub-mirror h=0x%x rank=%u pa=0x%llx val=1 (was 0)\n",
- ch->h_object, ch->gr_index,
- ch->counter_pa);
- }
- }
/*
* H3 (FORENSICS-v2): the end-of-pass publish below is
* unreachable on the passes that early-`continue`