summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gsp_rm_boot_img.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 10:59:09 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-23 10:59:09 -0400
commitbe544f65b93095a8713256490edfc90299a173f3 (patch)
treea87ea4d01f6dbc15362b194dbfa77872a2d180cc /kernel/gsp_phys_gsp_rm_boot_img.h
parentcf80189b7e893bdc38d1e1dae122e0bbbb2d3295 (diff)
downloadopen-iov-be544f65b93095a8713256490edfc90299a173f3.tar.gz
open-iov-be544f65b93095a8713256490edfc90299a173f3.zip
vgsp-sema r543: hold a GR forward with a partially-resolved argument set (bounded)
The r542 matmul failure was the NOWRITE wedge: the fill resolved 969 pages but 2 of 13 high argument bases resolved 0 pages; with gsp_phys_gr_fill_hold=0 the fill is log-only for dropped pages and only the aggregate all-arguments-unresolved rule holds, so the launch forwarded, the engine fetched the QMD (qmd_rel=0x600df00d, engine fetch OK) and wrote nothing (retirement wait 0/1032, NOWRITE-AMBIGUOUS fe_esr=0x80000000, trap=0x80010250); the client read zeros (MATMUL bad=65536 csum=0). Fix: the fill now records gr_arg_partial when an ARGUMENT candidate page was dropped while other arguments resolved. svc_gr_request defers such a launch once per push VA (SVC_GR_ARG_DEFER_MS window, svc_gr_arg_defer_ok latch) through the existing bounded busy-defer retry, so the pins can land before the engine reads the operands. A genuinely junk pointer word pays the window once per push, not per retry; after the window the historical forward stands, so the guard can only delay a launch, never hang it.
Diffstat (limited to 'kernel/gsp_phys_gsp_rm_boot_img.h')
0 files changed, 0 insertions, 0 deletions