测试

118 阅读2分钟

1. 导言

性能测试对于 Linux 发行版来说至关重要,Alibaba Cloud Linux 2 也是如此。(Alibaba Cloud Linux 2 是阿里巴巴操作系统团队推出的一款开源且免费的 Linux 操作系统发行版,其深度集成与优化阿里云基础设施,旨在为阿里云 ECS 客户提供丰富功能、高性能且稳定的操作系统服务,欢迎大家使用。)

然而在测试过程中发现很多子系统例如网络子系统的性能与 CPU 调度性能密切相关。系统的调度性能固然与内核中的调度算法相关,然而过去一段时间内现代 CPU 架构下不断发现的硬件漏洞及其修复严重影响了系统的调度性能。因而了解这些 CPU 漏洞的原理及修复,对于系统性能测试具有重要意义。

本文尝试对当前版本内核中存在的 CPU 漏洞及修复作一个简单的介绍,本文亦可作为一个知识库,在需要的时候快速索引浏览。由于作者水平以及文章篇幅所限,文中若存在错误,请大家共同交流学习 ^^ 。

2. 背景介绍

2018年一月,Google Project Zero 爆出现代处理器存在安全漏洞 Spectre 与 Meltdown。其实早在 2017 年Google Project Zero 就已经发现了这些漏洞,而与此同时 Moritz Lipp、Paul Kocher 等安全研究人员也对此进行了研究。

攻击者可以使用这些漏洞窃取高特权级的数据,因而对系统安全存在严重威胁。同时这两组漏洞几乎涉及当今大部分主流的处理器(包括 Intel、AMD、ARM 等多种架构),因而一公开便引起了广泛的讨论。包括 Linux 在内的主流操作系统随后都对漏洞进行了相应的修复。由于这些漏洞利用处理器硬件的投机执行(speculative execution)以及乱序执行(out-of-order execution)特性,而这些特性对于现代处理器的性能提升具有不可或缺的作用,因而其中的一些修复会带来较大的性能回退。

由于这些漏洞源自现代处理器硬件的架构设计,软件方面的修复通常只能缓解而不能根治问题,同时自 2018年一月 Spectre 与 Meltdown 漏洞首次公布以来,新变种以及新类型的漏洞不断出现,因而可以预见这些漏洞的存在在未来相当一段时间内会成为常态。

本文描述了当前 CPU 架构下存在的漏洞,对于各个漏洞现有的修复方案以及开启方式。