mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	x86/cpufeatures: Add LbrExtV2 feature bit
CPUID leaf 0x80000022 i.e. ExtPerfMonAndDbg advertises some new performance monitoring features for AMD processors. Bit 1 of EAX indicates support for Last Branch Record Extension Version 2 (LbrExtV2) features. If found to be set during PMU initialization, the EBX bits of the same leaf can be used to determine the number of available LBR entries. For better utilization of feature words, LbrExtV2 is added as a scattered feature bit. [peterz: Rename to AMD_LBR_V2] Signed-off-by: Sandipan Das <sandipan.das@amd.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Borislav Petkov <bp@suse.de> Link: https://lore.kernel.org/r/172d2b0df39306ed77221c45ee1aa62e8ae0548d.1660211399.git.sandipan.das@amd.com
This commit is contained in:
		
							parent
							
								
									706460a96f
								
							
						
					
					
						commit
						257449c6a5
					
				
					 2 changed files with 2 additions and 1 deletions
				
			
		| 
						 | 
					@ -96,7 +96,7 @@
 | 
				
			||||||
#define X86_FEATURE_SYSCALL32		( 3*32+14) /* "" syscall in IA32 userspace */
 | 
					#define X86_FEATURE_SYSCALL32		( 3*32+14) /* "" syscall in IA32 userspace */
 | 
				
			||||||
#define X86_FEATURE_SYSENTER32		( 3*32+15) /* "" sysenter in IA32 userspace */
 | 
					#define X86_FEATURE_SYSENTER32		( 3*32+15) /* "" sysenter in IA32 userspace */
 | 
				
			||||||
#define X86_FEATURE_REP_GOOD		( 3*32+16) /* REP microcode works well */
 | 
					#define X86_FEATURE_REP_GOOD		( 3*32+16) /* REP microcode works well */
 | 
				
			||||||
/* FREE!                                ( 3*32+17) */
 | 
					#define X86_FEATURE_AMD_LBR_V2		( 3*32+17) /* AMD Last Branch Record Extension Version 2 */
 | 
				
			||||||
#define X86_FEATURE_LFENCE_RDTSC	( 3*32+18) /* "" LFENCE synchronizes RDTSC */
 | 
					#define X86_FEATURE_LFENCE_RDTSC	( 3*32+18) /* "" LFENCE synchronizes RDTSC */
 | 
				
			||||||
#define X86_FEATURE_ACC_POWER		( 3*32+19) /* AMD Accumulated Power Mechanism */
 | 
					#define X86_FEATURE_ACC_POWER		( 3*32+19) /* AMD Accumulated Power Mechanism */
 | 
				
			||||||
#define X86_FEATURE_NOPL		( 3*32+20) /* The NOPL (0F 1F) instructions */
 | 
					#define X86_FEATURE_NOPL		( 3*32+20) /* The NOPL (0F 1F) instructions */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,7 @@ static const struct cpuid_bit cpuid_bits[] = {
 | 
				
			||||||
	{ X86_FEATURE_PROC_FEEDBACK,    CPUID_EDX, 11, 0x80000007, 0 },
 | 
						{ X86_FEATURE_PROC_FEEDBACK,    CPUID_EDX, 11, 0x80000007, 0 },
 | 
				
			||||||
	{ X86_FEATURE_MBA,		CPUID_EBX,  6, 0x80000008, 0 },
 | 
						{ X86_FEATURE_MBA,		CPUID_EBX,  6, 0x80000008, 0 },
 | 
				
			||||||
	{ X86_FEATURE_PERFMON_V2,	CPUID_EAX,  0, 0x80000022, 0 },
 | 
						{ X86_FEATURE_PERFMON_V2,	CPUID_EAX,  0, 0x80000022, 0 },
 | 
				
			||||||
 | 
						{ X86_FEATURE_AMD_LBR_V2,	CPUID_EAX,  1, 0x80000022, 0 },
 | 
				
			||||||
	{ 0, 0, 0, 0, 0 }
 | 
						{ 0, 0, 0, 0, 0 }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue