FX telem: Katamari results + campaign verdicts (FX-16/FX-07 wontfix)

Five-title census complete. FX-16 killed on collapsed per-site saving
(pins ride through tails, short blocks skip the event check, dynamic
allocator near-empty at tails => 0.05-0.3% EE-thread ceiling vs high
emitter complexity). FX-07 killed on five real-workload eviction nils.
FX-03 closed applied via FX-03a. FX-15 iTLB A/B is the remaining item.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Brian Degenhardt
2026-07-13 15:55:14 -07:00
co-authored by Claude Fable 5
parent d6240e432f
commit 0ee4ab142c
+107
View File
@@ -50,6 +50,113 @@ Retroid Pocket Flip2 (SD865-class) — `root@192.168.4.42`, deployed via
4. Collect per title: `ssh root@192.168.4.42 'grep JITTELEM /storage/.config/YAPS2/logs/emulog.txt'`
— the emulog restarts per launch, so grab (or let Claude grab) after each title.
## Title results
### Baldur's Gate: Dark Alliance (user session, 463s, clean shutdown)
- **SMC: real-SMC is ZERO** (0 seqs ever emitted). The entire manual tax is
the `contains_thread_stack` heuristic class: the SAME 23 seqs / 207 words
as SotC (kernel 0x81/0x80001 pages — universal, game-independent),
running 2.02.7M w/s sustained; session totals 101M checks / 996M words
(avg 2.15M w/s, 9.9 words/check) ≈ ~18M insns/s ≈ ~0.6% of an A77.
**Reframe for FX-03**: these blocks are excluded from manual_counter
promotion so they re-check forever — the fix menu includes handling the
ts class specifically (promotion/narrower checks), not just NEON widening.
- **brshape**: 12,888 blocks | fwd-cond 50.8% | FUSABLE plain 6.9% +
likely 0.8% + diamond 41 | killers: ctrl 1702, sys 11, xpage 7.
Nearly identical shape to SotC — fusable share looks like a ~7% cross-title
constant.
- **alloc**: EE live-evict 1 (noise), IOP 0, ee-neon LIVE 5, mVU VF 16/3925
(0.4%), VI 180. Second real-workload nil.
Raw log archived in the session scratchpad (`fx-telem-logs/bgda-2310.emulog.txt`).
### R&C Up Your Arsenal (user session, 349s, clean shutdown)
- **SMC: negligible on this title.** Real-SMC bursty 00.024M w/s (592k
checks / 3.06M words total; 3,143 seqs / 19k words EMITTED — plenty of
manual pages get compiled, they're just cold). ts class only 0.05M w/s
(110 seqs — a bigger set than BG:DA/SotC's 23, but ~40× colder).
Combined ≈ 0.02% of an A77. **Key insight: the ts block SET is
universal but its RATE is not** — it tracks kernel/scheduler pressure
(BG:DA 2.4M w/s, SotC ~0.31M, UYA 0.05M).
- **brshape**: 42,555 blocks | fwd-cond 43.9% | FUSABLE plain 4.5% +
likely 0.7% + diamond 75. Cross-title fusable range now 4.57.7%.
- **alloc**: EE 0, IOP 0, ee-neon LIVE 0, mVU VF 116/31,829 (0.36%),
VI 1,477. Third real-workload nil.
Raw log: `fx-telem-logs/uya-*.emulog.txt` (session scratchpad).
### Shadow of the Colossus (user session, 576s incl. boss battle, clean shutdown)
- **SMC**: the one title so far with REAL manual-SMC execution — steady
0.150.18M w/s (totals 23.4M checks / 123.5M words, avg 0.21M w/s over
3,338 seqs, 5.3 words/check) + ts steady 0.33M w/s (104 seqs / 805
words, 10.8 words/check). Combined ≈ 0.54M w/s ≈ 0.14% of an A77.
- **brshape**: 59,178 blocks | fwd-cond 47.5% | FUSABLE plain 7.6% +
likely 0.9% + diamond 73 — confirms the smoke.
- **alloc**: EE 1, IOP 0, ee-neon LIVE 0, mVU VF 51/10,031 (0.5%), VI 233.
### Burnout 3: Takedown (user session, 616s, clean shutdown)
- **SMC: mild** — the WaitLoop-history title is NOT SMC-hot at runtime:
real-SMC 120 seqs / 1,205 words emitted, avg 0.011M w/s; ts 0.096M w/s.
Combined 0.107M w/s ≈ 0.03% of an A77.
- **brshape**: 50,207 blocks | fwd-cond 46.3% | FUSABLE plain 5.4% +
likely 0.1% (B3 barely uses branch-likely) | its >32 bucket is the
largest of any title (8,070).
- **alloc**: EE 0, IOP 0, ee-neon LIVE 3, mVU VF 265/74,408 (0.36%,
94 dirty), VI 1,838 — heaviest mVU workload yet, same ~0.4% VF rate.
### Katamari Damacy (user session, 102s, clean shutdown — ran ON the FX-03a binary)
- **SMC: real-SMC ZERO** (0 seqs ever emitted); ts class steady 0.881.02M
w/s (totals 9.41M checks / 75.7M words, avg 0.89M w/s, 8.0 words/check) —
2nd-highest ts rate after BG:DA. On the FX-03a emission (~1.3 insns/word)
that's ~1.2M insns/s ≈ **0.04% of an A77** — confirmation the fix landed
where it matters on a second heavy-ts title.
- **brshape**: 10,920 blocks | fwd-cond 39.9% | FUSABLE plain 5.1% +
likely 0.7% + diamond 25 | killers: ctrl 1,415, sys 43, xpage 7.
- **alloc**: EE 0, IOP 0, ee-neon LIVE 0, mVU VF 417/25,464 (1.6%,
63 dirty), VI 2,161. Fifth real-workload nil on every EE/IOP channel.
### FX-03 five-title table (avg session words/s)
| title | real-SMC | ts (kernel pages) | combined | % of one A77 (@7 insn/word, pre-FX-03a) |
|---|---|---|---|---|
| BG:DA | 0 | 2.15M | 2.15M | ~0.6% |
| Katamari | 0 | 0.89M | 0.89M | ~0.25% |
| SotC | 0.21M | 0.33M | 0.54M | ~0.14% |
| Burnout 3 | 0.011M | 0.096M | 0.11M | ~0.03% |
| UYA | 0.009M | 0.05M | 0.06M | ~0.02% |
Only BG:DA clears the 1M-w/s bar, and it does so ENTIRELY via the
contains_thread_stack heuristic class. FX-03a (618fe597c) cut the per-word
cost ~6× for all rows; BG:DA re-run and the Katamari row above are on the
new emission.
Raw logs: `fx-telem-logs/*.emulog.txt` (session scratchpad).
## Campaign verdicts (2026-07-12 eval)
- **FX-03 → applied** (618fe597c, FX-03a): reframed from "NEON-widen for
SMC-heavy titles" to "kernel-page heuristic tax"; hoisted-base Ldp/Ccmp
chain took it from ~79 to ~1.3 insns/word. User-validated on BG:DA
(behaviorally transparent, 0 discards) and Katamari.
- **FX-16 → wontfix**: static fusable pool thin (plain 4.57.7%, diamond
~0) and the per-site saving collapsed — pins ride through tails, short
blocks already skip the event check, EE dynamic-allocator state at tails
is near-empty. Est. 0.050.3% of EE-thread insns vs high emitter
complexity. Reopen only if RK3562 becomes binding AND an exec-weighted
counter shows fusable sites disproportionately hot.
- **FX-07 → wontfix**: eviction never fires in real workloads (EE 01,
IOP 0, NEON LIVE 05 across five titles); mVU VF 0.361.6% with tiny
dirty subset, not worth an ABI bump. Footnote: VI is the only churning
channel (57× VF) — future mVU perf work should look at VI pool sizing,
not eviction policy.
- **FX-15 → pending iTLB A/B** (same binary, `YAPS2_NO_THP=1` toggle,
fan pinned).
## Smoke result (SotC gameplay savestate, 75s, 2026-07-11)
**FX-03 bar MET on the first title**: sustained 0.781.49M manual words/s