summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_sema_service.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-18 12:00:52 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-18 12:10:03 -0400
commit04aad03adc45683d03fe1451b8f234061e6b88ff (patch)
treebd354b50006a57bf54a302ba6a086fdca137f902 /kernel/gsp_sema_service.h
parent2658fedd556f872f11dd3aeefa88ff6eb76c5342 (diff)
downloadopen-iov-04aad03adc45683d03fe1451b8f234061e6b88ff.tar.gz
open-iov-04aad03adc45683d03fe1451b8f234061e6b88ff.zip
vgsp: fail4 discrimination tooling - copy-out page witnesses + full-boot bigcopy resolution budget
Four guest CUDA clients fail all-bad while four pass; the aggregate counters cannot separate 'engine result never produced' from 'produced but written to a different guest page than the client's read resolves'. Add the two per-page witnesses that correlate the write side with the read side: - gsp_phys_gr_copyout_dump (booter, default 1): per-changed-page OUT-PAGE-WIT va=<device VA> hpa=<guest PA written> first8/last8=<bytes shipped>, bounded 12 pages per launch, plus one RELOC-CENSUS line per launch (gaps vs late-resolved words vs late pages). - sema_bigcopy_log (sema service, default 24, was a hardcoded per-boot budget): the svc_copy large-copy proof already logs both operands' resolved VA -> pa/aperture/provenance and the first 16 bytes each side; raising the budget past the boot's head makes the failing clients' H2D/D2H resolutions visible. Discrimination test for the next cycle: same device VA on OUT-PAGE-WIT (copy-out HPA) and sema-bigcopy (D2H source pa) with different PAs proves the produced-but-misplaced class; equal PAs redirects to the readback content/engine-input path. (cherry picked from commit 78ea8b7807231ac418a17b85c29ed1845e1b0062)
Diffstat (limited to 'kernel/gsp_sema_service.h')
-rw-r--r--kernel/gsp_sema_service.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/gsp_sema_service.h b/kernel/gsp_sema_service.h
index 95f9a4e..4c9042a 100644
--- a/kernel/gsp_sema_service.h
+++ b/kernel/gsp_sema_service.h
@@ -304,6 +304,14 @@ extern bool gsp_sema_pool_hold_fresh;
extern bool gsp_sema_copy_dst_pin_guard;
/*
+ * COPYWIT fail4: per-boot line budget for the sema-bigcopy resolution
+ * witnesses (svc_copy's large-copy VA -> pa proof). Raise it for a
+ * discrimination cycle so the failing clients' H2D/D2H resolutions are
+ * visible; 0 disables the lines.
+ */
+extern unsigned gsp_sema_bigcopy_log_max;
+
+/*
* F1-b: authorship gate for the GR completion release the forwarded launch's
* poll waits on. When on (default), a RAM-sweep release whose VA equals the
* in-flight forward request's gr_rel_va is deferred (skipped, not applied)