Skip to content

Commit 22986c7

Browse files
committed
docs(spec): correct SYS_MAXSYSCALL and 13->15 syscall delta baseline (R-2026-05-28-01)
Fix factual errors in 4 spec docs based on direct grep of sys/sys/syscall.h: - 13.0 SYS_MAXSYSCALL: 574 -> 580 (measured 420 SYS_* names) - 15.0 SYS_MAXSYSCALL: 599 (measured 439 SYS_* names) - 13->15 net additions: 25 -> 22, plus 3 removals newly recorded - Drop the bogus SYS___realpathat row in 03 $2.4 (already exists in 13.0) - 03 $1 'max syscall number' row: SYS_sigfastblock=573 -> SYS_aio_readv=579 Files changed: - 03-freebsd-15-changes.md: 2 fixes in $1 table; $2.4 fully rewritten into $2.4.1 (22 additions + compat shims) / $2.4.2 (3 removals) / $2.4.3 (clarifications for syscalls already present in 13.0), with a measurement-source footnote. - 00-overview-and-glossary.md: SYS_MAXSYSCALL glossary row rewritten. - 98-independent-audit-report.md: new independent audit report; P1-001 and $6.1 item 1 marked 'fixed 2026-05-28'. - 99-review-report.md: append $12 revision log. Measurement source: grep '^#define[[:space:]]\+SYS_' \ freebsd-src-releng-{13.0,15.0}/sys/sys/syscall.h \ | awk '{print $2}' | sort | comm Root cause: Phase 2 Sub-Agent B (Analyzer-15) inferred syscall max from release notes / partial reads instead of grepping syscall.h; Phase 4 reviewer did not back-verify the numbers in the 4-dimension audit. R-010 priority (P3) and constraint C-1 ('do not introduce new syscalls') remain unchanged; only the underlying facts are corrected. Lint: 0 diagnostics across zh_cn/.
1 parent cb6f4c4 commit 22986c7

4 files changed

Lines changed: 313 additions & 21 deletions

File tree

docs/freebsd_13_to_15_upgrade_spec/zh_cn/00-overview-and-glossary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ F-Stack 是把 FreeBSD 内核协议栈剥离出来跑在 DPDK 用户态的工程
9393
| **RACK** | Recent ACKnowledgment | FreeBSD 14/15 默认开启的 TCP 重传算法栈 |
9494
| **mips** | MIPS 架构 | 14.0 整体从 base 移除,影响 F-Stack `freebsd/mips/` 子目录 |
9595
| **`__FreeBSD_version`** | FreeBSD 版本宏 | 13.0 = `1300139`;15.0 = `1500068` |
96-
| **`SYS_MAXSYSCALL`** | 最大 syscall 号 | 13.0 = 574;15.0 = 599(新增 25 项含 inotify/timerfd/kqueuex/membarrier|
96+
| **`SYS_MAXSYSCALL`** | 最大 syscall 号 | 13.0 = 580;15.0 = 599(13→15 净新增 22 项 + 删除 3 项;新增代表:`fspacectl``kqueuex``membarrier``timerfd_create/gettime/settime``inotify_add_watch_at``inotify_rm_watch``jail_remove_jd` 等;删除:`gssd_syscall``sbrk``sstk`。完整清单见 `03-freebsd-15-changes.md` §2.4|
9797
| **pkgbase** | base 系统包化 | 15.0 可选发布形态,与 F-Stack 无关 |
9898
| **`m_pkthdr` / `m_ext`** | mbuf 头与外存指针 | 14→15 字段调整 |
9999
| **`mb_unmapped_*` / `pcpu_page_alloc`** | unmapped mbuf 路径 | F-Stack 屏蔽的 host VM 依赖 |

docs/freebsd_13_to_15_upgrade_spec/zh_cn/03-freebsd-15-changes.md

Lines changed: 48 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ FreeBSD 13.0 → 15.0 跨越了 4 年 + 6 个 release(13.0 → 14.0 → 14.1
2121
| `BRANCH` | RELEASE-p2 | RELEASE-p9 |
2222
| `__FreeBSD_version` | **1300139** | **1500068** |
2323
| 实测路径 | `sys/sys/param.h:63` | `sys/sys/param.h:77` |
24-
| 最大 syscall 号 | `SYS_sigfastblock=573` | `SYS_jail_remove_jd=598` |
25-
| `SYS_MAXSYSCALL` | 574 | 599 |
24+
| 最大 syscall 号 | `SYS_aio_readv=579` | `SYS_jail_remove_jd=598` |
25+
| `SYS_MAXSYSCALL` | 580 | 599 |
2626

2727
---
2828

@@ -55,24 +55,52 @@ FreeBSD 13.0 → 15.0 跨越了 4 年 + 6 个 release(13.0 → 14.0 → 14.1
5555
| **对 F-Stack 影响** | 无影响(F-Stack 不依赖 base 安装) |
5656
| **优先级** | P3(out of scope) |
5757

58-
### 2.4 [P3] 抗量子加密 / inotify / timerfd 等新 syscall
59-
60-
| 项目 | syscall 号 | 优先级 |
61-
|---|---|---|
62-
| `__realpathat` | 574 | P3 |
63-
| `close_range` | 575 | P3 |
64-
| `aio_writev / aio_readv` | 578 / 579 | P3(F-Stack 无 AIO) |
65-
| `fspacectl` | 580 | P3 |
66-
| `sched_getcpu` | 581 | P3 |
67-
| `swapoff` | 582 | P3 |
68-
| `kqueuex` | 583 | P3 |
69-
| `membarrier` | 584 | P3 |
70-
| `timerfd_create / gettime / settime` | 585-587 | P3 |
71-
| `kcmp / getrlimitusage / fchroot / setcred / exterrctl` | 588-592 | P3 |
72-
| **`inotify_add_watch_at / inotify_rm_watch`** | 593 / 594 | P3 (out of scope) |
73-
| `getgroups / setgroups / jail_attach_jd / jail_remove_jd` | 595-598 | P3 |
74-
75-
> F-Stack 不走 host syscall 层(用户态自家分发),上述对 F-Stack 无直接影响。仅当 `ff_syscall_wrapper.c` 需要暴露这些时才动手。本次升级不引入(约束 C-1)。
58+
### 2.4 [P3] 13→15 syscall 表增量(实测)
59+
60+
13.0 `SYS_MAXSYSCALL=580`(共 420 个 `SYS_*` 名称),15.0 `SYS_MAXSYSCALL=599`(共 439 个)。**13→15 净新增 22 项,删除 3 项**(按 `SYS_*` 名称集求差实测)。
61+
62+
#### 2.4.1 13→15 新增 22 项(按 15.0 编号)
63+
64+
| 项目 | 15.0 syscall 号 | 类型 | 优先级 | 备注 |
65+
|---|---:|---|---|---|
66+
| `fspacectl` | 580 | 新功能 | P3 | 文件空洞分配 |
67+
| `sched_getcpu` | 581 | 新功能 | P3 ||
68+
| `freebsd13_swapoff` | (compat) | compat shim | P3 | 13.0 中 `swapoff=424`,15.0 重排为 582 并保留旧号兼容入口 |
69+
| `kqueuex` | 583 | 新功能 | P3 | kqueue 扩展 |
70+
| `membarrier` | 584 | 新功能 | P3 ||
71+
| `timerfd_create` | 585 | 新功能 | P3 | Linux 兼容 |
72+
| `timerfd_gettime` | 586 | 新功能 | P3 | Linux 兼容 |
73+
| `timerfd_settime` | 587 | 新功能 | P3 | Linux 兼容 |
74+
| `kcmp` | 588 | 新功能 | P3 ||
75+
| `getrlimitusage` | 589 | 新功能 | P3 ||
76+
| `fchroot` | 590 | 新功能 | P3 ||
77+
| `setcred` | 591 | 新功能 | P3 ||
78+
| `exterrctl` | 592 | 新功能 | P3 ||
79+
| **`inotify_add_watch_at`** | 593 | 新功能 | P3 (OOS) | 约束 C-1 不引入 |
80+
| **`inotify_rm_watch`** | 594 | 新功能 | P3 (OOS) | 约束 C-1 不引入 |
81+
| `freebsd14_getgroups` | (compat) | compat shim | P3 | 13.0 中 `getgroups=79`,15.0 重排为 595 并保留旧号兼容入口 |
82+
| `freebsd14_setgroups` | (compat) | compat shim | P3 | 13.0 中 `setgroups=80`,15.0 重排为 596 并保留旧号兼容入口 |
83+
| `jail_attach_jd` | 597 | 新功能 | P3 ||
84+
| `jail_remove_jd` | 598 | 新功能 | P3 ||
85+
| `_exit` | (compat) | compat shim | P3 | 旧编号 1 的兼容别名 |
86+
| `freebsd10__umtx_lock` | (compat) | compat shim | P3 | freebsd10 兼容 |
87+
| `freebsd10__umtx_unlock` | (compat) | compat shim | P3 | freebsd10 兼容 |
88+
89+
#### 2.4.2 13→15 删除 3 项
90+
91+
| 项目 | 13.0 syscall 号 | 删除原因 | 优先级 |
92+
|---|---:|---|---|
93+
| `gssd_syscall` | 505 | gssd 用户态 daemon 接口废弃 | P3 |
94+
| `sbrk` | 69 | brk/sbrk 用户态接口在 14.0 移除 syscall 实现(仅保留 libc 模拟) | P3 |
95+
| `sstk` | 70 |`sbrk` 同期废除 | P3 |
96+
97+
#### 2.4.3 13.0 中已存在的 syscall(**不属 13→15 新增**
98+
99+
以下 syscall 在 13.0 `sys/sys/syscall.h` 已经定义,**只是文档此前误列为 15.0 新增**`SYS___realpathat=574``SYS_close_range=575``SYS_rpctls_syscall=576``SYS___specialfd=577``SYS_aio_writev=578``SYS_aio_readv=579`
100+
101+
> **实测来源**`grep '^#define[[:space:]]\+SYS_' /data/workspace/freebsd-src-releng-{13.0,15.0}/sys/sys/syscall.h | awk '{print $2}' | sort | comm`(2026-05-28 实测)。
102+
>
103+
> F-Stack 不走 host syscall 层(用户态自家分发),上述对 F-Stack 无直接影响。仅当 `ff_syscall_wrapper.c` 需要暴露这些时才动手。本次升级不引入新 syscall(约束 C-1)。
76104
77105
### 2.5 [P2] syscall 表扩展整体影响
78106

0 commit comments

Comments
 (0)