From 221a8144c2049198120023725e3c35ca3fc69a56 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 28 Sep 2026 22:33:53 -0400 Subject: [PATCH] [Docs] (Disaggregated): sync stage progress and roadmap with the five-arm perf comparison and the cross-host hang blocker --- docs/Disaggregated/CURRENT_STAGE_PROGRESS.md | 25 ++++++++++++++++---- docs/Disaggregated/ROADMAP.md | 4 ++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md b/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md index 83a681f0..6de20c89 100644 --- a/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md +++ b/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md @@ -1,6 +1,6 @@ # 当前阶段:P12 — server 自己开窗口上屏 -> **更新 2026-09-25**。这一页只有摘要;带裁定编号的明细、余项清单、证据位置在 [`notes/p12/README.md`](notes/p12/README.md)(计划与交接 [`PLAN-P12.md`](notes/p12/PLAN-P12.md))。P12 审查后的定向主机与真机复测已完成;两个收官验收门仍未打。上一阶段 P7 已于 2026-09-23 完成。 +> **更新 2026-09-28**(含五臂传输性能对比,见 [`notes/perf-five-arm-20260928`](notes/perf-five-arm-20260928/README.md))。这一页只有摘要;带裁定编号的明细、余项清单、证据位置在 [`notes/p12/README.md`](notes/p12/README.md)(计划与交接 [`PLAN-P12.md`](notes/p12/PLAN-P12.md))。P12 审查后的定向主机与真机复测已完成;两个收官验收门仍未打。上一阶段 P7 已于 2026-09-23 完成。 ## 目标 @@ -17,10 +17,27 @@ Android 上的 server 应用自己开一个全屏窗口,把收到的渲染流 | 验收 A:同一台手机上用 FCL 以两个后端进游戏,杀掉 server 后干净报"设备丢失" | ❌ 未做 | | 验收 B:另一台电脑经 TCP 连手机进游戏,并记录链路数据 | ❌ 未做 | +## 性能现状(2026-09-28,Redmi 未定频交错 A/B) + +| 臂 | rd12 重负载 | openra 轻负载 | +|---|---|---| +| monolith | 131 fps | 101 fps | +| inproc | 176 fps(+34%) | 100 fps | +| spawn+shm | 178 fps(+36%) | 89 fps(−12%) | +| spawn+tcp localhost | 21–23 fps | 77 fps(−24%) | +| tcp localhost + `SPIN_US=2000` | 63.6 fps(2.9×) | — | +| tcp over Wi-Fi | hang,0 有效帧 | — | + +- inproc / shm 重负载比 monolith 快(run-ahead 并行 + 探针更少);轻负载只付固定握手成本。 +- tcp 慢的主因:present credit=1 串行等待 ~74% + futex 唤醒税;不是带宽。 +- **跨主机 TCP 在 `eglMakeCurrent`(控制面 seq 3)100% 挂死**(源码 bug,疑控制面帧重组 / 双 reader 竞态)——验收 B 的直接阻塞项;修好后 Wi-Fi 吞吐 19–22 MiB/s 仍使 rd12 上限 ~40–45 fps。 + ## 下一步 -1. 完成验收 B:另一台机器经 TCP 连 Redmi 入世界并记录 P6.5 必测数;再完成验收 A:FCL 同机 spawn、双后端入世界并验证杀 server 后的 device-lost。 -2. 收尾:写 `MG_Remote/CONTRACT-P12.md`、修门脚本里误导的一行输出、做一次收官审查。 -3. 之后按 [`ROADMAP.md`](ROADMAP.md):P8;P9 → P10 → P11。 +1. 修跨主机控制面 hang(`RunSession` 控制泵 / `ControlInbox` 读状态机;脚本 `tools/device_bench/disagg/wifi_hang_repro.sh` 等)。 +2. 打验收 B(另一台机器经 TCP 入世界)与验收 A(FCL 同机 spawn、双后端、杀 server 报 device-lost)。 +3. 收尾:写 `MG_Remote/CONTRACT-P12.md`、修门脚本误导的一行输出、收官审查。 +4. 零代码 knob A/B:`PRESENT_CREDIT=2`、shm 臂 server `SPIN_US` 降到 20–35、`SERVER_AFFINITY`;代码级:client doorbell 换 futex/eventfd、applier 自适应 spin、sendmsg 跨 Flush 合批。 +5. 之后按 [`ROADMAP.md`](ROADMAP.md):P8;P9 → P10 → P11。 **阻塞**:没有需要决策的事项。 diff --git a/docs/Disaggregated/ROADMAP.md b/docs/Disaggregated/ROADMAP.md index dfdef8aa..cfcb37d6 100644 --- a/docs/Disaggregated/ROADMAP.md +++ b/docs/Disaggregated/ROADMAP.md @@ -1,6 +1,6 @@ # 路线图(索引) -> **2026-09-25**:P0 到 P7 已完成;当前阶段 **P12**(server 自己开窗口上屏)审查后主机定向测试和真机七项复测已通过,FCL 与跨机 TCP 两项验收仍待完成。每个阶段的计划、验收结果、实测与报告在 `notes/<阶段>/`(点阶段名进入)。 +> **2026-09-28**:P0 到 P7 已完成;当前阶段 **P12**(server 自己开窗口上屏)审查后主机定向测试和真机七项复测已通过,FCL 与跨机 TCP 两项验收仍待完成(跨机 TCP 被控制面 hang 阻塞,见 [五臂性能对比](notes/perf-five-arm-20260928/README.md))。每个阶段的计划、验收结果、实测与报告在 `notes/<阶段>/`(点阶段名进入)。 ## 目标 @@ -32,7 +32,7 @@ client(跑应用的一方)与 server(跑驱动的一方)可以在**不 | [Ph](notes/p7/README.md) | server 能安全地接受外来连接:令牌、限额、坏数据不致崩溃 | 必需项 ✅(随 P7) | | [P3b / P4b](notes/p34b/README.md) | GLES 后端的深化与收尾 | 大部分 ✅,余项并行 | | [P7](notes/p7/README.md) | Vulkan 后端完整迁移;真机画面检查 36/36 通过 | ✅ 09-23 | -| [**P12**](notes/p12/README.md) | **server 自己开窗口上屏,client 不需要窗口** | **进行中**:审查后主机定向测试和真机七项复测通过;FCL / 跨机 TCP 验收待完成 | +| [**P12**](notes/p12/README.md) | **server 自己开窗口上屏,client 不需要窗口** | **进行中**:审查后主机定向测试和真机七项复测通过;FCL / 跨机 TCP 验收待完成;跨主机 hang 为阻塞项 | | [P8](notes/p8/README.md) | 把剩余的仿真路径挪到正确的一侧,补齐协议 | 待排 | | [P9](notes/p9/README.md) | 反向通道异步化(回读、写回不再同步等待) | 待排 | | [P10](notes/p10/README.md) | 同步对象、查询与帧节奏 | 待排 |