From 776dee32aca73ded5c0720afbe25ef2aae7b67f3 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Mon, 10 Mar 2025 21:36:30 +0100 Subject: Implement benchmarking --- src/main.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index d3c9628..f3d4992 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,9 @@ mod bpf_skel; +use benchmark::BenchmarkScheduler; pub use bpf_skel::*; pub mod bpf_intf; +mod benchmark; mod e_core_selector; mod energy; mod freq; @@ -27,6 +29,14 @@ fn main() -> Result<()> { .action(ArgAction::SetTrue) .required(false), ) + .arg( + Arg::new("benchmark") + .short('b') + .long("benchmark") + .help("Use this flag to enable benckmarking mode") + .action(ArgAction::SetTrue) + .required(false), + ) .arg( Arg::new("power_cap") .long("energy_cap") @@ -38,9 +48,16 @@ fn main() -> Result<()> { let power_cap = *matches.get_one::("power_cap").unwrap_or(&u64::MAX); let use_mocking = matches.get_flag("mock"); + let benchmark = matches.get_flag("benchmark"); // Initialize and load the scheduler. let mut open_object = MaybeUninit::uninit(); + let log_path = "logs.csv"; + if benchmark { + let mut sched = BenchmarkScheduler::init(&mut open_object, log_path)?; + sched.run(); + return Ok(()); + } loop { let mut sched = Scheduler::init(&mut open_object, use_mocking, power_cap)?; if !sched.run()?.should_restart() { -- cgit v1.3.1