Tiered Memory Management: Access Latency is the Key!
Author: Midhul Vuppalapati (Cornell University), Rachit Agarwal (Cornell University)
Abstruct:
- 分层内存架构的出现引发了人们对内存管理的新兴趣。近期关于分层内存管理的研究在访问跟踪机制、页面迁移和动态页面大小确定方面进行了创新;
然而,它们都使用相同的页面放置算法——将最热的页面打包到默认层级(具有最低硬件指定内存访问延迟的层级)。
这隐含地假设了即使服务于最热的页面,默认层级的访问延迟仍低于其他层级。
这一假设与实际情况相去甚远:在计算机体系结构领域,众所周知,在存在多个同时进行的请求情况下,内存访问延迟可能显著大于硬件指定的延迟。
我们表明,即使在中等负载下,默认层级的访问延迟也可能膨胀至其他层级延迟的 2.5 倍;
并且在这一模式下,现有最先进的分层内存系统性能可能比最优情况差 2.3 倍。 - Colloid 是一种内存管理机制,其体现了平衡访问延迟的原则——页面在不同层级之间的放置应使得它们的平均(负载)访问延迟趋于平衡。
为了实现这一原则,Colloid 在每个层级的内存访问延迟测量机制以及决定每个层级应放置哪些页面的页面放置算法方面进行了创新。 - 我们将 Colloid 集成到三种最先进的分层内存系统 HeMem, TPP 和 MEMTIS 中。
- 在各种工作负载上的评估表明,Colloid 能够持续使底层系统达到接近最优的性能。
Fast, Flexible, and Practical Kernel Extensions
Author: Kumar Kartikeya Dwivedi, Rishabh Iyer, Sanidhya Kashyap† ,EPFL ∗UC Berkeley
Abstruct:
- 在操作系统设计中,安全地扩展内核功能是一个长期目标,Linux 和 Windows 中广泛使用 eBPF 框架证明了这种可扩展性的优势。然而,现有的内核可扩展性解决方案(包括 eBPF )存在局限性,限制了用户在能够卸载到内核的功能范围或其扩展所导致的性能开销方面的能力。
- 我们提出了 KFlex :一种新的内核可扩展性方法,在内核扩展能力和性能之间实现了更好的平衡。
- KFlex 将内核资源(如内核内存)的安全性与扩展特定资源(如扩展内存)的安全性分离开来
- 这种分离使 KFlex 能够分别使用定制的机制来强制执行每种安全性属性——自动化验证和轻量级运行时检查
- 从而在带来低运行时开销的同时,实现多样化功能的卸载
- 它依赖于静态字节码验证,以确保扩展符合内核的接口
- 并利用与验证协同设计的运行时机制,以确保它们安全地访问自己的内存并可证明地终止
- KFlex 的关键技术贡献包括与 eBPF 静态验证协同设计的运行时技术,从而确保扩展具有极低的开销
- KFlex 将内核资源(如内核内存)的安全性与扩展特定资源(如扩展内存)的安全性分离开来
- 我们在 Linux 的基础上实现了 KFlex ,并基于eBPF框架进行构建
- 我们证明,KFlex 使用户能够卸载目前无法卸载的功能,并为应用程序提供了显著的端到端性能提升。
- KFlex 的一些机制已经合并到 Linux 内核主线中,全面集成的工作正在进行中。
Fast & Safe IO Memory Protection
Author: Benny Rubin (Cornell University), Saksham Agarwal (UIUC), Qizhe Cai (Cornell University), Rachit Agarwal (Cornell University)
Abstruct:
- IO 内存保护机制可以防止恶意或存在缺陷的IO设备将错误的数据传输到内存中。
- 现代服务器通过使用 IOMMU(IO内存管理单元)来实现这一点——IO设备在虚拟地址上操作,IOMMU 在执行内存传输之前将虚拟地址转换为物理地址(可能通过一个称为IOTLB的缓存来加速转换)。
- 尽管这些机制非常重要,但设计出既能提供强大安全特性又能保持高性能的内存保护机制一直是个难题。
- 事实上,最近对生产数据中心的研究表明,现有内存保护机制中的低效率导致了显著的吞吐量下降、尾部延迟成数量级的增加以及隔离保证的违反。
- 我们提出了Fast & Safe(F&S),这是对现有内存保护机制的一种简单修改,使它们能够提供最强的安全性,同时几乎完全消除了其开销。
- 现代内存保护硬件具有 I/O 页表缓存,这些缓存存储了每个 I/O 页表层级中最常访问的条目,而这些缓存可以用来减少 I/O 内存保护的开销。
- F&S 设计的关键思路是,与其仅仅关注最小化 IOTLB 缺失率,不如关注降低每次 IOTLB 缺失的成本。
- 我们证明,这种视角的转变使得 F&S 设计变得简单,无需对主机硬件进行任何修改,并且只需要对操作系统进行最少的修改。
VPRI: Efficient I/O Page Fault Handling via Software-Hardware Co-Design for IaaS Clouds
Author: Kaijie Guo, Dingji Li, Ben Luo, Yibin Shen, Kaihuan Peng, Ning Luo, Shengdong Dai, Chen Liang, Jianming Song, Hang Yang, Xiantao Zhang, Zeyu Mi (Alibaba Group; Institute of Parallel and Distributed Systems, Shanghai Jiao Tong University; Engineering Research Center for Domain-specific Operating Systems, Ministry of Education, China)
Abstruct:
- 设备直通已被云服务提供商广泛采用,以在虚拟机(VM)中实现接近裸机的 I/O 性能。然而,这种方法需要对 VM 内存进行静态绑定,从而无法实现按需分页。硬件设备 I/O page fault (IOPF)功能为解决这一限制提供了最优方案。
- 目前使用的 IOPF 方法,无论是基于标准 IOMMU 功能(ATS+PRI)还是具备独立 IOMMU 实现的设备,尚未在 Infrastructure-as-a-Service(IaaS)云中得到广泛应用。这是由于成本高昂、平台依赖性以及对性能和服务等级目标(SLO)有较大影响。
- 我们提出了虚拟化页面请求接口(VPRI),这是一种通过软硬件协作开发的新颖 IOPF 系统。
- VPRI 不仅具有平台独立性,免除了地址转换的复杂性
- 而且成本低廉,并设计用于最小化对 SLO 的影响。
- 我们的工作使得在阿里云中大规模部署 IOPF 功能成为可能,且对 SLO 的影响可以忽略不计。当与内存管理软件集成时,它显著提高了公共 IaaS 云中的内存利用率,有效克服了直通设备相关的静态内存绑定限制。
- 我们在现有 DPU 中不到六个月内实现了 VPRI,无需额外的硬件升级,有效解决了CSPs的成本问题。
- 此外,它使之前发布的缺乏 ATS 和 PRI 功能的 Intel 和 AMD x86 系统具备了硬件 IOPF 能力,有效解决了兼容性问题。
- 同时,VPRI 有效缓解了硬件 IOPF 对 SLO(服务级别目标)的影响,在数据中心启用内存承诺时,确保 SLO 保持在可接受范围内。