为什么 /proc/cpuinfo 为同一 CPU 上的内核显示不同的标志?

Vin*_*ent 6 linux central-processing-unit multi-threading

我系统上的 cat /proc/cpuinfo 为我的 2 个内核提供了不同的标志。有人可以向我解释为什么吗?我正在运行 Ubuntu 10.10 内核 2.6.35-24-generic。

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 CPU         E8400  @ 3.00GHz
stepping        : 10
cpu MHz         : 2999.820
cache size      : 6144 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni monitor tm2 ssse3 lahf_lm dts
bogomips        : 5999.64
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 CPU         E8400  @ 3.00GHz
stepping        : 10
cpu MHz         : 2999.820
cache size      : 6144 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority
bogomips        : 6000.04
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
Run Code Online (Sandbox Code Playgroud)

我在尝试为 KVM 配置系统时注意到了这个问题。我无法加载 kvm_intel 模块,我不知道为什么会这样。cpu 标志之一显示我支持 vmx 但不支持另一个。

谢谢

Phi*_*ack 1

看起来第二个 CPU 有这些额外的标志(来自 的评论linux-2.6.38-rc1/arch/x86/include/asm/cpufeature.h):

dtes64 - 64-bit debug store
ds_cpl - CPL Qual. Debug Store
vmx - hardware virtualization
smx - safer mode
est - enhanced speedstep
cx16 - CMPXCHG16B
xtpr - send tax priority messages
pdcm - performance capabilities
sse4_1 - sse 
xsave - XSAVE/XRSTOR/XSETBV/XGETBV
tpr_shadow - Intel TPR shadow
vnmi - Intel virtual NMI
flexpriority - Intel Flex Priority
Run Code Online (Sandbox Code Playgroud)

我无法得出结论。其中一堆似乎与虚拟化有关,但这就是我所能看到的。

您是否有可能在第二个CPU的BIOS中禁用了其中一些功能?您是否在启动时传递了任何可能影响处理器配置的内核参数?我能想到的就这么多了。

这个关于 cpu 标志的较旧的服务器故障问题似乎相关但没有帮助。