diff options
author | Dennis Kobert <dennis@kobert.dev> | 2025-04-15 13:30:22 +0200 |
---|---|---|
committer | Dennis Kobert <dennis@kobert.dev> | 2025-04-15 13:30:22 +0200 |
commit | fecda0a5b5d0db9a18eb4ba6f3bc2e9875b9b1f2 (patch) | |
tree | 7c1fb46de2e048aff2f8855ecf1ed7c96347a07a | |
parent | f19c7e3a5d942a566f31fdcc44061ec4b6c4eb5a (diff) |
Use rapl for total system energy
-rw-r--r-- | energy-monitor/src/process.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/energy-monitor/src/process.rs b/energy-monitor/src/process.rs index 64b278a..b9d00fd 100644 --- a/energy-monitor/src/process.rs +++ b/energy-monitor/src/process.rs @@ -13,6 +13,7 @@ pub struct ProcessData { pub started_at: Instant, pub socket: UnixStream, pub process_info: HashMap<Pid, ProcessInfo>, + pub rapl_offset: f64, } impl ProcessData { @@ -23,6 +24,7 @@ impl ProcessData { started_at: Instant::now(), process_info: HashMap::new(), socket: connect_to_service(SOCKET_PATH).expect("Failed to connect to socket"), + rapl_offset: read_package_energy().unwrap(), } } @@ -78,13 +80,11 @@ impl ProcessData { // Add total energy to history let elapsed = self.started_at.elapsed().as_secs_f64(); - let total_energy = (total_energy - + self - .total_energy_history - .last() - .map(|(_, x)| x) - .unwrap_or(&total_energy)) - * 0.5; + + let rapl_energy = read_package_energy().unwrap(); + let total_energy = rapl_energy - self.rapl_offset; + self.rapl_offset = rapl_energy; + self.add_total_energy_point( elapsed, (total_energy |