v2
2026-10-02
x86 percpu 解密存储共享 · v2
加密 guest 中将每 CPU steal-time 页共享提前到早期 per-CPU 初始化,按 guest 内存加密属性处理。
原始补丁链接
子 Patch(6)
1/6
percpu: Page-align decrypted data in UP kernels
UP 下 DEFINE_PER_CPU_DECRYPTED 位于 .data..decrypted,将该节两端按页对齐,防止修改某变量加密属性时波及相邻无关内核数据。
2/6
percpu: Bound decrypted storage for all x86 encrypted guests
On Tue, Sep 29, 2026 at 12:02:51AM -0400, Zack Rusin wrote: > TDX also needs shared per-CPU buffers. Use X86_MEM_ENCRYPT for their > definition and placement, and provide page-aligned boundaries so th
3/6
x86/percpu: Require embedded allocation in encrypted guests
加密客户机要求 percpu 使用 embed 分配以保持直接映射,避免 TDX 下共享页私有别名导致 guest 终止;覆盖 percpu_alloc=page 时告警,embed 失败仍 panic。
4/6
x86/mm: Provide common early memory decryption
提供早期内存解密公共回调,完成页表拆分并处理 UP 镜像别名;改属性前刷新大页翻译,保留 AMD 内容/SNP 状态转换,kexec 前撤销 UP 别名。
5/6
x86/tdx: Support early sharing of kernel data
TDX 在页分配器可用前,将直接映射与镜像映射均共享后共享内核数据;用私有暂存页保存内容,走 MapGPA 与共享页记账,kexec 前撤销 UP percpu 镜像别名。
6/6
x86/percpu: Share decrypted storage before guest CPU setup
在每 CPU 设置后、boot CPU 注册缓冲区前,转换所有可能 CPU 的 decrypted 节为共享;取代 KVM 对象遍历并覆盖 VMware steal-time,转换失败即停止启动,Hyper-V vTOM 暂跳过。