diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-11 22:17:15 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-11 22:17:15 -0400 |
| commit | 3530fb6ee20d514eddb0e21645abddf512059367 (patch) | |
| tree | a44a669cd514a3edabb6d0ead9286c9bef13cc1e /docs/10-post-1.0 | |
| parent | 7de0cfd365e9c8b9fa8385c5cde60bbbbb7a3ddb (diff) | |
| download | open-iov-3530fb6ee20d514eddb0e21645abddf512059367.tar.gz open-iov-3530fb6ee20d514eddb0e21645abddf512059367.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 'docs/10-post-1.0')
0 files changed, 0 insertions, 0 deletions
