summaryrefslogtreecommitdiffstats
path: root/docs/03-architecture
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 13:12:06 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 13:12:06 -0400
commitbcaab155a1318373b6c3a4c83fbfe2d0dbf1f44e (patch)
tree6054797e3c7ed5d86f3f4dc77eae6ad45c518889 /docs/03-architecture
parent3dd883f43c325f942b25be1accad82c7b431520c (diff)
downloadopen-iov-bcaab155a1318373b6c3a4c83fbfe2d0dbf1f44e.tar.gz
open-iov-bcaab155a1318373b6c3a4c83fbfe2d0dbf1f44e.zip
vgsp: m91 - gsp_phys_rmcall_gr_ptr_guest: keep QMD pointer pairs at the guest VAs
The m90/m91 trap decoded the SM I-fetch failure precisely: GPC0/GPC1 TPC0 SM0 WARP_ESR ERROR=0x20 ADDR_ERROR_TYPE=0xb = MMU_NACK, PC=0x109880 (the rewritten window-0 shadow program VA). The FE reads the same small-PT line fine (the forwarded inline QMD in the qmdwin page is processed to CWD ACTIVE), so the SM walk is not using the channel/ladder VAS the shadow lives in - it appears to use the guest subctx page directory (instance SC_PAGE_DIRECTORY_BASE 0x10956b000), which maps the guest VAs the real client's captured QMD points at, and not our window. Add gr_ptr_guest: when set, the forwarded launch leaves the QMD pointer pairs (param w32/33, program w48/49, prefetch w8/w31) exactly as the guest driver wrote them (as the real driver's captured QMD carries), and only relocates the QMD page itself (qmdwin, a proven FE read). Shadows are still copied for logging but unused.
Diffstat (limited to 'docs/03-architecture')
0 files changed, 0 insertions, 0 deletions