mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-12 12:14:36 +03:00
Rework CPU counting
Currently htop does not support offline CPUs and hot-swapping, e.g. via echo 0 > /sys/devices/system/cpu/cpu2/online Split the current single cpuCount variable into activeCPUs and existingCPUs. Supersedes: #650 Related: #580
This commit is contained in:

committed by
Benny Baumann

parent
c9abd788b1
commit
41af31be7f
@ -186,21 +186,21 @@ int Platform_getMaxPid() {
|
||||
|
||||
static double Platform_setCPUAverageValues(Meter* mtr) {
|
||||
const ProcessList* dpl = mtr->pl;
|
||||
unsigned int cpus = dpl->cpuCount;
|
||||
unsigned int activeCPUs = dpl->activeCPUs;
|
||||
double sumNice = 0.0;
|
||||
double sumNormal = 0.0;
|
||||
double sumKernel = 0.0;
|
||||
double sumPercent = 0.0;
|
||||
for (unsigned int i = 1; i <= cpus; i++) {
|
||||
for (unsigned int i = 1; i <= dpl->existingCPUs; i++) {
|
||||
sumPercent += Platform_setCPUValues(mtr, i);
|
||||
sumNice += mtr->values[CPU_METER_NICE];
|
||||
sumNormal += mtr->values[CPU_METER_NORMAL];
|
||||
sumKernel += mtr->values[CPU_METER_KERNEL];
|
||||
}
|
||||
mtr->values[CPU_METER_NICE] = sumNice / cpus;
|
||||
mtr->values[CPU_METER_NORMAL] = sumNormal / cpus;
|
||||
mtr->values[CPU_METER_KERNEL] = sumKernel / cpus;
|
||||
return sumPercent / cpus;
|
||||
mtr->values[CPU_METER_NICE] = sumNice / activeCPUs;
|
||||
mtr->values[CPU_METER_NORMAL] = sumNormal / activeCPUs;
|
||||
mtr->values[CPU_METER_KERNEL] = sumKernel / activeCPUs;
|
||||
return sumPercent / activeCPUs;
|
||||
}
|
||||
|
||||
double Platform_setCPUValues(Meter* mtr, unsigned int cpu) {
|
||||
|
Reference in New Issue
Block a user