谷歌为 Linux 内核添加 HugeTLB 高粒度映射功能


谷歌工程师 James Houghton 已向内核发送了两轮补丁,用于将 HugeTLB 高粒度映射 (HGM) 的概念引入 Linux 内核。目前他共发送了 46 个处于 RFC 后状态的补丁集以供审核。

Linux 内存管理采用“分页机制”, 当运行内存需求量较大时,太大的(4K/2M/1G)  大小的页面会导致较多的 TLB miss 和缺页中断,从而大大影响应用程序性能。HugeTLB  相当于这种 hugepage 大页面的管理者,它记录 TLB 中的条目并指向到 Hugepage,Hugepage 页面的分配及释放,都由此模块负责。

HugeTLB HGM 允许 HugeTLB 页面以类似于 PTE 映射的透明大页面 (THP) 的方式进行高粒度映射。Google 将 HugeTLB HGM 引入 Linux  对 VM 实时迁移和内存故障处理有不小的优化。James 在邮件中阐述了 HugeTLB HGM 补丁系列的一些主要优势:

HugeTLB HGM 能够以快 100 倍的速度取消暂停 vCPU ,有助于客户机的稳定性,并且完全能够使用 1G 页面,可显著提高稳态客户机性能。

在通过网络完全复制一个大页面之后,我们希望将映射折叠到它通常的样子(例如,一个 PUD 对应一个 1G 页面)。但我们没有让内核自动执行此操作,而是让用户空间告诉我们折叠范围(通过 MADV_COLLAPSE)。

内存故障:当在 HugeTLB 页面中发现内存错误时,如果我们可以只取消映射包含错误的 PAGE_SIZE 部分,那将是非常理想的。使用高粒度映射可以做到这一点,但目前这个补丁系列没有解决这个问题。

最初,这种 HugeTLB 高粒度映射支持仅支持 x86_64,但也有针对 AArch64 和其他 CPU 架构的计划。通过内核补丁系列了解有关 HugeTLB HGM 支持的更多详细信息。


相關推薦

2022-03-18

谷歌 Chrome OS 提供了一个内置的屏幕录制软件,不过自带的录屏软件只有“录制整个屏幕/部分屏幕/切换窗口”三个功能。但外媒  发现: 谷歌似乎正在开发一种具有更多功能的全新屏幕录制器。 Chrome Story 在 Chrome OS Canary 频

2023-05-12

谷歌在昨晚的 Google I/O 2023 大会上发布了用于 Android Studio 的 AI 编程助手 Studio Bot——支持生成代码和修复错误。Studio Bot 目前处于预览阶段,已集成到 Android Studio Hedgehog。 Studio Bot 由谷歌推出的基础编程模型 Codey 提供

2023-10-19

(的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 谷歌工程师近日向 Linux 内核提交了一个新补丁,希望为其添加名为 mseal() 的系统调用「mseal() syscall」。 据介绍, 谷歌这个独立于架构的系统调用最初由 Chrome OS 上的

2022-10-29

5.0开始,企业管理新增支持OIDC/OAuth2/CAS协议。在云平台上添加完成第三方认证服务器、并配置映射规则后,第三方用户信息将按照映射规则同步至云平台,并生成云平台免密登录URL,第三方用户即可免密登录云平台。 添加OAuth

2023-08-08

BBR (Bottleneck Bandwidth and Round-trip propagation time)是谷歌在 2016 年发布的一套拥塞控制算法。它尤其适合在存在一定丢包率的弱网环境下使用。比如谷歌就通过 BBR 让内部和外部的网络能够以更高吞吐量和更低延迟更高效地运行。在这

2022-04-27

在向 CNCF 捐赠 Knative 后,谷歌和 Istio 指导委员会又宣布已将 Istio 项目提交给 CNCF,供其考虑作为一个孵化项目。“这对 Istio 及其社区来说是一个重要的里程碑,我们很高兴能在项目的发展中达到这一步。” Istio 是一个由

2022-09-29

Nick Desaulniers 是谷歌的 Linux 内核开发者,曾因使用 LLVM/Clang 编译 Linux 内核而被众人熟知。最近他开始尝试在 macOS 平台编译 Linux 内核。 从他近日发送的邮件来看,Nick Desaulniers 已成功在他的 Apple M2 MacBook Air 上(运行 macOS 12.5.1 "M

2022-03-31

谷歌方面正在致力于改进由于太多的 NVMe 驱动器,而导致的 Linux 服务器重新启动时间太长问题。缘于在于该公司的一些多驱动器服务器可能需要超过一分钟的时间才能让 Linux 内核执行其 shutdown 任务,而谷歌的这项改进工作也

2022-09-30

PI、架构支持,以及 ABI 与内核的兼容性问题。 2021 年,谷歌称 AOSP (Android Open Source Project) 现已支持使用 Rust 开发 Android 操作系统(Android 也属于 Linux 发行版)。 2021 年,Linus 再度发表自己对 Linux 内核支持 Rust 的看法,他

2023-12-01

顾解决这一问题的历程吧!  找到问题的根源  1.内核 最开始发现问题的地方在内核。有用户将 deepin 的内核和 Ubuntu 的内核进行对比后发现,虽然二者性能相差无几,但是在发热和续航上,较 Ubuntu 落后较多。有用户在 d

2023-05-25

持对选项卡进行拖拽使其成为独立窗口: 延伸阅读 谷歌为安卓开发者发布 AI 编程助手 Studio Bot Bard 已经可以写代码、解释代码作用和调试错误,支持 20 多种编程语言

2022-02-22

即将到来的 Linux 5.18 内核周期将为 Apple 键盘带来许多改进——包括 Apple Magic Keyboard 和与其各种 MacBook 计算机集成的键盘。据外媒 Phorinix 介绍:Apple 键盘驱动程序的一些改进已经在 HID 子系统的“for-next”分支中排队 —— 像往

2023-05-10

(新南威尔士大学)、Gerwin Klein(Proofcraft)、Harvey Tuch(谷歌)、Kevin Elphinstone(新南威尔士大学)、June Andronick(Proofcraft)、David Cock(苏黎世联邦理工学院)、Philip Derrin (高通)、Dhammika Elkaduwe (佩拉德尼亚大学)、Kai Engelhardt、T

2022-08-12

全面介绍,请参阅使用量化数据类型。 离线缓存 Taichi 内核在第一次被调用时被隐式编译。编译结果保存在在线内存缓存中,以减少后续函数调用的开销。只要内核功能不变,就可以直接加载启动。 但是当程序终止时,缓存