summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2025-04-15 13:30:22 +0200
committerDennis Kobert <dennis@kobert.dev>2025-04-15 13:30:22 +0200
commitfecda0a5b5d0db9a18eb4ba6f3bc2e9875b9b1f2 (patch)
tree7c1fb46de2e048aff2f8855ecf1ed7c96347a07a
parentf19c7e3a5d942a566f31fdcc44061ec4b6c4eb5a (diff)
Use rapl for total system energy
-rw-r--r--energy-monitor/src/process.rs14
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