On 7/9/2020 7:00 PM, Dave Hansen wrote:
On 7/8/20 2:51 AM, tip-bot2 for Kan Liang wrote:
diff --git a/arch/x86/include/asm/cpufeatures.h 
b/arch/x86/include/asm/cpufeatures.h
index 02dabc9..72ba4c5 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -366,6 +366,7 @@
  #define X86_FEATURE_MD_CLEAR          (18*32+10) /* VERW clears CPU buffers */
  #define X86_FEATURE_TSX_FORCE_ABORT   (18*32+13) /* "" TSX_FORCE_ABORT */
  #define X86_FEATURE_PCONFIG           (18*32+18) /* Intel PCONFIG */
+#define X86_FEATURE_ARCH_LBR           (18*32+19) /* Intel ARCH LBR */
  #define X86_FEATURE_SPEC_CTRL         (18*32+26) /* "" Speculation Control 
(IBRS + IBPB) */
  #define X86_FEATURE_INTEL_STIBP               (18*32+27) /* "" Single Thread 
Indirect Branch Predictors */
  #define X86_FEATURE_FLUSH_L1D         (18*32+28) /* Flush L1D cache */

Are architectural LBRs useful *without* XSAVE?

Yes, previous model-specific LBRs don't have XSAVE support, but it's still widely used.

Adding XSAVE is more based on performance considerations. It doesn't impact the existing LBR capabilities.

I once talked with our virtualization team. They also want us to support both XSAVE and non-XSAVE version of LBRs. If the XSAVE is not available, we should fall back to the previous MSR method.

I don't think we should make Arch LBR depends on XSAVE.

Thanks,
Kan

If not, should we add an
entry in arch/x86/kernel/cpu/cpuid-deps.c::cpuid_deps[] for this?

...
         { X86_FEATURE_ARCH_LBR,            X86_FEATURE_XSAVES    },
...

Reply via email to