Como o / proc / cpuinfo detecta o modelo da CPU?

3

Eu tenho um servidor que exibe as seguintes informações em dmidecode output para CPU:

Handle 0x000D, DMI type 4, 35 bytes                            
Processor Information          
        Socket Designation: CPU 1                              
        Type: Central Processor                                
        Family: Xeon           
        Manufacturer: GenuineIntel                             
        ID: FB 06 00 00 01 03 00 00                            
        Signature: Type 0, Family 6, Model 15, Stepping 11     
        Flags:                 
                FPU (Floating-point unit on-chip)              
                CX8 (CMPXCHG8 instruction supported)           
                APIC (On-chip APIC hardware supported)         
        Version: Intel Xeon    
        Voltage: 1.2 V         
        External Clock: 266 MHz                                
        Max Speed: 3733 MHz    
        Current Speed: 2000 MHz                                
        Status: Populated, Enabled                             
        Upgrade: ZIF Socket    
        L1 Cache Handle: 0x0009                                
        L2 Cache Handle: 0x000A                                
        L3 Cache Handle: Not Provided                          
        Serial Number: Not Specified                           
        Asset Tag: Not Specified                               
        Part Number: Not Specified   

Com base em Max Speed , imagino que seja uma Xeon 5080 CPU. No entanto, de acordo com /proc/cpuinfo , é Xeon E5335 :

# grep "model name" /proc/cpuinfo
model name      : Intel(R) Xeon(R) CPU           E5335  @ 2.00GHz
model name      : Intel(R) Xeon(R) CPU           E5335  @ 2.00GHz
model name      : Intel(R) Xeon(R) CPU           E5335  @ 2.00GHz
model name      : Intel(R) Xeon(R) CPU           E5335  @ 2.00GHz
# 

Quando verifico os sinalizadores / recursos listados em /proc/cpuinfo , ele mostra ssse3 , que é suportado em Xeon 5080 e não em Xeon E5335 . Como o /proc/cpuinfo detecta o modelo da CPU?

    
por Martin 24.10.2017 / 17:02

1 resposta

8

No x86, ele usa a CPUID “sequência de marca do processador” recurso, onde suportado. Assim, no seu caso, é a própria CPU que está retornando a string "CPU Intel (R) Xeon (R) E5335 @ 2.00GHz". Isso corresponde ao dmidecode output: ID: FB 06 00 00 01 03 00 00 corresponde a um CPUID 06FB, ie E5335 (a 5080 teria uma CPUID 0F64).

Você pode ver a implementação do kernel em arch/x86/kernel/cpu/common.c get_model_name function .

O Xeon E5335 é um CPU Clovertown, que suporta SSSE3 .

    
por 24.10.2017 / 17:10