diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-25 14:19:26 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-25 14:19:26 -0400 |
| commit | 673e114ca3ade72c7f50f0b0d4bdac6e3ae36c04 (patch) | |
| tree | d64ab920ce56ffdedeb1398ac4429530b0174394 /tools/guest-diag/wall2 | |
| parent | 15e087e7d1f8bb02132b2e8d7b8a56dc142ff667 (diff) | |
| download | open-iov-673e114ca3ade72c7f50f0b0d4bdac6e3ae36c04.tar.gz open-iov-673e114ca3ade72c7f50f0b0d4bdac6e3ae36c04.zip | |
wall2 session 108: content-diff found 9 active driver pages (counter/staging semantics catalogued); the stuck loop's read is constant -> the sema is a static cell; next = bounded zero-cell sweep among the constant pages adjacent to the active set
Diffstat (limited to 'tools/guest-diag/wall2')
| -rw-r--r-- | tools/guest-diag/wall2/README-session77.md | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/guest-diag/wall2/README-session77.md b/tools/guest-diag/wall2/README-session77.md index 0356ce9..58ca3a4 100644 --- a/tools/guest-diag/wall2/README-session77.md +++ b/tools/guest-diag/wall2/README-session77.md @@ -967,3 +967,24 @@ durable (host RAM file writes = zero-cost, no poke_vidmem needed for sysmem). Failing that: content-diff the twins across a driver transition (the memdesc copy updates during submits; the copy that CHANGES is the backing). + +**35. Session 108: THE CONTENT-DIFF - 9 ACTIVE PAGES + THE CONSTANT-READ DEDUCTION.** +Page-hash diff over three +/-256KB windows (twins 0x1026ad000/0x12afba000, +stream 0x114e98000) across 15 s: NINE pages change: +0x102690000, 0x102698000 (440 word diffs - a buffer written continuously = +the push copy!), 0x1026a7000 (+0xe8: 934 -> 940 - a slow clean counter), +0x1026b3000 (+0x48: 32768 -> 1 transition), 0x1026b5000 (+0x244/+0x24c: +24987 -> 32765, two u16s at ~650/s), 0x1026c2000 (+0xe8: 232 -> 3, a +wrapping counter mod ~233), 0x1026e6000 (+0x18: 2764 -> 1930, +0x88/+0x90 +decreasing - countdowns), 0x114e6b000, 0x114e6e000. THE DEDUCTION: the +stuck loop's read value must be CONSTANT (its page shows no writes; the +GPU never advances the sema), so the auth-tag sema is a static cell - +likely zero - and the fix is to make the read NONZERO (advance it) at the +right page. None of the 9 changing pages is it (their cells move on their +own). NEXT: (1) restrict the search to CONSTANT pages among the CE +channel's candidate backing (the twins region pages that DID NOT change +but sit adjacent to the active set); (2) target the sema cell: the cell +that equals nextPut (small constant, e.g. 0) at the memdesc+off; sweep the +CONSTANT pages' zero u32s in a bounded ring around the twins/active set +with 1 (the sysmem write is free); (3) the durable service fold once +found. |
