summaryrefslogtreecommitdiff
path: root/src/energy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/energy.rs')
-rw-r--r--src/energy.rs25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/energy.rs b/src/energy.rs
index 754ecac..8d479ae 100644
--- a/src/energy.rs
+++ b/src/energy.rs
@@ -28,9 +28,9 @@ pub enum Request {
}
pub struct TaskInfo {
pub cpu: AtomicI32,
- pub budget: AtomicI64,
+ pub budget_mj: AtomicI64,
pub last_total_runtime: AtomicU64,
- pub power_draw: AtomicU64,
+ pub power_draw_mw: AtomicU64,
pub running_on_e_core: AtomicBool,
pub last_scheduled: AtomicI64,
}
@@ -40,7 +40,7 @@ impl TaskInfo {
self.cpu.load(Relaxed)
}
pub fn read_budget(&self) -> i64 {
- self.budget.load(Relaxed)
+ self.budget_mj.load(Relaxed)
}
pub fn read_time_since_last_schedule(&self) -> Option<Duration> {
let old_time = self.last_scheduled.load(Relaxed);
@@ -65,11 +65,11 @@ impl TaskInfo {
self.last_scheduled.store(last_scheduled, Relaxed);
}
pub fn set_budget(&self, budget: i64) {
- self.budget.store(budget, Relaxed);
+ self.budget_mj.store(budget, Relaxed);
}
pub fn add_budget(&self, budget: i64) {
- self.budget.fetch_add(budget, Relaxed);
- self.budget.fetch_min(budget::MAX_BUDGET_MJ, Relaxed);
+ self.budget_mj.fetch_add(budget, Relaxed);
+ self.budget_mj.fetch_min(budget::MAX_BUDGET_MJ, Relaxed);
}
pub fn set_running_on_e_core(&self, running_on_e_core: bool) {
self.running_on_e_core.store(running_on_e_core, Relaxed);
@@ -78,16 +78,16 @@ impl TaskInfo {
new_running_time - self.last_total_runtime.swap(new_running_time, Relaxed)
}
pub fn update_budget(&self, running_time: Duration) -> i64 {
- let power_draw = self.power_draw.load(Relaxed);
- self.budget.fetch_sub(
+ let power_draw = self.power_draw_mw.load(Relaxed);
+ self.budget_mj.fetch_sub(
(power_draw as f64 * running_time.as_secs_f64()) as i64,
Relaxed,
);
- self.budget.fetch_max(-budget::MAX_BUDGET_MJ, Relaxed)
+ self.budget_mj.fetch_max(-budget::MAX_BUDGET_MJ, Relaxed)
}
// Set powerdraw in milli watt
pub fn set_power_draw(&self, power_draw_mw: u64) {
- self.power_draw.store(power_draw_mw, Relaxed);
+ self.power_draw_mw.store(power_draw_mw, Relaxed);
}
}
@@ -95,11 +95,11 @@ impl Default for TaskInfo {
fn default() -> Self {
Self {
cpu: Default::default(),
- budget: AtomicI64::new(budget::MAX_BUDGET_MJ),
+ budget_mj: AtomicI64::new(budget::MAX_BUDGET_MJ),
last_total_runtime: Default::default(),
running_on_e_core: Default::default(),
last_scheduled: AtomicI64::new(-1),
- power_draw: AtomicU64::new(DEFAULT_POWER_DRAW_MW),
+ power_draw_mw: AtomicU64::new(DEFAULT_POWER_DRAW_MW),
}
}
}
@@ -260,7 +260,6 @@ impl EnergyService {
.map(|info| info.tree_energy_j)
.unwrap_or(0.);
let elapsed = self.last_measurement.elapsed();
- let mut i = 0;
for pid in &self.active_processes {
let mut process_info = self.process_info.write().unwrap();
if let Some(info) = process_info.get_mut(pid) {