diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-20 10:09:53 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-20 10:09:53 -0400 |
| commit | ed91540a8d9bd3989c1d922db35d7733d6e9fdd9 (patch) | |
| tree | 55caa075067ed80f8d5bd969f1041c68aa74e7b0 /kernel/gsp_phys_booter.c | |
| parent | cafc460bab4cab32968a6656242f34f2dc392486 (diff) | |
| download | open-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.c | 15 |
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 |
