diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-02 07:10:28 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-02 07:10:28 -0400 |
| commit | 1cbe3d79d8f8d0bc81c81eecf3ca364ed3084f24 (patch) | |
| tree | a70ce7b7779193a4d1bf436ad0009fea97509752 /README.md | |
| parent | efb096bc8a888a3e9931ae8011976ef7b4a1f577 (diff) | |
| download | open-iov-1cbe3d79d8f8d0bc81c81eecf3ca364ed3084f24.tar.gz open-iov-1cbe3d79d8f8d0bc81c81eecf3ca364ed3084f24.zip | |
gsp-phys: P6a debug triggers resolve the guest page HPA at trigger time
Triggers 6 (W2G) and 7 (G2H) previously used page-table slots pre-built once
during the ladder's stage 3. A guest page's host physical address can change
between translations (observed 0x13a591000 -> 0x3b8318000 for the same GPA),
and a runtime PTE rewrite into an already-fetched 128-byte line is invisible
(no invalidate path), so the later write-direction trigger validated against
the wrong page and failed its data check.
Both triggers now translate at trigger time and run through the same
fresh-scratch-line path as forwarding, via a shared internal copy body; the
exported forwarding API is unchanged and still requires
gsp_phys_work_forward. A changed HPA is now an informational once-per-boot
note rather than a failure; the probe-pattern guard still refuses stale pages.
Trigger 8 and the stage-3 pre-built slots are unchanged.
Live (run p6w3): GUEST G2H COPY OK gpa=0x12423d000 hpa=0x56ab3a000;
GUEST W2G COPY OK with verify_ok=1; PTE selftest OK; guest SEEN_W2G; ladder
REAL COPY OK; clean latched release (5 power-domain locks, rebound, WPR2 down,
no rail cycles, pstore empty, same boot). The full smoke run hit the known
guest cuInit/WPR2-already-up wedge at cdt; the trigger path itself is green.
Diffstat (limited to 'README.md')
0 files changed, 0 insertions, 0 deletions
