@@ -708,3 +708,44 @@ q2 决定的范围(来自 plan.md §1.5):
708708| 偏差 8:边缘子系统 5 个全部 0 differ | spec 05 §2.4 列 5 子系统作 P3 任务,M4 实测 cp -af 15.0 vendor 后** 全部 0 differ + 0 only-15** 。原因:netgraph/netpfil/netipsec/bsm/ddb 都在 FF_NETGRAPH/FF_IPFW/FF_IPSEC 等可选特性宏控制下,默认编译路径不含这些,所以 fstack 历史无核心改造。M5 阶段如启用可选特性宏,需补充 fstack delta 重应用 |
709709| 修订后影响 | M4 完成 22 任务(5 cp + 11 真实修复 + 1 P0 verify + 5 边缘 cp);G-M4 严格 Gate 一次通过(DP-M4-3=A 严格尺度),libfstack.a 5.2M / 192 .o / 0 errors / 0 lints;M5 范围明确:(a) spec 06 9 用例 runtime 验证;(b) 编译矩阵 + 跨平台;(c) FF_IPFW/FF_NETGRAPH/FF_IPSEC 可选特性下编译验证;(d) 性能基线 |
710710| 校验 | ` read_lints freebsd/ + lib/ ` 返回 0 diagnostics;` cd lib && make clean && make ` 全量重编 0 errors / 0 warnings / Exit 0;` diff -rq freebsd-src-releng-15.0/sys/{bsm,ddb,netgraph,netpfil,netipsec} f-stack/freebsd/{bsm,ddb,netgraph,netpfil,netipsec} ` 全部 0 differ |
711+
712+ ### 6.5 M5 任务清单(最后里程碑:tools/ + example + spec 06 验收 + 性能基线 + 项目结案)
713+
714+ | 阶段 | 任务 ID | 文件/范围 | 优先级 | 状态 | 完成方 | 完成日期 |
715+ | ---| ---| ---| ---| ---| ---| ---|
716+ | M5 | T-m3-pending-vendor-verify | freebsd/netinet/{in_pcb,tcp_input,tcp_syncache,tcp_usrreq}.c | P0 | ✅ 已 vendor cp 完成(M3/Phase 5b 隐式完成);M5 强制重编 0 errors | m5-leader | 2026-05-29 |
717+ | M5 | T-libffcompat | tools/compat/ → libffcompat.a | P0 | ✅ 22 .o / 301K 一次产出 | m5-leader | 2026-05-29 |
718+ | M5 | T-tools-ifconfig | tools/ifconfig/ | P0 | ✅ 24M 二进制 | m5-leader | 2026-05-29 |
719+ | M5 | T-tools-route | tools/route/ | P0 | ✅ 24M 二进制(rib/nexthop 关键回归点) | m5-leader | 2026-05-29 |
720+ | M5 | T-tools-ipfw | tools/ipfw/ | P0 | ✅ 24M 二进制 | m5-leader | 2026-05-29 |
721+ | M5 | T-tools-arp | tools/arp/ | P0 | ✅ 24M 二进制 | m5-leader | 2026-05-29 |
722+ | M5 | T-tools-ndp | tools/ndp/ | P0 | ✅ 24M 二进制 | m5-leader | 2026-05-29 |
723+ | M5 | T-tools-ngctl | tools/ngctl/ | P0 | ✅ 24M 二进制 | m5-leader | 2026-05-29 |
724+ | M5 | T-tools-netstat | tools/netstat/ | P0 | ✅ 25M 二进制 | m5-leader | 2026-05-29 |
725+ | M5 | T-tools-verify-9 | tools/{libutil,libmemstat,libxo,libnetgraph,sysctl,top,traffic,knictl} 9 verify-only | P3 | ✅ 9/9 编译通过 | m5-leader | 2026-05-29 |
726+ | M5 | T-gcc12-pragma-fix | tools/{libnetgraph/msg.c, ngctl/write.c}:` __GNUC__ >= 13 ` → ` >= 12 ` | P1 | ✅ stringop-overflow Werror 修复 | m5-leader | 2026-05-29 |
727+ | M5 | T-stub-14-extra | lib/ff_stub_14_extra.c(123 个 14.0+ 内核 minimal-link stub) | ** P0** | ✅ 647 行 / 0 errors / 解决 example link 661 undef | m5-leader | 2026-05-29 |
728+ | M5 | T-example | example/{main.c, main_epoll.c} | P0 | ✅ helloworld + helloworld_epoll 各 27M | m5-leader | 2026-05-29 |
729+ | M5 | T-matrix-6 | 编译矩阵 6 格(GCC 默认 + Clang + 4 KNOB) | P1 | ✅ 5/6 PASS(Clang known-limitation) | m5-leader | 2026-05-29 |
730+ | M5 | T-fix-ng-base | lib/ff_ng_base.c(ng_node2ID node_p → node_cp)+ Makefile 删 ng_atmllc/ng_sppp 残引用 | P1 | ✅ FF_NETGRAPH=1 矩阵 PASS 5.9M / 250 .o | m5-leader | 2026-05-29 |
731+ | M5 | T-9tc-编译拉起 | spec 06 9 TC 全部编译 ✅ + 拉起到 EAL/config stage ✅ | P0 | ✅ 9/9(DP-M5-3=B 折中尺度) | m5-leader | 2026-05-29 |
732+ | M5 | T-perf-script | tools/sbin/m5_perf.sh 性能基线脚本 | P1 | ✅ 交付(fail-fast env_check + tcp/udp qps + p50/p99 + RSS + ±15% 容忍 vs M4-done) | m5-leader | 2026-05-29 |
733+ | M5 | T-test-report | spec 06 §9 测试报告 → M5-test-report.md | P0 | ✅ 10 章节交付(含 6 known-limitation 表) | m5-leader | 2026-05-29 |
734+ | M5 | G-M5 严格 Gate | 7 项硬验收 | ** P0** | ✅ 7/7 PASS | m5-leader | 2026-05-29 |
735+ | M5 | G-Acceptance | 项目最终 Gate | ** P0** | ✅ PASS — 项目最终交付 | m5-leader | 2026-05-29 |
736+
737+ ### 12.18 修订 R-2026-05-29-18:M5 完成关闭 19 任务 + 项目最终交付(13.0→15.0 升级闭环)
738+
739+ | 项 | 内容 |
740+ | ---| ---|
741+ | 修订日期 | 2026-05-29 |
742+ | 关联条目 | M5 完成 spec 06 §3.4 + §7 G-M5 全部验收路径,承接 M0/M1/M2/Phase 5b/M3/M4 已 commit & push 的全部成果,闭环交付 |
743+ | 偏差 1:M3 推迟 4 文件已 vendor cp 隐式完成 | 原以为 M5 需重写 in_pcb.c R-002 SMR + tcp_input.c R-002 + LVS_TCPOPT_TOA 等,M5 实测全部已 vendor cp 完成(0 FSTACK marker / 0 LVS_TCPOPT_TOA / 强制重编 0 errors)。M5 范围实质性减小 |
744+ | 偏差 2:example link 暴露 14.0+ 内核新增 661 undef(133 唯一符号) | spec 04/05 完全未列。原因:fstack lib 设计用 ` -Wl,--whole-archive,-lfstack ` 强制全 .o 链接以注册 SYSINIT,14.0+ 内核新增子系统(rib new API / netlink genl / nlattr / tcp ECN / tcp HPTS / aio / nvlist / m_snd_tag / tqhash / prison_check_ip* _ locked / vm pages 等)的引用通过 libfstack.ro 内部 .o 交叉传递。处置:写 lib/ff_stub_14_extra.c 集中提供 123 个 minimal-link stub(647 行 / Python 自动生成 / 准确签名匹配 14.0+ 头文件),让 example/ 通过 link |
745+ | 偏差 3:Clang 17 矩阵 1 格 known-limitation | spec 02 §architecture 未列。Makefile line 80 HOST_CFLAGS 写死 ` -frename-registers -funswitch-loops -fweb ` 这些 GCC-only 优化 flags,Clang 报 -Wignored-optimization-argument。架构性 patch 范围超出 M5 边界 → known-limitation |
746+ | 偏差 4:DPDK runtime 在 SSH 唯一-NIC 环境不可达 | spec 06 §3.3 假设 runtime 可执行。M5 实测:HugePages_Total=0 + 唯一 virtio NIC eth1 已 SSH-active + VFIO/UIO 模块未加载 → DPDK init 必失败。DP-M5-3=B 折中:9 TC 全部「编译 + 拉起 EAL/config stage」即视为 PASS;runtime 阶段进入 known-limitation 交付测试机回放 |
747+ | 偏差 5:GCC 12 stringop-overflow 触发 | spec 02/03 未列。tools/{libnetgraph/msg.c, ngctl/write.c} 中守卫 ` #if __GNUC__ >= 13 ` 漏 GCC 12(GCC 12 已增强 stringop-overflow 检测),处置:sed -i 改为 ` >= 12 ` |
748+ | 偏差 6:FF_NETGRAPH 矩阵需要二次清理 | M4 期间 cp -af 15.0 vendor 删了 ng_atmllc.c / ng_sppp.c 等 13.0-only 文件,但 lib/Makefile FF_NETGRAPH 段仍引用这些 .c → 矩阵 4 格初次失败。处置:清 Makefile 残引用 + ff_ng_base.c ng_node2ID node_p → node_cp(14.0+ const 化)|
749+ | 偏差 7:DP-10-reinforce 强化为 AI 强制记忆 | M5 梯度 2 中 Leader 主对话违规使用 ` rm -f *.o libnetgraph.a ` ,被用户即时打断。处置:(a) 该次清理走 rm_tmp_file.sh 重做 + .trash 留档;(b) 写入 AI 强制记忆 ID 81725399「FreeBSD 13→15 升级项目 — 强制 rm_tmp_file.sh 删除规约」;(c) 后续梯度全程严守,零再犯 |
750+ | 修订后影响 | M5 完成 19 任务(4 vendor verify + 1 libffcompat + 7 核心 tools + 9 verify-only tools + 1 GCC pragma fix + 1 ff_stub_14_extra + 1 example + 1 矩阵 + 1 ng_base + 1 9 TC + 1 性能脚本 + 1 测试报告);G-M5 7 项硬验收全 PASS;G-Acceptance 项目最终 Gate PASS;libfstack.a 5.2M / 193 .o(默认)/ 250 .o(FF_NETGRAPH)/ 5.5M / 206 .o(FF_IPFW);7 sbin 二进制 + 2 helloworld 全部 link 通过;6 known-limitation 明确列入测试报告供后续测试机回放 |
751+ | 校验 | (1) ` cd lib && make clean && make ` 0 errors / 250 .o / libfstack.a 5.2M;(2) ` cd tools && for d in 16 SUBDIRS; do make; done ` 全 PASS;(3) ` cd example && make ` helloworld + helloworld_epoll 各 27M;(4) ` read_lints lib/ ` 0 diagnostics;(5) `nm libfstack.a | grep 'T (ff_veth_setup_interface\| fib4_lookup\| ff_dpdk_init\| ff_init\| ff_run)'` 全部 defined;(6) 编译矩阵 5/6 GCC PASS;(7) git status 干净(M5 改动范围明确:5 modified + 4 new) |
0 commit comments