关键漏洞信息 问题描述: - 在KVM虚拟化环境中,当使用PEBS(精确事件采样)功能时,如果guest的PEBS_ENABLE值与host的值不一致,会导致意外的行为。 - 具体表现为:即使guest不想使用PEBS,也会在运行时启用PEBS,导致大量页错误(#PFs),最终可能引发崩溃。 根本原因: - 在生成MSR_IA32_PEBS_ENABLE值时,没有正确掩码guest的PEBS_ENABLE值,而是直接使用了host的值。 - 这导致guest在不需要PEBS的情况下仍然启用了该功能,从而产生不必要的页错误。 影响范围: - 主要影响使用KVM虚拟化的环境,特别是那些依赖perf工具进行性能监控的场景。 修复措施: - 通过掩码guest的PEBS_ENABLE值,确保只有在guest明确需要时才启用PEBS功能。 - 修复提交ID: 相关提交: - Fixes: ("KVM: x86/pmu: Add IA32_PEBS_ENABLE MSR emulation for extended PEBS") - Closes: 相关问题链接 报告和测试人员: - Reported-by: Seth Forshee - Signed-off-by: Sean Christopherson - Signed-off-by: Peter Zijlstra (Intel) - Reviewed-by: Dapeng Mi - Tested-by: "Seth Forshee (DigitalOcean)"