Improve CPU computation code

portage
Guillaume Gomez 3 years ago committed by BenBE
parent c803ec6dae
commit e207c8aebd
  1. 5
      linux/Platform.c
  2. 4
      netbsd/Platform.c
  3. 3
      openbsd/Platform.c
  4. 5
      pcp/Platform.c

@ -324,10 +324,9 @@ double Platform_setCPUValues(Meter* this, unsigned int cpu) {
v[CPU_METER_GUEST] = cpuData->guestPeriod / total * 100.0;
v[CPU_METER_IOWAIT] = cpuData->ioWaitPeriod / total * 100.0;
this->curItems = 8;
percent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ] + v[CPU_METER_SOFTIRQ];
if (this->pl->settings->accountGuestInCPUMeter) {
percent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ] + v[CPU_METER_SOFTIRQ] + v[CPU_METER_STEAL] + v[CPU_METER_GUEST];
} else {
percent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ] + v[CPU_METER_SOFTIRQ];
percent += v[CPU_METER_STEAL] + v[CPU_METER_GUEST];
}
} else {
v[CPU_METER_KERNEL] = cpuData->systemAllPeriod / total * 100.0;

@ -254,14 +254,12 @@ double Platform_setCPUValues(Meter* this, int cpu) {
v[CPU_METER_IOWAIT] = 0.0;
v[CPU_METER_FREQUENCY] = NAN;
this->curItems = 8;
totalPercent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ];
} else {
v[CPU_METER_KERNEL] = cpuData->sysAllPeriod / total * 100.0;
v[CPU_METER_IRQ] = 0.0; // No steal nor guest on NetBSD
totalPercent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL];
this->curItems = 4;
}
totalPercent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ];
totalPercent = CLAMP(totalPercent, 0.0, 100.0);
v[CPU_METER_FREQUENCY] = cpuData->frequency;

@ -205,13 +205,12 @@ double Platform_setCPUValues(Meter* this, unsigned int cpu) {
v[CPU_METER_IOWAIT] = 0.0;
v[CPU_METER_FREQUENCY] = NAN;
this->curItems = 8;
totalPercent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ];
} else {
v[CPU_METER_KERNEL] = cpuData->sysAllPeriod / total * 100.0;
v[CPU_METER_IRQ] = 0.0; // No steal nor guest on OpenBSD
totalPercent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL];
this->curItems = 4;
}
totalPercent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ];
totalPercent = CLAMP(totalPercent, 0.0, 100.0);

@ -501,10 +501,9 @@ static double Platform_setOneCPUValues(Meter* this, pmAtomValue* values) {
v[CPU_METER_GUEST] = values[CPU_GUEST_PERIOD].ull / total * 100.0;
v[CPU_METER_IOWAIT] = values[CPU_IOWAIT_PERIOD].ull / total * 100.0;
this->curItems = 8;
percent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ] + v[CPU_METER_SOFTIRQ];
if (this->pl->settings->accountGuestInCPUMeter) {
percent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ] + v[CPU_METER_SOFTIRQ] + v[CPU_METER_STEAL] + v[CPU_METER_GUEST];
} else {
percent = v[CPU_METER_NICE] + v[CPU_METER_NORMAL] + v[CPU_METER_KERNEL] + v[CPU_METER_IRQ] + v[CPU_METER_SOFTIRQ];
percent += v[CPU_METER_STEAL] + v[CPU_METER_GUEST];
}
} else {
v[CPU_METER_KERNEL] = values[CPU_SYSTEM_ALL_PERIOD].ull / total * 100.0;

Loading…
Cancel
Save