Cloud Kernel SIG月度动态:发布 ANCK 3 个版本 5.10 kABI/kAPI 策略变更

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

01SIG整体进展

1.发布版本。

2.发布小版本。

3.发布小版本。

4./kAPI策略变更。

02具体进展2.1发布版本2.1.1新特性

2.1.1.1社区特性

支持动态内核抢占特性回合上游社区的动态内核抢占特性,允许用户通过cmdline或sysfs来切换抢占模型:none或voluntary(full暂不支持)。

perf功能增强支持CMN和DDRPMU的perfmetric功能。

bpf新特性。

新增bpfhelper:

bpf_for_each_map_elem:遍历bpfmap的helper。

bpf_snprintf:字符串格式化helper。

bpf_timer:定时器,可以在指定时间后触发回调函数。

bpf_loop:告别常量有限循环的限制,从此自由写循环。

bpf_strncmp:字符串比较的helper。

bpf_ktime_get_tai_ns:获取CLOCK_TAI类型的时间。

bpf_skb_load_bytes:raw_tp类型支持,可以在raw_tp类型程序中读取skb数据,包括非线性区数据。

Arm64架构支持fentry/fexit/fmod_ret/bpf_lsm等trampoline相关特性的attach,从而提供更强的跟踪诊断/安全功能。

bpf_trampoline支持与livepatch共存。

virtio-net相关特性支持。

支持virtio-net设备统计:实现内核对设备统计数据的获取,提升故障定位和问题诊断能力。

引入队列重置功能:允许调整虚拟机队列尺寸并利用该功能减少数据包丢失,优化时延性能。

动态中断调节(netdim):支持根据实时流量智能调整中断聚合参数,优化数据接收性能。

优化virtiochecksum:修复virtio网卡验证checksum被特定feature控制的问题;使用XDP应用场景中无需guestos重新验证校验和,大幅节省CPU利用率。

erofs按需加载模式支持failover。

ext4修复O_DIRECT+O_SYNC语义问题该问题在iomap框架引入后就一直存在,其原因为generic_write_sync()是在iomap框架中调用,但i_disksize更新却是在iomap_dio_rw()之后。这将导致app写的场景文件落盘的长度没有及时更新,此时异常掉电将无法读取写入的数据。

xfs支持延迟inodeinactivation特性该特性将回收放到后台的kworker中执行,降低前台应用因删除带来的卡顿。

fuse相关支持

支持cache=none模式下sharedmmap。

支持strictlimit特性动态开关。fuse模块会设置strictlimit,在特定场景下可能导致回写非常慢甚至卡住,引入该sysfsknobs可以动态解决这种问题。

优化kernfs全局锁竞争,降低因监控程序并发访问导致的loadD升高影响。

2.1.1.2龙蜥自研

GroupIdentity相关特性。

提供细粒度优先级特性。

比例校准。

增加指标。

GroupIdentity优化,增强不同优先级任务的负载控制。

提供GroupBalancer基础功能。

SMC相关优化及支持。

在SMC-R+eRDMA场景支持smc_pnet功能。

优化SMC+eRDMA场景下的可达性检查,修复低概率的内核crash问题。

virtio支持controlvq超时机制virtio支持controlvq超时机制:防止因设备无响应导致虚拟机CPU持续高负荷轮询,默认超时7天。

新增对OOT模块使用的slab内存进行隔离的特性,以便OOT模块踩内存后问题定界。

新增快速OOM特性避免在多核大内存环境下由于内存紧张导致得长时间机器无响应,可以协助业务提升内存部署密度,提高高水位运行时在线业务性能的稳定性。

erofs相关支持及优化。

支持rafsv6模式下传入zero-lengthiovec。

rafsv6模式下允许回收daxmapping,以避免pin住可能带来的OOM和fusehang等问题。

通过kconfig限制rafsv6仅在安全容器场景使用。

xfs支持fsdaxreflinkdedupe支持xfsfsdaxreflinkdedupe,并针对TairPMEM实例做了针对性的优化,如快照源文件的连续性,脏页回写的效率,去除reversemapbtree的依赖以优化pagefault时延等。

cgroupwriteback支持支持cgroupwriteback,以修复开启lazytime场景下,memorycgroup长期不释放的问题。该问题将导致容器化部署环境下memorycgroup数量长时间处于高位,占用内存,以及引发遍历cgroup时sys过高等。

提供cgroupv2IOSLI增加blkiocgroupv2的IOSLI,包括waittime,servicetime,completetime,ioqueued和bytesqueued等。

支持2MIO在极端情况下,每个bio_vec只包含1个4kpage,那么在当前5.10内核下只能支持最大1MIO,额外的处理拆分逻辑在某些场景下会影响性能。

修复在设置blk-iocostqos过程中因race导致的ABBA死锁问题。

支持tcmu_loop设备参数可配置tcmu_loop设备支持参数可配置,如can_queue,nr_hw_queues,cmd_per_lun,sg_tablesize等,当后端设备能力足够大的时候,调大这些参数能明显提升性能。

2.1.1.3其他特性

2.1.1.3.1处理器及平台支持

Intel平台

支持GNR/SRF平台

IDXD(DSA/IAA)功能增强

IcelakeHWDRC支持

AMD平台

AMDLBRv2支持以及相关Bugfix支持

AMDPerfUMC支持以及相关Bugfix支持

AMDPerfDF支持

AMDPerfibrs或其他相关Bugfix支持

AMDQoSBMEC支持

AMDIOMMUiopagetable支持

AMDIOMMUPCIsegment支持

AMDIOMMUX2AVIC及相关IOMMUBugfix支持

Turin平台支持

ARM架构

调整cmdline默认使能irqtime_account特性

添加开关控制crashkernel提前预留

MPAM虚拟化支持

海光

适配海光4号model7h/10hcpu(PR3368)

全面支持海光四号处理器(749X、748X、34XX)的各类特性。

包括全新CPU拓扑、x2APIC、微码加载、MCARAS功能、DDR5、SR-IOV、QoS、L3Perf/PMU以及温度监控等。

新增海光四号安全特性支持:

新增CSV3安全虚拟机支持,包括支持热迁移功能,支持硬件保护虚拟机页表,硬件隔离虚拟机内存,修复主机VMM无法读写虚拟机内存问题。

CSV3基于海光四号平台,在前二代CSV技术的基础上继续增强,在CPU内部实现了虚拟机数据的安全隔离,禁止主机操作系统对虚拟机内存的读写,保证了虚拟机数据的完整性,实现了云计算环境下的数据机密性和完整性的双重安全。

修复kvm模块与ccp模块之间的依赖关系

优化CSV3sharedpage管理,包括合并连续页面;使用rbtree管理页面等

提供了两个通用的API,用于加密和解密用户空间进程页

支持海光密钥管理(TKM)虚拟化功能

支持海光DCU直通给虚拟机

龙芯

龙芯架构是龙芯中科基于二十年的CPU研制和生态建设积累推出的全新完全自主的新架构,具有较好的自主性、先进性与兼容性,包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近2000条指令。

本次更新如下:

支持龙芯3A5000、3A6000、3C5000、3D5000等多个基于loongarch架构设计的CPU

增加对上述CPU配套的7A1000/7A2000桥片,以及桥片中的各种外设I/O驱动和显示设备的支持

增加对Loongarch2K0500BMC驱动的支持

在支持Loongarch基础架构的基础上,进一步增加对向量指令、虚拟化、二进制翻译等扩展功能的支持

增加对perf、ftrace、kdump、uprobe、kprobe、kretprobes等调测工具的支持

飞腾

支持飞腾S5000C服务器

2.1.2设备驱动

引入nce网卡驱动,支持北中网芯N5/N6系列网卡

支持网迅10G网卡VF功能

支持bcache功能

2.1.3重要BugFix

修复perf_cgroup_switchrace问题(PR2473)

修复cfs_rqruntime统计问题(PR2470)

启用声卡相关驱动(CONFIG_SND)。(PR2759)

龙芯架构相关修复。(PR2733)

erofs压缩模式稳定性修复。(PR2692)

erofsoverfscache的稳定性修复。(PR2605,PR2894,PR2505)

修复seccomp内存泄露问题。(PR2838)

修复TCMU潜在的内存递归回收问题。(PR2799)

修复在不配置限流规则的情况下IO重复统计问题。(PR2800)

修复GroupIdentity和corescheduling同时使能时导致内核panic的问题。(PR2290)

修复关闭coresched总开关时潜在的racecondition。(PR2834)

回合高版本NVMeoverRDMA的修复补丁,增强稳定性。(PR2500)

修复PCIe驱动aspm的UAF导致的内核crash问题。(PR3232)

修复异步unthrottle引起的warning,避免因该warning引起的调度死锁。(PR3073)

CVE-2023-6817(PR3099)

CVE-2023-20569(PR2413)

CVE-2023-51042(PR3018)

CVE-2023-6546(PR3040)

CVE-2024-0565(PR2921)

CVE-2024-23307(PR2865)

CVE-2024-24860(PR2859)

CVE-2023-51779(PR2846)

CVE-2024-24855(PR2816)

CVE-2023-4622(PR2620)

CVE-2023-20588(PR2582)

CVE-2023-6931(PR2361)

CVE-2023-39192(PR2481)

CVE-2023-45863(PR2408)

CVE-2023-45871(PR2380,PR2379)

CVE-2023-3567(PR2363)

CVE-2023-0615(PR2364)

CVE-2023-4015(PR2334)

CVE-2023-4623(PR2338)

CVE-2023-2860(PR2340)

CVE-2023-3772(PR2333)

CVE-2023-3863(PR2309)

CVE-2023-31085(PR2157)

CVE-2022-3424(PR2153)

CVE-2022-45887(PR2142)

CVE-2023-42754(PR2308)

2.1.5已知问题

根据版本规划及选型以及社区版(GA)发行声明,截止2024/07/01日,的最新镜像版本为,该镜像中默认只集成了内核。而在6.6内核中,xfs引入了nrext64、bigtime、inobtcount等新特性(5.10中没有),且根文件系统默认格式为xfs,导致了在镜像中使用xfs作为根文件系统时,安装内核并重启后无法正常进入系统。

临时解决办法:在镜像安装阶段将根文件系统格式从默认的xfs修改成ext4,然后再安装内核,即可正常切换。

修复版本:预计在版本修复该问题。

2.2发布小版本

发布时间:2024-06-14

anolis7:

anolis8:

2.2.1重要BugFixes

修复了在使用eBPF相关工具(如cilium)时,存在的兼容性问题。(PR3281)

2.3发布小版本

发布时间:2024-06-28

anolis7:

anolis8:

2.3.1重要BugFixes

修复可信工具tpm2-tools在执行tpm2_pcrlist命令时失败的问题。(PR#3403)

2.3.2kABI/kAPI策略变更

从版本开始,龙蜥社区只在minor版本保证kABI,在major版本之间只保证kAPI,详情请见龙蜥社区5.10kABI:kAPI策略:

CloudKernelSIG主页:

免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系