summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2020-02-03 00:50:45 +0200
committerManos Pitsidianakis <el13635@mail.ntua.gr>2020-10-01 18:57:46 +0300
commitc27856ca24577dc5a1926de91f8878f48b87e83f (patch)
treeb635cbaf2090d1257fcd190e931368d5f6ca8ade
parent35c301741996fa6e21b5801f1b011b15f6927169 (diff)
Include nice value in busy interval calculation
Closes #10
-rw-r--r--src/ui/components/kernel.rs5
-rw-r--r--src/ui/components/utilities.rs21
2 files changed, 22 insertions, 4 deletions
diff --git a/src/ui/components/kernel.rs b/src/ui/components/kernel.rs
index 0ca7cd5..90f05a4 100644
--- a/src/ui/components/kernel.rs
+++ b/src/ui/components/kernel.rs
@@ -163,7 +163,10 @@ impl KernelMetrics {
let iowait_length = cpu_stat
.iowait_time
.saturating_sub(self.cpu_stat[i].iowait_time);
- let bar_length: usize = (((busy_length + iowait_length) as f64
+ let bar_length: usize = ((cpu_stat
+ .busy_time()
+ .saturating_sub(self.cpu_stat[i].busy_time())
+ as f64
/ (cpu_stat
.total_time()
.saturating_sub(self.cpu_stat[i].total_time())) as f64)
diff --git a/src/ui/components/utilities.rs b/src/ui/components/utilities.rs
index 409dbb6..bb124cb 100644
--- a/src/ui/components/utilities.rs
+++ b/src/ui/components/utilities.rs
@@ -82,15 +82,30 @@ pub struct Stat {
}
impl Stat {
+ #[inline(always)]
pub fn total_time(&self) -> usize {
- (self.user_time - self.guest)
+ self.user_time
+ self.system_time
+ self.irq
+ self.soft_irq
- + (self.nice_time - self.guest_nice)
+ + self.nice_time
+ self.idle_time
+ self.iowait_time
- + (self.guest + self.guest_nice)
+ + self.guest
+ + self.guest_nice
+ + self.steal
+ }
+
+ #[inline(always)]
+ pub fn busy_time(&self) -> usize {
+ self.user_time
+ + self.system_time
+ + self.irq
+ + self.soft_irq
+ + self.nice_time
+ + self.iowait_time
+ + self.guest
+ + self.guest_nice
+ self.steal
}
}