diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-25 14:18:04 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-25 14:18:04 -0400 |
| commit | 15e087e7d1f8bb02132b2e8d7b8a56dc142ff667 (patch) | |
| tree | 6d56dd4ec08cb92d90fde2589ae63764bd646e9d /tools/guest-diag | |
| parent | 7f074eb89a2d312efa6008c137ca529364da1682 (diff) | |
| download | open-iov-15e087e7d1f8bb02132b2e8d7b8a56dc142ff667.tar.gz open-iov-15e087e7d1f8bb02132b2e8d7b8a56dc142ff667.zip | |
wall2 session 107: FB assist sweeps negative (320+1024 cells; perf still 23.13%) - memdesc read not FB-sourced; the byte-identical stream twins (0x1026ad000/0x12afba000) are the memdesc-backing candidates for the next assist sweep
Diffstat (limited to 'tools/guest-diag')
| -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 152c3d6..0356ce9 100644 --- a/tools/guest-diag/wall2/README-session77.md +++ b/tools/guest-diag/wall2/README-session77.md @@ -946,3 +946,24 @@ TRANSFER-TIME properties (not the VA walk); (2) or a guest perf hardware watchpoint on the driver's BAR1 ioremap VA + the (unknown) memdesc offset; (3) or the service-side broad assist: increment a RANGE of plausible FB sema cells periodically (blind but bounded), watching for the flip. + +**34. Session 107: FB ASSIST SWEEPS NEGATIVE - THE READ IS NOT FB-SOURCED; THE TWINS ARE THE NEXT TARGET.** +Two bounded FB "sema assist" sweeps (distinct values per cell, +0x40000000|idx): (a) the walked page 0x660b00..0x661000 (320 cells) - no +flip; (b) the CE-channel allocation cluster 0x8f000..0x90000 (1024 cells, +where the registered userds live) - no flip; perf re-confirmed +channelReadChannelMemdesc 23.13% (the loop still runs). CONCLUSION: the +memdesc read does NOT come from the FB shadow the CPU can poke - the +transfer's SHADOW_INIT must read the memdesc through a path that bypasses +these bytes, or the memdesc backing is SYSTEM memory via an unknown VA. +NEXT (one-minute test): the STREAM TWINS - pa 0x1026ad000 and +0x12afba000 hold BYTE-IDENTICAL copies of the CE method stream (verified at ++0x7c0/+0x880: same 0x68000000 finish marker area, same 0x200120a9/9c +methods) - one of them is very likely the memdesc BACKING in sysmem (the +driver copies the same stream per channel/boot). Sweep BOTH twins' +stream-area pages (reuse the assist code; 1 page each) and watch for the +flip; if it flips, bisect the winning page to the sema cell and make it +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). |
