头图

Cloud Kernel SIG(Special Interest Group):支撑龙蜥内核版本的研发、发布和服务,提供生产可用的高性价比内核产品。

01 SIG 整体进展

  • 发布 ANCK 6.6-003 版本。
  • 一测多证流程建立。
  • OOT 驱动基线更新。
  • 海光平台适配进展更新。
  • Virtio-blk驱动支持 io_uring passthrough 特性。

02 ANCK 6.6-003 版本更新

发布时间: 2025-03-28
发布链接:
Anolis OS 23:https://mirrors.openanolis.cn/anolis/23/os/

调度

  • EEVDF 特性补完,支持 task 和 cgroup 自定义 slice。

内存

  • 支持页表页绑核分配,避免页表页跨 NUMA 访问。
  • 支持 OOT 内存隔离特性。
  • 回合社区 THP undersued split 特性,避免 THP 造成的 memory bloat。
  • 支持代码段锁定特性,避免代码段 pagecache 引起的回收颠簸。
  • 回合社区 tmpfs 支持 large folio 的特性。
  • 增强 memcg 统计。
  • 支持 memcg 级别的 min wartermark 设置的特性,混布场景中避免离线对在线的影响。
  • 回合 pagefault 错误处理的优化补丁集,提升 pagefault 性能。
  • 支持 pagecache 分配的 mTHP 控制。
  • 支持 pagecache 预留和 pagecache 限制特性,适用不同场景对 pagecache 的管理。
  • 支持 memcg 异步回收特性,混布场景中避免离线对在线的影响。
  • 回合社区 mTHP 统计相关补丁集。
  • 支持 memcg OOM 优先级的特性,混布场景优先杀死离线业务。
  • 支持僵尸 memcg 后台回收特性,避免僵尸 memcg 积累对系统造成抖动。
  • 回合社区文件页 shmem 的 mTHP collapse 特性。
  • 回合社区 shmem 支持 large folio 的 swap-out 和 swap-in,避免 large folio 被 split。
  • 回合匿名页支持 large folio swap-in 特性,避免 large folio 被 split。
  • 回合社区 shmem 支持 mTHP 特性。
  • 回合匿名 mTHP 统计相关补丁。
  • 回合支持匿名页 mTHP 的 swap-out,避免被 split。
  • 回合 numa balancing 支持 mTHP 提升 numa balancing 性能。
  • 回合 compaction 支持 mTHP 特性。
  • 回合匿名页支持 mTHP 的分配。
  • 回合 unamp/zap 流程对 mTHP 的 batch 优化。
  • 回合 fork 对 mTHP 的 batch 优化。
  • 回合 rmap 的清理和优化补丁集,更好的支持 mTHP。
  • 回合匿名页 mTHP 透明支持 Arm 的 cont-pte 特性,更好的优化 TLB miss。
  • 回合 mlock 支持 mTHP 特性。
  • 内存领域若干稳定性问题解决。
  • 修复 hwpoison 隔离 UCE 失败回退问题。

网络

  • virtio-net:对于 control queue 队列增加 timeout 限制控制消息等待时间防止导致整体卡死。
  • udp:优化了有连接 udp 的接收方哈希查找性能。
  • 网络相关 bpf 改动:

    • tp_btf 添加 skb dynptr 支持。
    • BPF_SOCK_OPS_RTT_CB 提供 mrtt 和 srtt 信息。
  • selftests:修复 udpgro 相关 selftest 问题。

BPF

  • 支持内核模块注册 struct_ops。
  • 支持 task、task_vma、task_css、css 的 open-code 迭代器。

存储

  • 公共

    • cgroup writeback 在使能 cgroup v2 场景无需执行 memcg_blkcg_tree 相关操作,优化无效的开销。
    • 支持 uncached buffer IO,该特性在大压力下显著提升 buffer IO 性能。
  • fuse/virtio-fs

    • fuse 修复 FUSE_NOTIFY_RESEND 通知类型的问题。
    • fuse writeback 代码重构和优化。
    • fuse 社区主线 bugfix 同步。
    • fuse 支持 folio。
    • virtio-fs 支持多队列。
    • virtio-fs 代码清理,并修复一些稳定性问题。
    • virtio-fs 增加 tag 和 queue map sysfs 接口。
  • xfs

    • 支持 dax reflink 特性。
  • erofs

    • 社区主线特性和 bugfix 同步。
  • ext4

    • 社区主线 bugfix 同步。

Arm 平台

  • 回合 Arm Coresight PMU 驱动。
  • 回合 Arm SPE 中 data source 拓展 Neoverse V2。
  • 回合 SMMU SVA 补丁。
  • 修复 ARM KVM 模块化后 VMID 被复用导致使用脏 TLB 问题。
  • 支持同步 UCE 错误在 task work 中同步处理。
  • 支持 mpam 开关控制。

龙芯平台

  • 新增特性:

    • 增加龙芯平台 SE 模块 ACPI 驱动支持。
    • 增加龙芯虚拟机 AVEC 中断支持。
  • 重要 Bugfix:

    • 修复 lscpu 显示结果中 cache 信息错误问题。
    • 修复 intel 网卡驱动加载报非对齐访问错误问题。
    • 修复 rtc 中断重复触发问题。
    • 修复在 cgroup v2 中无法对 cpu 进行控制问题。
    • 修复 docker stats 中 cpu 占用率显示为 0 的问题。
    • 修复服务器单节点启动时启动失败问题。
    • 修复重启压力测试中,虚拟机挂死问题。
    • 修复物理机睡眠唤醒虚拟机挂死。
    • 修复虚拟机启动后物理机日志信息报错问题。
    • 修复物理机启动后系统日志报错问题。

驱动

  • 回合一些 PCIe、ACPI 以及 SMMUv3 的 Bugfix 补丁,增强稳定性。
  • coresight:

    • 支持使用 per-sink trace ID 映射 perf session。
    • 拆分 sysfs 和 perf usage。
    • trbe:支持 ACPI 的设备加载。
  • cxl:

    • 修复一些 bug,并且增加一些 trace event。
    • 支持 RCH RAS 特性。
  • erdma:支持 smc。
  • vfio:回合一些上游的补丁,增强一些 PCI 特性的支持。
  • virtio:修复一些 bug。

Perf

  • 回合 dwc_pcie_pmu 修复补丁。

03 一测多证

一测多证,旨在认证龙蜥衍生版 OS 与 Anolis OS 的硬件兼容性互通性。通过该认证的衍生版 OS,其 Ancert 测试结果可直接录入龙蜥硬件兼容性列表。目前,一测多证流程社区流程已经建立,浪潮 KOS 5.8 SP2 已作为标杆案例成功完成认证。
更多信息请移步该链接:https://openanolis.cn/sig/Cloud-Kernel/doc/1320117912455741462

04 OOT 驱动基线更新

OOT 驱动基线新增以下驱动:

05 海光平台适配进展

  • 修复海光 family 18h model 4h-10h 的各种问题:

    • 5.10 见 PR#4743、#4745、#4748、#4749、#4752、#4753。
    • 6.6 见 PR#4760、#4762、#4763、#4764、#4767。
  • 增加 model 10h 的 EDAC,IOAPIC 支持:

    • 5.10 见 PR#4750。
    • 6.6 见 PR#4761。
  • 增加 model 7h-8h EDAC,NB 支持:

    • 5.10 见 PR#4751。
    • 6.6 见 PR#4766。
  • 为海光 GPIO controller 添加 device HID 支持:

    • 5.10 见 PR#4741。
    • 6.6 见 PR#4758。
  • 开启海光大内存拷贝优化 kconfig:

    • 5.10 见 PR#4754。
    • 6.6 见 PR#4769。
  • 优化 vTKM 性能 & TDM 检测失败的 bugfix:

    • 5.10 见 PR#4870、#4871。
    • 6.6 见 PR#4838、#4842。
  • DF PMU 适配 Hygon 8h 平台:

    • 5.10 见 PR#4930。
    • 6.6 见 PR#4929。

注:以上 PR 带有补丁的超链接,文末点击 SIG 主页-月报查看。

06 virtio-blk 支持 io_uring passthrough 特性

Virtio-blk 驱动中引入 io_uring passthrough 特性。
基于i o_uring passthrough 的 Virtio-blk 直通方案,可通过绕过通用块层,减小 I/O 路径上内核栈开销。并且通过新增的双向命令,在后端支持解析的情况下,可以减少 I/O 交互次数,提高带宽利用率。
具体如下:
1) 该特性通过给 Virtio-blk 添加一个通用字符接口,并为 Virtio-blk 驱动支持 io_uring 的 uring_cmd 特性,允许用户态进程借助 io_uring 框架,在 bypass 通用块层的情况下,直接向 Virtio-blk 驱动发送 WRITE、READ 类命令。
2)支持在 Virtio-blk passthrough 通道内单条命令包含“读写双向I/O”,即单条I/O命令中既包含写缓冲区,又包含读缓冲区。
更多信息请参考该链接:https://gitee.com/anolis/cloud-kernel/pulls/4272

相关链接:

Cloud Kernel SIG 主页:
https://openanolis.cn/sig/Cloud-Kernel

—— 完 ——


龙蜥社区
40 声望13 粉丝

OpenAnolis龙蜥社区由国内外头部企业联合建立的操作系统开源社区。