Bug 1464784

Summary: "core count" in /proc/cpuinfo showing 1 core on a 4 core system.
Product: [Fedora] Fedora Reporter: Justin Clift <justin>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 25CC: gansalmon, ichavero, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-25 18:00:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Justin Clift 2017-06-25 17:27:39 UTC
Description of problem:

Installed Fedora 25 on an older desktop PC (an i5-750) a week ago, and wondered why it's been feeling sluggish in use.

It turns out the kernel is misdetecting the number of cpu cores, thinking there's only one. (!)

****************************************

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 30
model name	: Intel(R) Core(TM) i5 CPU         750  @ 2.67GHz
stepping	: 5
microcode	: 0x7
cpu MHz		: 2675.106
cache size	: 8192 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexpriority ept vpid dtherm ida
bugs		:
bogomips	: 5350.21
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

****************************************


dmidecode sees the correct core count:

****************************************
$ sudo dmidecode
Getting SMBIOS data from sysfs.
SMBIOS 2.6 present.
68 structures occupying 2479 bytes.
Table at 0x000F0710.

[ non-cpu stuff snipped ]

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
	Socket Designation: LGA1156
	Type: Central Processor
	Family: Core i5
	Manufacturer: Intel            
	ID: E5 06 01 00 FF FB EB BF
	Signature: Type 0, Family 6, Model 30, Stepping 5
	Flags:
		FPU (Floating-point unit on-chip)
		VME (Virtual mode extension)
		DE (Debugging extension)
		PSE (Page size extension)
		TSC (Time stamp counter)
		MSR (Model specific registers)
		PAE (Physical address extension)
		MCE (Machine check exception)
		CX8 (CMPXCHG8 instruction supported)
		APIC (On-chip APIC hardware supported)
		SEP (Fast system call)
		MTRR (Memory type range registers)
		PGE (Page global enable)
		MCA (Machine check architecture)
		CMOV (Conditional move instruction supported)
		PAT (Page attribute table)
		PSE-36 (36-bit page size extension)
		CLFSH (CLFLUSH instruction supported)
		DS (Debug store)
		ACPI (ACPI supported)
		MMX (MMX technology supported)
		FXSR (FXSAVE and FXSTOR instructions supported)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Multi-threading)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz              
	Voltage: 1.0 V
	External Clock: 133 MHz
	Max Speed: 3800 MHz
	Current Speed: 2666 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: 0x0005
	L2 Cache Handle: 0x0006
	L3 Cache Handle: 0x0007
	Serial Number: To Be Filled By O.E.M.
	Asset Tag: To Be Filled By O.E.M.
	Part Number: To Be Filled By O.E.M.
	Core Count: 4
	Core Enabled: 4
	Thread Count: 4
	Characteristics:
		64-bit capable

[ non-cpu stuff snipped ]

****************************************


Looking through dmesg... yep, seems to only be seeing one:

****************************************

$ dmesg| grep -i cpu
[    0.000000] ACPI: SSDT 0x00000000DFE89760 000363 (v01 DpgPmm CpuPm    00000012 INTL 20060113)
[    0.000000] smpboot: Boot CPU (id 0) not listed by BIOS
[    0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[    0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:1 nr_cpu_ids:1 nr_node_ids:1
[    0.000000] percpu: Embedded 36 pages/cpu @ffff9ea75fc00000 s108888 r8192 d30376 u2097152
[    0.000000] pcpu-alloc: s108888 r8192 d30376 u2097152 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] WARNING: CPU: 0 PID: 0 at drivers/iommu/dmar.c:843 warn_invalid_dmar.part.9+0x69/0x80
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.11.6-201.fc25.x86_64 #1
[    0.000000]  start_cpu+0x14/0x14
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] 	RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=1
[    0.000000] 	Offload RCU callbacks from all CPUs
[    0.000000] 	Offload RCU callbacks from CPUs: 0.
[    0.013698] CPU: Physical Processor ID: 0
[    0.013699] CPU: Processor Core ID: 0
[    0.013703] mce: CPU supports 9 MCE banks
[    0.013709] CPU0: Thermal monitoring enabled (TM1)
[    0.030000] core: CPU erratum AAJ80 worked around
[    0.030000] core: CPUID marked event: 'bus cycles' unavailable
[    0.030000] smp: Bringing up secondary CPUs ...
[    0.030000] smp: Brought up 1 node, 1 CPU
[    0.131243] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.134270] cpuidle: using governor menu
[    0.161819] HPET: 8 timers in total, 1 timers will be used for per-cpu timer
[    3.375504] [drm] GART: num cpu pages 262144, num gpu pages 262144
[    3.385789] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000010000c00 and cpu addr 0xffff9ea750b97c00
[    3.385791] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000010000c0c and cpu addr 0xffff9ea750b97c0c
[    3.386144] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x000000000005c598 and cpu addr 0xffffb7e10141c598

****************************************


Version-Release number of selected component (if applicable):


How reproducible:

100% of the time.


Steps to Reproduce:
1. Install Fedora 25, update to latest packages with dnf.
2. Problem as above.

Comment 1 Justin Clift 2017-06-25 17:29:19 UTC
Forgot to mention... the obvious step after the above was to look in the BIOS settings.  Everything in there was set to auto and it definitely as "ALL" cores enabled (from the BIOS point of view).

Comment 2 Justin Clift 2017-06-25 17:40:47 UTC
Also:

$ sudo lshw -class cpu
  *-cpu                     
       description: CPU
       product: Intel(R) Core(TM) i5 CPU         750  @ 2.67GHz
       vendor: Intel Corp.
       physical id: 4
       bus info: cpu@0
       version: Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz
       serial: To Be Filled By O.E.M.
       slot: LGA1156
       size: 2666MHz
       capacity: 3800MHz
       width: 64 bits
       clock: 133MHz
       capabilities: x86-64 fpu fpu_exception wp 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 rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexpriority ept vpid dtherm ida
       configuration: cores=4 enabledcores=4 threads=4

Comment 3 Justin Clift 2017-06-25 18:00:27 UTC
Meh, ignore this.  Looks like an ACPI problem.  Adding "acpi=off" to the kernel params lets them be seen.