mirror of
https://github.com/xzeldon/htop.git
synced 2025-07-13 12:44:34 +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
@ -169,11 +169,25 @@ int Platform_getMaxPid() {
|
||||
|
||||
double Platform_setCPUValues(Meter* this, unsigned int cpu) {
|
||||
const OpenBSDProcessList* pl = (const OpenBSDProcessList*) this->pl;
|
||||
const CPUData* cpuData = &(pl->cpus[cpu]);
|
||||
double total = cpuData->totalPeriod == 0 ? 1 : cpuData->totalPeriod;
|
||||
const CPUData* cpuData = NULL;
|
||||
double total;
|
||||
double totalPercent;
|
||||
double* v = this->values;
|
||||
|
||||
for (unsigned int i = 0; i < pl->super.activeCPUs; i++) {
|
||||
if (pl->cpus[i].cpuIndex == cpu) {
|
||||
cpuData = &(pl->cpus[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!cpuData) {
|
||||
this->curItems = 0;
|
||||
return NAN;
|
||||
}
|
||||
|
||||
total = cpuData->totalPeriod == 0 ? 1 : cpuData->totalPeriod;
|
||||
|
||||
v[CPU_METER_NICE] = cpuData->nicePeriod / total * 100.0;
|
||||
v[CPU_METER_NORMAL] = cpuData->userPeriod / total * 100.0;
|
||||
if (this->pl->settings->detailedCPUTime) {
|
||||
|
Reference in New Issue
Block a user