sched discussion
Re: Linux 6.18.44
LLM 分析
Linux stable 6.18.44:跨子系统稳定补丁合集
系列概况
- 标题: Linux 6.18.44
- 作者: Greg Kroah-Hartman(stable 分支 maintainer)
- 版本: 6.18.44(6.18.y stable 队列)
- 规模: 跨多子系统的稳定补丁合集(announcement 体裁,diffstat 摘要)
- 修改文件: 涵盖 Documentation(hwmon/ina2xx.rst、virt/kvm/api.rst)、KVM(arm64、s390、x86 sv/av/av)、powerpc boot、bluetooth(btintel/btmtk/btusb)、ATA、gpio、hwmon、net、block(ublk)、DMA 等数十个文件
- 代码统计: diffstat 摘要以
+/- 行数形式列出;其中 s390/kvm/pci.c 改动达 78 行,是本批最大单文件变更 - Message-ID:
2026080951-unquote-sarcastic-548a@gregkh(announcement 主体);reply2026080951-etching-strut-6914@gregkh - 完整性: announcement 邮件只罗列 diffstat 与分支仓库 URL,未附完整 patch 文本;需到
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git的linux-6.18.y分支取实际提交
渠道说明:thread_key 标注
sched,但 thread 内容是 stable 发布公告,与 scheduler 子系统没有直接关系,仅因作者是同一 Greg KH 而归入此类。
补丁目的
- 推送 6.18.y stable 队列的 6.18.44 点版本,强制所有 6.18 用户升级。
- 修复一批积累到 stable 门槛的 bug,覆盖:
- hwmon:为
ina2xx驱动补充 INA234(TI 新型号)文档。 - KVM (arm64):mmu/arm.c 调整(25 行),可能涉及 MTE 与
guest_memfd的兼容语义。 - KVM (s390):pci 子模块 78 行大改,重构 MMIO 与 zPCI 接口。
- KVM (x86):
avic.c、vmx_ops.h各 8 行,AVIC 刷新与 VMCS 操作修正。 - 蓝牙:btmtk(50 行)、btusb(30 行)、btintel(3 行)Intel/MediaTek 固件路径修正。
- ATA / GPIO / DMA / accel(qaic) / ublk 等驱动级小修复。
- hwmon:为
- 同步更新
Documentation/virt/kvm/api.rst:明确guest_memfd与 MTE 不兼容。
关键实现
Documentation/hwmon/ina2xx.rst
+ * Texas Instruments INA234
+ Prefix: 'ina234'
+ Addresses: I2C 0x40 - 0x43
+ Datasheet: Publicly available at TI website
- INA230 and INA231 are high or low side ...
+ INA230, INA231, and INA234 are high or low side ...
把新芯片并入原有家族描述;I2C 地址与前缀 ina234 写入 supported chips 表。
Documentation/virt/kvm/api.rst(关键新增段落)
+ When this capability is enabled all memory in memslots must be mapped as
+ guest_memfd, even though it is an anonymous file, is not supported with MTE.
+ Attempting to create a memslot backed by guest_memfd when the MTE capability
+ is enabled, o[……]
明确两条互斥规则:
- 启用某 capability 时,所有 memslot 必须用
guest_memfd。 guest_memfd与 MTE 不能同时启用,否则用户态KVM_SET_USER_MEMORY_REGION应返回错误。
arch/s390/kvm/pci.c(78 行)
arch/s390/kvm/pci.c | 78 ++-
arch/s390/kvm/pci.h | 2
arch/s390/pci/pci_mmio.c | 1
典型 stable 大改动:可能涉及 zPCI 与 vfio-pci 的 MMIO 注册路径、IRQ 注入、register 状态机修复。结合 pci.h 2 行与 pci_mmio.c 1 行的小改,是接口语义重构。
蓝牙家族(btmtk 50 行 / btusb 30 行)
MediaTek 蓝牙固件下载流程与 Intel 蓝牙诊断模式相关 bug 的累积修复;属于"产品线 bug 收敛",不是架构变化。
类比
6.18.44 就像一次"汽车 4S 店的季度保养包":稳定分支 maintainer 把这一段时间各零部件(hwmon、KVM、蓝牙、ATA 等)发现的小毛病,统一打包成一次小版本升级。车还是那台车(6.18 内核主干),但保养包把所有可召回的小隐患一起修了——用户只需要到 4S 店(运行 git pull 并重新编译/装包)即可,无需自己定位是哪个子系统坏了。
其中 guest_memfd + MTE 的互斥说明则像是"两个安全气囊不能同时启用"的告示——文档里现在明确写"启用 MTE 时请勿挂载 guest_memfd memslot",避免部署时两边都开导致不可预期行为。
ASCII 流程图
+--------------------+ +------------------------+
| 6.18.y 维护队列 | -----> | 收集各子系统的候选修复 |
+--------------------+ +------------------------+
|
v
+--------------------------+
| maintainer 评估/挑选/backport |
+--------------------------+
|
+--------------------+--------------------+
| | |
v v v
+------------+ +-------------+ +---------------+
| hwmon/INA234| | KVM arm64 MTE| | s390 KVM PCI |
| docs + | | guest_memfd | | 78 行 MMIO |
| driver | | 互斥文档 | | 重构 |
+------------+ +-------------+ +---------------+
\ | /
\ v /
+--------------------------------------+
| 合并 -> tag v6.18.44 -> announcement |
+--------------------------------------+
|
v
+--------------------------+
| "All 6.18 users must upgrade" |
+--------------------------+
Highlight:风险与注意点
- stable 升级窗口策略:stable 分支只接受已修复的 bug 反向移植(CC: stable),不接受功能或重构;尽管如此,6.18.44 中 s390 KVM PCI 78 行属于相对大改动,生产部署前应在 staging 环境跑一遍 z/VM + KVM 回归。
guest_memfd+ MTE 互斥:如果上游用户在启用 MTE 的 VM 中尝试用guest_memfd内存槽位,KVM 应当显式拒绝(而非 panic)。本批把语义写入api.rst,实现侧需要在 arm64/mmu.c 路径中核对拒绝逻辑是否真的存在——文档与代码需保持一致。- 蓝牙驱动回归风险:MediaTek (
btmtk) 与 Intel (btusb) 固件路径修复属于产品线专用,对消费设备影响小,但笔记本/外设厂商需关注自家 SKU 是否受影响。 - thread 标签失真:thread_key 标记
sched,但 thread 实际是 stable announcement。后续若以 sched 子系统维度索引,会误把这次发布纳入 scheduler 变更,需在 lore 归档/标签系统中修正。
一句话总结
Linux 6.18.44 是 Greg KH 发布的 6.18.y stable 季度小版本,覆盖 hwmon/KVM/蓝牙/ATA/GPIO 等跨子系统 bug 修复与文档补齐,所有 6.18 用户必须升级;其中 ARM64 KVM guest_memfd 与 MTE 互斥、以及 s390 KVM PCI 大改是值得重点回归的两条线。