diff --git a/linux/Platform.c b/linux/Platform.c index 93be689d..92da0858 100644 --- a/linux/Platform.c +++ b/linux/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; diff --git a/netbsd/Platform.c b/netbsd/Platform.c index 9b07d8f0..a79f9c0b 100644 --- a/netbsd/Platform.c +++ b/netbsd/Platform.c @@ -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; diff --git a/openbsd/Platform.c b/openbsd/Platform.c index 615397e2..e49a0f81 100644 --- a/openbsd/Platform.c +++ b/openbsd/Platform.c @@ -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); diff --git a/pcp/Platform.c b/pcp/Platform.c index 7319fcb0..22963dda 100644 --- a/pcp/Platform.c +++ b/pcp/Platform.c @@ -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;