top cpu usage shows as 0% despite spinning process
I've encountered an issue when running top that results in a particular CPU core showing as 100% idle despite a process spinning on that core (turbostat, for example, shows 100% busy). It only happens on some cores. I have confirmed it occurs with my distribution top (procps-ng 3.3.10) as well as with 3.3.15 built from source and master built from git source.
You can see in the below that cpu 10, 11 and 13 are all reporting "100% idle" in top, but "100% busy" in turbostat. In reality, they are 100% busy, the same as the other cores 6+.
I'm running CentOS7 with kernel 4.19.43 (this behavior was not present on 4.14.71, or on the original CentOS kernel).
Here's the output from top:
top - 13:19:54 up 21:39, 3 users, load average: 15.47, 15.61, 15.46
Tasks: 274 total, 2 running, 272 sleeping, 0 stopped, 0 zombie
%Cpu0 : 11.1 us, 15.6 sy, 0.0 ni, 73.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 13.9 us, 4.1 sy, 0.0 ni, 71.9 id, 0.0 wa, 0.0 hi, 10.1 si, 0.0 st
%Cpu2 : 16.2 us, 4.0 sy, 0.0 ni, 75.5 id, 0.0 wa, 0.0 hi, 4.3 si, 0.0 st
%Cpu3 : 14.4 us, 4.6 sy, 0.0 ni, 80.6 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
%Cpu4 : 12.1 us, 5.9 sy, 0.0 ni, 70.7 id, 0.0 wa, 0.0 hi, 11.4 si, 0.0 st
%Cpu5 : 17.0 us, 3.8 sy, 0.0 ni, 75.8 id, 0.0 wa, 0.0 hi, 3.4 si, 0.0 st
%Cpu6 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu8 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu9 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu10 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu11 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu12 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu13 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu14 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu15 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu16 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu17 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu18 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu19 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Here's the output from turbostat:
Package Core CPU Avg_MHz Busy% Bzy_MHz TSC_MHz IRQ SMI CPU%c1 CPU%c3 CPU%c6 CoreTmp PkgTmp PkgWatt RAMWatt PKG_% RAM_%
- - - 3097 81.69 3700 3177 802894 0 18.31 0.00 0.00 48 48 181.94 0.00 0.00 0.00
0 0 0 1452 38.29 3700 3177 243066 0 61.71 0.00 0.00 35 42 78.07 0.00 0.00 0.00
0 1 1 1773 46.76 3700 3177 137996 0 53.24 0.00 0.00 35
0 2 2 1436 37.88 3700 3177 104214 0 62.12 0.00 0.00 36
0 3 3 1143 30.14 3700 3177 75248 0 69.86 0.00 0.00 35
0 4 4 1516 39.99 3700 3177 128367 0 60.01 0.00 0.00 35
0 8 5 1544 40.71 3700 3177 113914 0 59.29 0.00 0.00 35
0 9 6 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 41
0 10 7 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 42
0 11 8 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 41
0 12 9 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 41
1 0 10 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 41 48 103.88 0.00 0.00 0.00
1 1 11 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 45
1 2 12 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 47
1 3 13 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 48
1 4 14 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 45
1 8 15 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 43
1 9 16 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 44
1 10 17 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 42
1 11 18 3791 100.00 3700 3177 5 0 0.00 0.00 0.00 42
1 12 19 3791 100.00 3700 3177 24 0 0.00 0.00 0.00 41