From fda1763d8b3240d97925ca1eeba316008e1ca7c5 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 9 Mar 2025 19:41:46 +0100 Subject: Use sysfs for reading system power --- src/energy.rs | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) (limited to 'src/energy.rs') diff --git a/src/energy.rs b/src/energy.rs index 8400dd7..9fe37b5 100644 --- a/src/energy.rs +++ b/src/energy.rs @@ -10,10 +10,7 @@ use std::time::Duration; use crate::Pid; use dashmap::DashMap; -use crate::energy::rapl::PackageEnergy; pub use budget::BudgetPolicy; -use perf_event::events::Event; -use perf_event::{Builder, Counter}; pub use trackers::{Estimator, KernelDriver, PerfEstimator}; pub enum Request { @@ -35,8 +32,6 @@ pub struct EnergyService { shared_budgets: Arc>, request_receiver: mpsc::Receiver, update_interval: Duration, - package_energy: PackageEnergy, - package_energy_counter: Counter, } impl EnergyService { @@ -46,8 +41,6 @@ impl EnergyService { shared_budgets: Arc>, request_receiver: mpsc::Receiver, update_interval: Duration, - package_energy: PackageEnergy, - package_energy_counter: Counter, ) -> Self { Self { estimator, @@ -57,8 +50,6 @@ impl EnergyService { shared_budgets, request_receiver, update_interval, - package_energy, - package_energy_counter, } } @@ -142,8 +133,7 @@ impl EnergyService { } fn package_energy(&mut self) -> f64 { - self.package_energy - .to_joules(self.package_energy_counter.read().unwrap_or(0)) + rapl::read_package_energy().unwrap() } pub fn process_energy(&self, pid: Pid) -> Option { @@ -179,18 +169,6 @@ pub fn start_energy_service( // shouldn't be a problem because we are privileged // if PackageEnergy::check_paranoid().unwrap_or(3) > 0 {} - let package_energy = PackageEnergy::new().unwrap(); - - // Any cpu should be fine because the package power should be the same for every cpu - let mut package_energy_counter = Builder::new() - .kind(Event::Raw( - package_energy.get_type(), - package_energy.get_event_config(), - )) - .any_cpu() - .build()?; - package_energy_counter.enable()?; - // Create and start the energy service let service = EnergyService::new( estimator, @@ -198,8 +176,6 @@ pub fn start_energy_service( shared_budgets, request_receiver, Duration::from_millis(50), // 50ms update interval - package_energy, - package_energy_counter, ); service.run(); -- cgit v1.3.1