From d02b8531472bc6c06e2a231c45ebf5cd3ecb6edd Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Sun, 11 Oct 2026 22:41:26 -0400 Subject: vgsp-gr: log the changed bounce page indexes at copy-out (m142 diagnostic) 8 changed pages x 4 passes for smiley vs 33 for victory's vadd - the indexes name the relocated range (bi >= 0x40 = the c-pointer output window 0x150000+) and discriminate engine-side partial dispatch from a guest write-back/read attribution failure. --- kernel/gsp_phys_booter.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'kernel/gsp_phys_booter.c') diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index e2c2989..2267702 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -17827,6 +17827,7 @@ gr_page_unmapped: */ if (req->n_data && boot_stage.rmcall_gr_bounce.pages) { u32 wbi, wrote = 0, changed = 0; + u32 chg[8] = { }; for (wbi = 0; wbi < req->n_data; wbi++) { u32 bi = (u32)((req->data[wbi].reloc_va - @@ -17842,14 +17843,23 @@ gr_page_unmapped: &boot_stage.rmcall_gr_bounce, bi); for (ci = 0; ci < GSP_PHYS_PAGE_SIZE; ci += 4) csum += get_unaligned_le32(src + ci); - if (csum != bounce_csum_in[bi]) + if (csum != bounce_csum_in[bi]) { + /* + * m142: which pages the engine touched. The + * indexes name the relocated VA (bi page of + * 0x110000); a c-range write is bi >= 0x40. + */ + if (changed < 8) + chg[changed] = bi; changed++; + } memcpy((u8 *)__va(req->data[wbi].hpa), src, GSP_PHYS_PAGE_SIZE); wrote++; } - pr_info("vgsp-gr: bounce copy-out: %u pages written back, %u changed by engine\n", - wrote, changed); + pr_info("vgsp-gr: bounce copy-out: %u pages written back, %u changed by engine (first bi: %u %u %u %u %u %u %u %u)\n", + wrote, changed, chg[0], chg[1], chg[2], chg[3], chg[4], + chg[5], chg[6], chg[7]); } poll = w1; if (bar0) -- cgit v1.2.3