summaryrefslogtreecommitdiffstats
path: root/tools/guest-diag/wall2/README-session77.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-25 14:18:04 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-25 14:18:04 -0400
commit15e087e7d1f8bb02132b2e8d7b8a56dc142ff667 (patch)
tree6d56dd4ec08cb92d90fde2589ae63764bd646e9d /tools/guest-diag/wall2/README-session77.md
parent7f074eb89a2d312efa6008c137ca529364da1682 (diff)
downloadopen-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/wall2/README-session77.md')
-rw-r--r--tools/guest-diag/wall2/README-session77.md21
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).