planP4E4 root-cause evidenceapproved2026-09-18

R8-Fix-5:Pmd3 Pump 公平调度与有界关闭修复方案

根因

Build 66 真机显示 ActivityTrace source presentation 连续,但 host receive 出现 52 次 >1s 空洞、最大 5.24s;1s Sample Publisher P50 退化到 2.59s。独立最小复现进一步证明 Pmd3Subscription._pump() 在 fast upstream 下可以在 consumer 首次调度前先 delivered 完 576 条,且 200000 条 burst 可连续占用 event loop 约 411ms,因此主因收敛为 pump/filter 缺少调度公平性。

修复主线

禁止项

不得修改 FPS/FrameTime/P95/Jitter/Refresh Rate 公式,不得回退 Source Owner,不得扩大 queue 或延长产品超时掩盖问题,不得补 0/60/16.67,不得 per-event sleep(0)。

E2 核心门禁

576 fast-upstream: consumer 必须在 producer delivered 完 576 前执行
pumpMaxBurstCount <= 32
200000 burst throughput >= 20k events/s
120Hz mixed: heartbeat P95 gap <150ms, Max <500ms
1s sample publisher: P95 <=1.25s, Max <=2.0s
normal Stop: terminal stopped 在 collector soft deadline 内
timeout path: partial + 精确 reason + terminal stopped

Build 67 E4

consumed/delivered >=99%
undrainedAtClose <=1
dropped=0
host gap >1s =0
host gap P95 <250ms / Max <500ms
heartbeat P95 <200ms / Max <500ms
FPS/FrameTime/P95/Jitter/Refresh valid ratio >=95%
final stopped <=8s target
Session complete
ingressUndrainedAtSeal=0
no graceful_stop_timeout

完整实现细节、T1-T14 测试与一键任务描述见站点 devlog Canonical 文档。