summaryrefslogtreecommitdiffstats
path: root/kernel/include
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-11 22:17:15 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-11 22:17:15 -0400
commita7874aa9bebcdb469fd5f0a9beb4b1b18315d1a2 (patch)
tree2a9a56057097df9c7673b7e7477c2681d7dd5ba7 /kernel/include
parenta6016c2d66eeb477d37ad287074ba3f169438240 (diff)
downloadopen-iov-a7874aa9bebcdb469fd5f0a9beb4b1b18315d1a2.tar.gz
open-iov-a7874aa9bebcdb469fd5f0a9beb4b1b18315d1a2.zip
vgsp: GR data path - pre-publish bounce fill, engine-change proof, ipin-first data resolution
Two fixes and one diagnostic for the all-zero-results class (r89: smiley's 4 vadd launches reported GUEST GR LAUNCH OK yet every output word read 0): - gsp_phys_booter: copy the guest data pages into the bounce window BEFORE gsp_phys_rmcall_publish_locked() rings the doorbell. The fill used to run after the kick; the engine front end starts within ~7 ms, so the kernel could read the window before it was filled. - gsp_phys_booter: per-page checksums at copy-in, compared at copy-out; the copy-out log now reports 'N changed by engine'. An all-unchanged window after a reported completion is the front-end-ran/grid-never- dispatched signature (completion semaphores are front-end authored). The first 3 data (va,hpa,reloc) triples are logged per launch. - gsp_sema_service: svc_gr_data_fill resolves data pages through svc_ipin_lookup() first (guest-truth pins), falling back to svc_resolve_va, mirroring the pool resolver order; a wrong page here silently runs the kernel on zeros. First 16 resolved (va,pa,ap) triples are logged for post-mortem comparison against the guest's own mapping.
Diffstat (limited to 'kernel/include')
0 files changed, 0 insertions, 0 deletions