为什么我的 CPU 没有按顺序编号?

为什么我的 CPU 没有按顺序编号?

我正在使用 Arch Linux

Linux JamesPC 4.10.11-1-ARCH #1 SMP PREEMPT Tue Apr 18 08:39:42 CEST 2017 x86_64 GNU/Linux

在试图找出为什么我的系统监视器突然只显示一个 CPU(而我应该有六个 CPU)时: 在此输入图像描述

我发现这个奇怪的现象可能导致系统监视器无法正常工作:

猫 /proc/cpuinfo:

[gilmoreja@JamesPC ~]$ cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 21
model       : 1
model name  : AMD FX(tm)-6100 Six-Core Processor
stepping    : 2
microcode   : 0x600063d
cpu MHz     : 3311.103
cache size  : 2048 KB
physical id : 0
siblings    : 6
core id     : 0
cpu cores   : 3
apicid      : 16
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 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs        : fxsave_leak sysret_ss_attrs null_seg
bogomips    : 6624.13
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 3
vendor_id   : AuthenticAMD
cpu family  : 21
model       : 1
model name  : AMD FX(tm)-6100 Six-Core Processor
stepping    : 2
microcode   : 0x600063d
cpu MHz     : 3311.103
cache size  : 2048 KB
physical id : 0
siblings    : 6
core id     : 1
cpu cores   : 3
apicid      : 17
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 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs        : fxsave_leak sysret_ss_attrs null_seg
bogomips    : 6623.14
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 4
vendor_id   : AuthenticAMD
cpu family  : 21
model       : 1
model name  : AMD FX(tm)-6100 Six-Core Processor
stepping    : 2
microcode   : 0x600063d
cpu MHz     : 3311.103
cache size  : 2048 KB
physical id : 0
siblings    : 6
core id     : 2
cpu cores   : 3
apicid      : 18
initial apicid  : 2
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 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs        : fxsave_leak sysret_ss_attrs null_seg
bogomips    : 6623.22
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 5
vendor_id   : AuthenticAMD
cpu family  : 21
model       : 1
model name  : AMD FX(tm)-6100 Six-Core Processor
stepping    : 2
microcode   : 0x600063d
cpu MHz     : 3311.103
cache size  : 2048 KB
physical id : 0
siblings    : 6
core id     : 3
cpu cores   : 3
apicid      : 19
initial apicid  : 3
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 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs        : fxsave_leak sysret_ss_attrs null_seg
bogomips    : 6623.22
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 6
vendor_id   : AuthenticAMD
cpu family  : 21
model       : 1
model name  : AMD FX(tm)-6100 Six-Core Processor
stepping    : 2
microcode   : 0x600063d
cpu MHz     : 3311.103
cache size  : 2048 KB
physical id : 0
siblings    : 6
core id     : 4
cpu cores   : 3
apicid      : 20
initial apicid  : 4
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 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs        : fxsave_leak sysret_ss_attrs null_seg
bogomips    : 6623.23
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

processor   : 7
vendor_id   : AuthenticAMD
cpu family  : 21
model       : 1
model name  : AMD FX(tm)-6100 Six-Core Processor
stepping    : 2
microcode   : 0x600063d
cpu MHz     : 3311.103
cache size  : 2048 KB
physical id : 0
siblings    : 6
core id     : 5
cpu cores   : 3
apicid      : 21
initial apicid  : 5
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 mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs        : fxsave_leak sysret_ss_attrs null_seg
bogomips    : 6623.22
TLB size    : 1536 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

LSCPU:

[gilmoreja@JamesPC ~]$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                6
On-line CPU(s) list:   0,3-7
Thread(s) per core:    2
Core(s) per socket:    3
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 1
Model name:            AMD FX(tm)-6100 Six-Core Processor
Stepping:              2
CPU MHz:               3311.103
BogoMIPS:              6624.13
Virtualization:        AMD-V
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
L3 cache:              8192K
NUMA node0 CPU(s):     0,3-7
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold

我的 CPU 没有按顺序列出,而是编号为 0、3、4、5、6 和 7。

为什么我的 CPU 没有按顺序编号?我该如何修复它,让它们变成这样?

答案1

Linux 内核为机器的 APIC 表中列出的每个 CPU 分配一个 CPU 编号(请参阅转储 CPU 表的命令)。该表包含每个内核的“启用”位。 FX-6100 实际上是作为 8 核处理器制造的,但 AMD 禁用了 2 个核心 -Tomshardware 说 “所有七个基于 Zambezi 的 FX 处理器都采用相同的芯片。有些处理器禁用了一个 Bulldozer 模块,有些则关闭了两个。”这可能是在一个核心未通过 QA 时完成的 - 8 核处理器可以禁用一些核心,但仍作为较低规格的部件出售。

被禁用的两个核心将与您的描述相匹配,即核心“0、3、4、5、6 和 7”功能正常 - 核心 1 和 2 将存在,但在 APIC 表中被禁用。我没有 FX-6100 来转储表格并检查这一点,但这似乎是一个可能的解释。

相关内容