今天两件事值得花三分钟:ipxlat 要把无状态 IPv4/IPv6 转换做进内核网络层,十八封 RFC 一次到齐; NFSD 直写修到第九版,共享页不再被提前回读。
📊 板块活跃度
/ column
数据截至 10-25 09:03 北京,近 24h 各板块真实计数:net 170 · mm 74 · DRM 64 · fs 50 · LSM 34 · PCI 32 · rt 24 · media 18 · block 7 · Rust 1 · virtio 0 · arch 0。net 靠 ipxlat 十八封领跑, mm 的重心是 NFSD 直写 v9 与 SLUB_TINY 改造。
🎬 今日导读
/ section 头条 ipxlat 十八封 RFC——内核原生无状态 IPv4/IPv6 转换
头条 NFSD 直写共享页回读,修到第九版
采集 高通 CAMSS 给 SM8250 理顺 VFE 时钟共享
显示 msm 十月修复包八连发;GMU 要挂成独立驱动
内存 SLUB_TINY 从编译选项改为启动参数
PCI sysfs 读配置空间先拿锁;Rockchip 链路训练加重试
安全 Landlock 管到「新建的文件」;/proc 关键路径禁挂
RT 6.1-rt 回移 backlog-NAPI 线程十五封
机制 keyring 换 rhashtable;强制 bind 打 taint;7.4 窗口 pull 涌入
💡 今日头条
/ section 十八封 RFC:把 IPv4↔IPv6 翻译器搬进内核
〔10-24 17:26 北京〕· [RFC net-next v2 00/18] net: introduce ipxlat stateless IPv4/IPv6 translation
现状 IPv4 与 IPv6 互通靠翻译:有状态的 NAT64 要在集中式设备上给每条流记账; 无状态的 SIIT(RFC 7915)按 RFC 6052 前缀做地址映射。 主线内核一直没有原生无状态转换——树外靠 Jool 模块,用户态靠 Tayga。
痛点 有状态方案必须集中部署,流表就是扩展瓶颈;树外模块跟着内核版本赛跑, 运营商和数据中心想要一个主线里的方案。
方案 十八封系列新增 ipxlat 引擎:挂在 lwtunnel(轻量隧道)上做转发动作, 实现 RFC 6052/EAM 地址映射、双向头部与传输层转换、校验和与 offload 处理、ICMP 转换,自带 selftests 和文档;还顺带让 IPv6 输出分片复用 Fragment Header、netfilter 跨重组保留分片状态。
为什么 无状态意味着不记流表,转换可以分布到任意路由器甚至终端; 选 lwtunnel 挂接是复用路由子系统,而不是再造一套 netfilter 钩子。
效益 IPv6-only 网络回通 IPv4 资源不再需要集中式 NAT64 设备,边缘节点可以就地转换。
下一步 v2 阶段看网络维护者对 lwtunnel 挂接方式与 offload 语义的意见; selftests 与文档已就位,测试和边界场景是现成的贡献入口。
一句话点评 翻译层进主线是 IPv6-only 部署的关键拼图,挂接方式能否被接受决定进度。
🔗 原文
NFSD 直写不再回读共享页,修到第九版
〔10-25 06:12 北京〕· [PATCH v9 0/6] mm, iomap, NFSD: stop uncached writes reading back shared pages
现状 NFS 客户端的直写(uncached write)由 iomap 层落盘; 同一份文件页可能同时被其他客户端经 page cache 共享读写。
痛点 直写只覆盖共享页的一部分时,剩余部分要从磁盘回读补齐——可能读到旧数据; 标了「用完即弃」的边界页还可能在两次 WRITE 之间被提前丢掉。
方案 六封:新增 folio_mark_dropbehind() 统一做标记和记账;iomap 改成 「谁直写谁把共享页补完」;WB_DONTCACHE_DIRTY 计数修正并暴露到 debugfs;NFSD 在两次 WRITE 都写完后才丢边界页。
为什么 让写入方自己收尾而不是提前 dropbehind,从根上关掉回读窗口;计数修正保证统计不失真。
效益 NFSD 直写路径的正确性收口;顺序大写仍然不污染 page cache,两不耽误。
下一步 已到 v9 细节收尾,看能否赶上 7.4 后期或排进 7.5。
一句话点评 横跨 mm/iomap/NFSD 三层的一致性问题,版本号说明离终点不远了。
🔗 原文
📰 media 视频采集
/ column ★ ★ 高通 CAMSS 给 SM8250 理顺 VFE 时钟共享
〔10-24 17:40 北京〕· [PATCH v2 0/6] media: qcom: camss: share VFE clock sources on SM8250
定位 平台 CSI host 驱动的时钟层——SM8250(骁龙 865)上多个 VFE (视频前端,相当于 ISP 处理单元)共享时钟源,v1 里 CSID (采集接口)直接设 VFE 核心时钟的做法被驳回。
做法 六封重构:抽出 VFE 最小时钟速率、按时钟源最高速率做共享、AREG 与 NoC AXI 速率改由 VFE 自己设置。
效益 多摄并发时时钟仲裁归位,为后续多 pipeline 支持打底。
和你相关 你在 RK3588 上折腾 sensor→CSI→ISP 链路,高通阵营对应的时钟归属博弈就是这个——VFE 时钟域划分可直接对照。
🔗 原文
★ ★ venus 修 HFI 拆解竞态:先关中断再释放,先停恢复再拆
〔10-24 10:40 北京〕· [PATCH v5 0/2] media: venus: fix HFI teardown races
定位 高通视频编解码固件接口(HFI)的驱动卸载路径。
做法 释放 HFI 设备前先关 IRQ;teardown 之前先停掉 recovery work。
效益 修掉解绑/卸载窗口里的 use-after-free 与固件异常。
和你相关 编解码固件的生命周期管理是各家平台通病,这个排序思路是通用的。
🔗 原文
📰 DRM 显示
/ column ★ ★ msm 十月修复包:GMU 关断检查、带宽投票、X2-90 新固件
〔10-24 18:30 北京〕· [PATCH 0/8] drm/msm: Assorted fixes - October
定位 高通 Adreno GPU 驱动的电源与调度层——GMU(GPU 管理微控制器)交互、a6xx 抢占记录、环内优先级反转。
做法 八封:BX 依赖投票索引检查、GMU 关断 idle 检查修正、清掉启动残留的带宽投票、 idle_time 改在空闲起点记录、跨 suspend 重置抢占记录、修环内 sched_prio 反转、a6xx 向安全世界请求 CLX、a8xx 为 X2-90 加 AQE 固件。
效益 待机功耗与抢占正确性双收,同时给新一代 X2-90 GPU 铺路。
和你相关 GMU 管 GPU 的电源和频率,和你 camera 链路的功耗管理是同一套 SoC 电源哲学。
🔗 原文
★ ★ GMU 要挂成受管理的独立设备驱动(RFC 讨论中)
〔10-25 07:00 北京〕· [PATCH RFC RFT] drm/msm: adreno: attach the GMU device to a driver
定位 driver core 绑定层——GMU 目前由 msm 驱动直接代管,不是一个独立设备。
做法 RFC 让 GMU 设备挂到专属 driver,电源与固件生命周期交给设备模型统一管理。
效益 runtime PM 语义更清晰,也给 GMU 固件崩溃恢复留了正规接口。
和你相关 「平台功能单元该不该做成独立设备」是 driver core 的经典问题,camera 的 ISP/CSI 面临同样的取舍。
🔗 原文
📰 mm 内存管理
/ column ★ ★ SLUB_TINY 从编译选项改为启动参数
〔10-25 03:07 北京〕· [PATCH RFC v2 0/8] replace CONFIG_SLUB_TINY with a slab_tiny boot parameter
定位 slab 分配器的配置层——SLUB_TINY 是给小内存设备裁剪调试开销的编译期开关。
做法 八封把编译期检查全部转成运行期 kmem_cache_debug() 判断,新增 slab_debug=N 与 slab_tiny 启动参数。
效益 同一个内核镜像既能全功能跑也能精简启动,发行版不必再为嵌入式单编一个内核。
和你相关 调嵌入式板子时「裁一项功能就要重编内核」的痛,这个系列正在拆。
🔗 原文
★ ★ DAMON 修三个竞态:sysfs 加锁,静态变量收进上下文
〔10-25 03:34 北京〕· [RFC PATCH 0/3] mm/damon: fix three race bugs in sysfs and core
定位 DAMON(数据访问监控框架)的 sysfs 接口与核心状态层。
做法 target_metric_store() 补上 damon_sysfs_lock;last_nr_regions 与轮换状态两个静态变量移入 damon_ctx。
效益 多实例并发运行时不再互相踩状态。
和你相关 静态变量改实例字段,是内核老代码支持多实例的标准动作。
🔗 原文
📰 PCI 总线
/ column ★ ★ sysfs 读 PCI 配置空间要先拿访问锁
〔10-25 08:08 北京〕· [PATCH 0/5] PCI/sysfs: Wait for config access lock in sysfs attributes
定位 sysfs 属性到 PCI config space 的用户态读取路径。
做法 新增 pcie_capability_user_read_{word,dword}(),总线号、链路状态、序列号等属性统一走带锁、且检查设备是否已断开的读取器。
效益 热插拔/复位并发时不再读到全 1 或踩空。
和你相关 你在 PCIe 设备上 cat sysfs 排障时读到的「ff」值,一半就是这类竞态。
🔗 原文
★ ★ Rockchip PCIe host:训练超时重试,用链前先热复位端点
〔10-24 09:02 北京〕· [PATCH RFC 0/2] PCI: rockchip-host: Retry training and hot-reset a JMB585 on RK3399
定位 Rockchip PCIe host 控制器驱动的链路训练层。
做法 链路训练超时后重试;resume 之后对 JMB585(SATA 扩展芯片)先热复位再用链。
效益 RK3399 + JMB585 这个组合从「看运气」变成稳定可用。
和你相关 你摸 RK3588——同门 PCIe host 的坑,重试与热复位的思路可以直接对照。
🔗 原文
📰 net 网络
/ column ★ ★ netconsole 可按需重放 printk 缓冲区
〔10-25 07:06 北京〕· [PATCH RFC 0/2] netconsole: allow replaying the printk buffer on demand
定位 printk 到网络控制台的日志外发通道。
做法 printk 核心新增 per-console replay helper;netconsole 加 configfs 触发器,按需把内核日志缓冲区重新外发一遍。
效益 远程排障能补抓启动期日志,不用从开机就一直连着。
和你相关 没有串口的板子排早期启动问题,这条是刚需。
🔗 原文
📰 fs 文件系统
/ column ★ ★ /proc 关键路径禁止再当挂载点
〔10-24 18:38 北京〕· [PATCH 0/7] proc: block mounts below /proc/<pid>/net and on the links into /proc/self
定位 VFS/procfs 的挂载约束层。
做法 七封:/proc/self、/proc/thread-self、/proc//net 之下禁止挂载;NFS/AFS 的 /proc 链接改用 proc_self_symlink();自带 selftests。 效益 堵住容器里用挂载伪造 /proc 视图、欺骗 setuid 程序的一类手法。
和你相关 容器安全的边界,有一大半是 /proc 视图问题。
🔗 原文
📰 LSM 安全
/ column ★ ★ Landlock 要把访问控制延伸到「新建的文件」
〔10-25 04:39 北京〕· [PATCH RFC 0/3] landlock: Add access rights on created files
定位 Landlock 无特权沙箱的规则层——现有规则只管已经存在的文件。
做法 新增 LANDLOCK_ADD_RULE_CREATED;让 inode_init_security hook 在没有 xattr 时也被调用。
效益 沙箱能约束程序「造出来的文件」的权限,补上一大块策略空洞。
和你相关 无特权沙箱是用户态程序自保护的主流方向,值得跟踪。
🔗 原文
📰 sched / RT 调度
/ column ★ ★ 6.1-rt 回移 backlog-NAPI 线程,消除 SMP flush 警告
〔10-24 21:30 北京〕· [PATCH 6.1-rt v2 00/15] net: Backport backlog-NAPI threads to resolve PREEMPT_RT softirq warning in SMP flush
定位 PREEMPT_RT 内核的网络接收路径——softirq 在 RT 下必须线程化。
做法 十五封把主线 backlog-NAPI 机制回移 6.1-rt:defer_list 改由 backlog-NAPI 清理、threaded-NAPI 唤醒去掉条件判断、rps_lock 改名 backlog_lock。
效益 6.1-rt 长支持分支的收包路径全线线程化,警告消除。
和你相关 RT 分支的网络中断线程化,直接影响实时音视频采集的延迟毛刺。
🔗 原文
📌 机制雷达:五条跨域大改动
/ section keyring 换装 KEYS 子系统把 assoc_array 换成 rhashtable(v3),密钥查找路径换新数据结构 · 原文 强制 bind 留痕 driver core 加 TAINT_FORCED_BIND——用户态手动 bind 设备/驱动时给内核打污染标记,v4 讨论中 · 原文 内核态缺页也走 VMA 锁 x86/mm RFC 让用户地址上的内核态缺页(如 copy_from_user)走 per-VMA 锁,讨论中 · 原文 virtio-blk 内联加密 v3 讨论持续两周,块设备加密下沉到 virtio 协议层 · 原文 7.4 合并窗口 media/PCI/block/SCSI/vfs keyring 等 pull 请求密集送达 Linus · 原文
📖 本期概念速查
/ section ipxlat / SIIT 无状态 IPv4↔IPv6 转换(RFC 7915),按 RFC 6052 前缀映射地址,不记流表,可分布部署 · 原文 lwtunnel 轻量隧道子系统,把转发动作直接挂在路由查找结果上,不经过虚拟网卡 · 原文 folio dropbehind 给缓存页打「用完即弃」标记并记账,顺序大 IO 不挤占 page cache · 原文 GMU 高通 Adreno GPU 上的电源管理微控制器,管时钟、电压与固件 · 原文 如果对你有用,点个赞,或转给需要的朋友。
数据来源:lore.kernel.org(全内核 13 列表)· 北京时间