From 8d600e7536f6319c3e06fb26fc44dcfd38601439 Mon Sep 17 00:00:00 2001 From: Lennard Kittner Date: Sun, 30 Mar 2025 19:29:21 +0200 Subject: timing changes budget bug fix --- src/scheduler.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/scheduler.rs b/src/scheduler.rs index 0a83b12..fc4d448 100644 --- a/src/scheduler.rs +++ b/src/scheduler.rs @@ -18,7 +18,7 @@ use std::time::{Duration, Instant}; use crate::Pid; -const SLICE_US: u64 = 50000; +const SLICE_US: u64 = 100000; pub struct Scheduler<'a> { bpf: BpfScheduler<'a>, @@ -106,7 +106,7 @@ impl<'a> Scheduler<'a> { shared_cpu_frequency_ranges.clone(), shared_policy_frequency_ranges.clone(), shared_cpu_current_frequencies.clone(), - Duration::from_millis(1), + Duration::from_millis(30), )?; frequency_sender @@ -174,15 +174,15 @@ impl<'a> Scheduler<'a> { e.insert(Instant::now()); // New task - register it with the energy service self.energy_sender - .try_send(EnergyRequest::NewTask(task.pid)) + .try_send(EnergyRequest::NewTask(task.pid, task.cpu)) .unwrap(); } // Get current budget for this task match self.shared_budgets.try_get(&task.pid) { dashmap::try_result::TryResult::Present(budget) => match *budget { - 0 => self.task_queue.push_back(task), - _ => self.no_budget_task_queue.push_back(task), + 0 => self.no_budget_task_queue.push_back(task), + _ => self.task_queue.push_back(task), }, _ => self.task_queue.push_back(task), } @@ -192,7 +192,7 @@ impl<'a> Scheduler<'a> { fn dispatch_next_task(&mut self) { if let Some(task) = self.task_queue.pop_front() { let mut dispatched_task = DispatchedTask::new(&task); - + //TODO: do we have to migrate tasks back from e cores? self.managed_tasks.insert(task.pid, Instant::now()); let cpu = self.bpf.select_cpu(task.pid, task.cpu, 0); @@ -254,7 +254,7 @@ impl<'a> Scheduler<'a> { fn cleanup_old_tasks(&mut self) { let current = Instant::now(); for (pid, last_scheduled) in &self.managed_tasks { - if current - *last_scheduled > Duration::from_secs(500) { + if current - *last_scheduled > Duration::from_secs(5) { self.to_remove.push(*pid); } } -- cgit v1.3.1