diff options
| author | Dennis Kobert <dennis@kobert.dev> | 2025-03-09 19:41:46 +0100 |
|---|---|---|
| committer | Dennis Kobert <dennis@kobert.dev> | 2025-03-09 19:41:46 +0100 |
| commit | fda1763d8b3240d97925ca1eeba316008e1ca7c5 (patch) | |
| tree | 4002d993f4bcf31b644593e47f034a0854cd20b6 /src/energy.rs | |
| parent | 8626d53bf481c23025d388583c3904fa33741541 (diff) | |
Use sysfs for reading system power
Diffstat (limited to 'src/energy.rs')
| -rw-r--r-- | src/energy.rs | 26 |
1 files changed, 1 insertions, 25 deletions
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<DashMap<Pid, u64>>, request_receiver: mpsc::Receiver<Request>, update_interval: Duration, - package_energy: PackageEnergy, - package_energy_counter: Counter, } impl EnergyService { @@ -46,8 +41,6 @@ impl EnergyService { shared_budgets: Arc<DashMap<Pid, u64>>, request_receiver: mpsc::Receiver<Request>, 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<u64> { @@ -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(); |
