内核
EulixOS 1.0 基于 openEuler 1.0 Base 进行开发。对应Linux 社区 kernel 4.19 版本内核。openEuler 1.0 Base 在Linux 社区 4.19 版本内核的基础上在可靠性、安全性、虚拟化、性能等方面做了针对性的增强,更好地支持鲲鹏系列处理器。openEuler 1.0 Base 基于该版本 kernel 的主要修改如下:
- 回合社区增强特性
- 回合 Linux 4.19 stable 补丁
- 修复 CVE 和其他 Bugfix
- 鲲鹏系列处理器适配和增强
- 泰山服务器驱动支持
调测 DFx 特性增强
支持 ARM64 内核热补丁
支持 ARM64 内核热补丁,可以不用重启修复内核漏洞和 BUG。
ARM64 kdump 增强
EulixOS 1.0 内核支持预留大于 4G 的内存供 kdump 使用
说明: Linux kernel 社区原生版本只支持预留 4G 以下内存。
ARM64 NMI Watchdog 支持
- 支持基于 PMU (Performance Monitoring Unit) 的 NMI Watchdog
- 支持基于 SDEI (Software Delegated Exception Interface) 的 NMI Watchdog
ARM64 RAS 增强
- 支持 ARM v8.2 RAS 扩展
- 支持执行路径上内存ECC错误恢复
支持 SAS 盘暴力热插拔
支持 Statistical Profiling Extension 解析增强
通过解析 SPE 事件,支持精确跟踪和记录 branch miss,LL cache miss,tlb miss 等事件,增强 perf 调优功能。
系统性能优化
系统扩展性(Scale Out)
Numa Aware Qspinlock
对现有的 qspinlock 做增强,将锁的等待队列分成两个,本地 NUMA 节点等待队列和远程 NUMA 节点等待队列,本地 NUMA 节点等待队列的线程有限获取锁,减少跨 NUMA 节点的 Cache/总线冲突,从而提升性能
MMU gather
减少 TLB flush,从而提升性能
关键驱动如中断控制器 ITS 和 SMMU 的内存分配 NUMA Aware
IO 性能优化
- 通过优化 IOVA 页表查找和页表释放算法,提升 IO MMU 子系统性能
- 减少关键结构体的 cache false sharing,从而提升性能
指令加速
CRC32 和 checksum 加速
根据 ARM64 指令以及流水线特点,优化 CRC32 及 checksum 实现,大幅提升数据校验性能。
资源管控
Cache与内存带宽的分配与监控
支持 ARM v8.4 MPAM(Memory System Resource Partitioning and Monitoring)特性。
内存热添加
支持动态添加虚拟内存。
CPU 热插拔
支持动态添加虚拟机 CPU。
支持限制 page cache 占用内存的比例
支持限制 page cache 占用内存的比例,避免系统因 Page Cache 过多而影响业务的性能或者 OOM。
鲲鹏芯片驱动支持或增强
支持鲲鹏处理器相关的驱动:
- 支持 HiSilicon SAS 驱动
- 支持 HNS 和 HNS3 板载网卡
- 支持 hinic 智能网卡