|
| 1 | +# Phase-2 M9 Execution Log — PA + ZC combo (P1c) |
| 2 | + |
| 3 | +> 状态:✅ PASS(所有 G1-G3 + G6/G7 全过;G4 性能 observation 显示 combo 下 1000 短连存在 timeout 偶发,记为 follow-up F1) |
| 4 | +> 日期:2026-06-08 |
| 5 | +> 上游基础:M8 commit `add33a04a` |
| 6 | +
|
| 7 | +--- |
| 8 | + |
| 9 | +## 1. 摘要 |
| 10 | + |
| 11 | +`lib/Makefile` 同时启用 `FF_USE_PAGE_ARRAY=1` + `FF_ZC_SEND=1`,验证 M7+M8 两个独立功能在同一 build 下共存能力。**0 源码改动**,0 bounce,1 行 Makefile diff。 |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +## 2. 改动清单 |
| 16 | + |
| 17 | +| 文件 | 改动 | |
| 18 | +|---|---| |
| 19 | +| `lib/Makefile` | line 46 `#FF_USE_PAGE_ARRAY=1` → `FF_USE_PAGE_ARRAY=1`(M8 已启用 ZC,本次仅启用 PA) | |
| 20 | + |
| 21 | +**总计 1 文件 +1/-1** |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## 3. Gate 实测结果 |
| 26 | + |
| 27 | +### G1 — 编译 |
| 28 | + |
| 29 | +| 子项 | 结果 | |
| 30 | +|---|---| |
| 31 | +| `lib/ make clean && make` | exit=0 / 0 errors / 57 warnings (= baseline) | |
| 32 | +| `libfstack.a` | 6.55 MB(与 M7/M8 大致相同;增加的代码量在共享 .o 内) | |
| 33 | +| `example/ make` | 3 binaries 全产出 | |
| 34 | + |
| 35 | +### G2 — 主程序冒烟 |
| 36 | + |
| 37 | +| 子项 | 结果 | |
| 38 | +|---|---| |
| 39 | +| primary 起栈 12s ALIVE | ✓ | |
| 40 | +| `ff_mmap_init mmap 65536 pages, 256 MB.` | ✓(PA active) | |
| 41 | +| `tcp_bbr is now available` + `ipfw2 (+ipv6) initialized` | ✓(ZC stack)| |
| 42 | +| 0 SIGSEGV / panic / stub-called | ✓ | |
| 43 | + |
| 44 | +### G3 — 功能验收 |
| 45 | + |
| 46 | +| 子项 | 结果 | |
| 47 | +|---|---| |
| 48 | +| G3.2 单次 curl | HTTP 200 / Content-Length 438 / body = 真实 HTML | |
| 49 | +| G3.3 100x 短连 | ok=100/100 ✓ | |
| 50 | +| primary 1000+ 连接后干净退出 | ✓(SIGTERM 5s 内退出) | |
| 51 | + |
| 52 | +### G4 — 简易性能 observation(OQ-2 默认许可降级) |
| 53 | + |
| 54 | +| build | 1000 短连耗时 | 推算 conn/s | |
| 55 | +|---|---|---| |
| 56 | +| M8 (ZC only) | 6.768s | ~148 | |
| 57 | +| M9 (PA + ZC combo) | 23.65s | ~42(含 1 次 timeout) | |
| 58 | + |
| 59 | +**观察**:M9 combo 下 1000 短连耗时增大 + 偶发 timeout。可能原因: |
| 60 | +1. PA 256 MB mmap 池与 ZC fast-path 共用 mbuf 时,cluster refcnt 释放路径在密集短连下偶发延迟 |
| 61 | +2. 测试客户端 ssh round-trip 主导 — 但同一客户端测 M8 仅 6.7s,差异不能完全归因 ssh |
| 62 | + |
| 63 | +记为 **F1 follow-up**:M9-followup-issue。功能已 PASS,性能在 OQ-2 许可范围内。 |
| 64 | + |
| 65 | +### G5 — 文档 |
| 66 | + |
| 67 | +`phase2-M9-spec.md` + `phase2-M9-execution-log.md`;docs anchor + Summary scope 同 M6/M7/M8 模式。 |
| 68 | + |
| 69 | +### G6 — Lint |
| 70 | + |
| 71 | +0 errors。 |
| 72 | + |
| 73 | +### G7 — Commit |
| 74 | + |
| 75 | +本地英文 commit,不 push。 |
| 76 | + |
| 77 | +--- |
| 78 | + |
| 79 | +## 4. Bounce 计数 |
| 80 | + |
| 81 | +| # | 阶段 | 触发原因 | 修复 | |
| 82 | +|---|---|---|---| |
| 83 | +| – | – | – | – | |
| 84 | + |
| 85 | +**0 bounces**。 |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## 5. 已知遗留 / Follow-up |
| 90 | + |
| 91 | +| ID | 描述 | 计划 | |
| 92 | +|---|---|---| |
| 93 | +| **F1**(性能观察) | M9 combo 下 1000 短连 23.6s vs M8 ZC-only 6.7s(3.5x slowdown,偶发 timeout) | 推迟到 phase-5b 方法学复用阶段做 wrk/iperf 大并发剖析;本里程碑功能 PASS 即可 | |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## 6. Phase 进度 |
| 98 | + |
| 99 | +| Phase | 状态 | |
| 100 | +|---|---| |
| 101 | +| A. Spec | ✅ | |
| 102 | +| B. Research | ✅(合并入 §1) | |
| 103 | +| C. Code | ✅(1 行 Makefile) | |
| 104 | +| D. Review | ✅(self review,0 lint) | |
| 105 | +| E. Gate | ✅ G1-G3 + G6/G7 PASS;G4 observation only | |
| 106 | + |
| 107 | +**M9 整体:✅ PASS** |
0 commit comments