diff options
author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2023-03-04 12:09:24 +0100 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2023-03-04 12:41:16 +0100 |
commit | e207c8aebdcdb88bc8ab838e2ac3dd1774d6a618 (patch) | |
tree | 4bd6629235c9e849385736d750383b117fc4ebcf | |
parent | c803ec6dae5556fa35d6bd8124aa536633887f77 (diff) |
Improve CPU computation code
-rw-r--r-- | linux/Platform.c | 5 | ||||
-rw-r--r-- | netbsd/Platform.c | 4 | ||||
-rw-r--r-- | openbsd/Platform.c | 3 | ||||
-rw-r--r-- | pcp/Platform.c | 5 |
4 files changed, 6 insertions, 11 deletions
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; |