summaryrefslogtreecommitdiff
path: root/src/energy.rs
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2025-03-09 19:41:46 +0100
committerDennis Kobert <dennis@kobert.dev>2025-03-09 19:41:46 +0100
commitfda1763d8b3240d97925ca1eeba316008e1ca7c5 (patch)
tree4002d993f4bcf31b644593e47f034a0854cd20b6 /src/energy.rs
parent8626d53bf481c23025d388583c3904fa33741541 (diff)
Use sysfs for reading system power
Diffstat (limited to 'src/energy.rs')
-rw-r--r--src/energy.rs26
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();