Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp1109073pxv; Fri, 16 Jul 2021 01:39:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxdANmgYsqQne/empplu2CkHZcsVlnrwMMpKT1tF8/Wws6EocvK0wd02vFtAb4ReCHVgnHf X-Received: by 2002:a17:906:5650:: with SMTP id v16mr10597193ejr.533.1626424761201; Fri, 16 Jul 2021 01:39:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626424761; cv=none; d=google.com; s=arc-20160816; b=iueLgxh3A9jEaleko8HE1r+8xxEAk+fSg5T14dALdNh5Lk2tu9JTWc4VyRe0i+ZSzn RVjjCJIhB3Akdg7OqXn4/Ol1WhNMiQbBn5PMt/d8YZRhZ0d23T9T+KpQYMqIIXMZ0FXr zRUQzNFNm+MPGWGTMgxyVU9moaE0U/2BWJXfiF/Va+PvczmrzeqBub2L0HnQSAZjRwHz UFHNvhXdp5KaAZPqJc7LjquoYSpfaQcOOtGKyVcRAW3QBbS8txy+cSjOcdqPfDgmxCkk g1lIOWT9ivWccXtNr0dO1pdhuJaRlv6i/xsk3tsurcKqGiK6IGGmwbW9YhqF74JX8tP2 9bZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=WgCE+hzY5W1XPmHMXsiU7wXw6A3KNqW2DliFe0kNnNE=; b=GZe6c7h2oktUQobLUvPN0vCe2hEOY6VdRpK1W6VGE8GNOEfcJcJfn5Haq30V7//Ou/ FcA1TRPnXZbu/6ZtoGaYhL10+bC4jab6dzzMYc8lvenvh22j21D1RiA7pRunmcdEC9aR kjfAaCC+ic18RjVy9gBBEI96kH3wgzuM4Gj+9c1lTIUZDfTumz8wPIOShNfQEDjgTUzM lv96Kaphu/Po+BD3ViF/y1yvHfI5ZQZevFJESYrJlrmkhoSUBXt3V6nAWVyAuLESCQ1e ObXxUS0D+lo8z736NwVpcDrZVzX93Nz81cppvGooNBVZ36m8q7U1kFtPhaxKkDvgE2ii JnaA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f4si8187701edr.238.2021.07.16.01.38.58; Fri, 16 Jul 2021 01:39:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238896AbhGPIjt (ORCPT + 99 others); Fri, 16 Jul 2021 04:39:49 -0400 Received: from mga09.intel.com ([134.134.136.24]:15663 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238693AbhGPIjg (ORCPT ); Fri, 16 Jul 2021 04:39:36 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10046"; a="210687325" X-IronPort-AV: E=Sophos;i="5.84,244,1620716400"; d="scan'208";a="210687325" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jul 2021 01:36:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,244,1620716400"; d="scan'208";a="460679879" Received: from michael-optiplex-9020.sh.intel.com ([10.239.159.182]) by orsmga008.jf.intel.com with ESMTP; 16 Jul 2021 01:36:39 -0700 From: Yang Weijiang To: pbonzini@redhat.com, jmattson@google.com, seanjc@google.com, vkuznets@redhat.com, wei.w.wang@intel.com, like.xu.linux@gmail.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Like Xu , Yang Weijiang Subject: [PATCH v6 10/12] KVM: x86: Add XSAVE Support for Architectural LBR Date: Fri, 16 Jul 2021 16:50:04 +0800 Message-Id: <1626425406-18582-11-git-send-email-weijiang.yang@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1626425406-18582-1-git-send-email-weijiang.yang@intel.com> References: <1626425406-18582-1-git-send-email-weijiang.yang@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Like Xu On processors supporting XSAVES and XRSTORS, Architectural LBR XSAVE support is enumerated from CPUID.(EAX=0DH, ECX=1):ECX[bit 15]. The detailed sub-leaf for Arch LBR is enumerated in CPUID.(0DH, 0FH). XSAVES provides a faster means than RDMSR for guest to read all LBRs. When guest IA32_XSS[bit 15] is set, the Arch LBR state can be saved using XSAVES and restored by XRSTORS with the appropriate RFBM. Signed-off-by: Like Xu Signed-off-by: Yang Weijiang --- arch/x86/kvm/vmx/vmx.c | 4 ++++ arch/x86/kvm/x86.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 3815a32166a6..81d7a300fb6c 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -7314,6 +7314,10 @@ static __init void vmx_set_cpu_caps(void) kvm_cpu_cap_clear(X86_FEATURE_INVPCID); if (vmx_pt_mode_is_host_guest()) kvm_cpu_cap_check_and_set(X86_FEATURE_INTEL_PT); + if (!cpu_has_vmx_arch_lbr()) { + kvm_cpu_cap_clear(X86_FEATURE_ARCH_LBR); + supported_xss &= ~XFEATURE_MASK_LBR; + } if (!enable_sgx) { kvm_cpu_cap_clear(X86_FEATURE_SGX); diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 2424d475a4d7..c09522c1f3ec 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -203,7 +203,7 @@ static struct kvm_user_return_msrs __percpu *user_return_msrs; | XFEATURE_MASK_BNDCSR | XFEATURE_MASK_AVX512 \ | XFEATURE_MASK_PKRU) -#define KVM_SUPPORTED_XSS 0 +#define KVM_SUPPORTED_XSS XFEATURE_MASK_LBR u64 __read_mostly host_efer; EXPORT_SYMBOL_GPL(host_efer); -- 2.21.1