summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-20 10:09:53 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-20 10:09:53 -0400
commited91540a8d9bd3989c1d922db35d7733d6e9fdd9 (patch)
tree55caa075067ed80f8d5bd969f1041c68aa74e7b0 /kernel/gsp_phys_booter.c
parentcafc460bab4cab32968a6656242f34f2dc392486 (diff)
downloadopen-iov-ed91540a8d9bd3989c1d922db35d7733d6e9fdd9.tar.gz
open-iov-ed91540a8d9bd3989c1d922db35d7733d6e9fdd9.zip
gr: single scheduling edge (pcas default 0) - fixes double engine execution; retire-wait tracked-total fix; sema acquire wait gate per-entry + C56F op semantics (opt-in); fill-shape decode diagnostic
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index 3fee456..75cba95 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -17661,7 +17661,20 @@ gsp_phys_gr_output_retire_wait(const struct gsp_phys_gr_submit *req,
*n_tracked = 0;
if (!req->n_data)
return 0;
- n_all = gsp_phys_gr_scan_pages(req, csum_in, n_tracked, NULL);
+ /*
+ * r343: scan_pages RETURNS the changed count and reports the tracked
+ * total through the out-param. The old call put the return (changed)
+ * into n_all while the tracker total went to *n_tracked, so the
+ * loop's `changed >= n_all` was `changed >= changed` - always true
+ * after the first scan (observed: "1/1 pages changed after 4 ms"),
+ * and the `!n_all` early-return also skipped the no-write settle
+ * when zero pages changed. Net effect: the copy-out shipped the
+ * bounce mid-ramp, so a cold engine (slowest store ramp) produced
+ * all-bad first runs (the matmul cold flake) and late stores could
+ * be dropped. Fix: tracked total into n_all; the content-stable
+ * rule below becomes the real settle bound.
+ */
+ (void)gsp_phys_gr_scan_pages(req, csum_in, &n_all, NULL);
/*
* RETIRE-WIT (r227): the r227 capture shows n_tracked far below the
* copy-in/copy-out rec counts for the same launch (4 tracked vs 1482