diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-28 04:42:56 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-28 04:42:56 -0400 |
| commit | 23fc40666a29ec748890d64f2bed5b9ad26ee634 (patch) | |
| tree | 3b6a16ffdcea9f6d2c264a5b692ac736d0d3a37a /kernel/gsp_phys_booter.c | |
| parent | 916db0d5a81974c5799242c0df601ae5bbb5ebd6 (diff) | |
| download | open-iov-23fc40666a29ec748890d64f2bed5b9ad26ee634.tar.gz open-iov-23fc40666a29ec748890d64f2bed5b9ad26ee634.zip | |
vgsp: GL section capture + synthesized launch reaches the engine (SESSION 149 r888)
- M1.1a: preserve the bracketing release across the section-open reset; allow
hash-verified replay capture (exactly-once guard). First trusted pass now
captures the GL setup section (push=0x120010004, prog=0x121201b00,
rel=0x120001000, replay=0).
- M1.1b: per-channel ring scan 16->24 slices + put-triggered keep-alive.
- M2-S1: booter skips w48 Tier-1 when shadow_win0 is set; flush attaches the
observed LID payload as an inline record.
- Evidence (r888): 'qmd_word 48 page copied to window-0 shadow'; 'GR LAUNCH
submitted pages=5 shadow=1 qmdwin=0x108000'; FAULT-CAP code_src=win0,
code64 non-zero, FAULT_PDE count=0 (engine fetched the shadowed code).
- Remaining wall: SKEDCHECK06_REGISTER_COUNT + SKEDCHECK16_CTA_THREAD_DIM_ZERO
(synthesized QMD scheduling fields) -> bounded fail + SW release. Feature
gated by sema_gl_xlate (default off).
Diffstat (limited to 'kernel/gsp_phys_booter.c')
| -rw-r--r-- | kernel/gsp_phys_booter.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index 534a443..85bdb89 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -19665,7 +19665,18 @@ int gsp_phys_backend_guest_gr_submit(const struct gsp_phys_gr_submit *req, pg_va = pg->guest_va & ~(u64)(GSP_PHYS_PAGE_SIZE - 1); pr_info("vgsp-gr: page[%u] va=0x%llx hpa=0x%llx qmd_word=%u\n", i, pg->guest_va, pg->hpa, pg->qmd_word); - if (pg->hpa) { + /* + * SESSION 149 R15 (M2-S1): with the window-0 shadow path + * enabled, force the program page (QMD word 48) OFF the + * post-commit Tier-1 install. r801b proved that install is + * ineffective for a late GR page (the engine kept reading + * the empty guest page: CODEHASH h0=0, FAULT-CAP + * code_src=guest-hpa); skipping it lets the page fall to + * the win0 shadow copy + w48/49 rewrite line, which is the + * proven one. Every other page keeps its Tier-1 route. + */ + if (pg->hpa && !(pg->qmd_word == 48u && + gsp_phys_rmcall_gr_shadow_win0_value())) { ret = gsp_phys_rmcall_gr_map_va_locked(bar0, pg_va, pg->hpa, epoch); if (!ret) { |
