From b720a1253fb8cc8a3ba3454014bad239233368c1 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 9 Mar 2025 13:15:13 +0100 Subject: Restructure project --- src/mock/perf.rs | 60 -------------------------------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 src/mock/perf.rs (limited to 'src/mock') diff --git a/src/mock/perf.rs b/src/mock/perf.rs deleted file mode 100644 index 3dde836..0000000 --- a/src/mock/perf.rs +++ /dev/null @@ -1,60 +0,0 @@ -use std::collections::HashMap; - -use events::Event; -use perf_event::events::Hardware; -use perf_event::*; - -#[derive(Default)] -pub struct PerfEstimator { - registry: HashMap, -} - -struct Counters { - group: Group, - counters: Vec, -} - -static EVENT_TYPES: &[(f32, Event)] = &[ - (1.0, Event::Hardware(Hardware::CPU_CYCLES)), - (2.0, Event::Hardware(Hardware::INSTRUCTIONS)), -]; - -impl super::KernelModule for PerfEstimator { - fn start_trace(&mut self, pid: u64) { - let Ok(mut group) = Group::new() else { - println!("failed to create Group"); - return; - }; - let counters = EVENT_TYPES - .iter() - .map(|(_, kind)| { - Builder::new() - .group(&mut group) - .kind(kind.clone()) - .build() - .unwrap() - }) - .collect(); - - group.enable().unwrap(); - let counters = Counters { counters, group }; - self.registry.insert(pid, counters); - } - - fn stop_trace(&mut self, pid: u64) { - self.registry.remove(&pid); - } - - fn read_consumption(&mut self, pid: u64) -> u64 { - let Some(counters) = self.registry.get_mut(&pid) else { - return 0; - }; - let mut sum = 0; - let counts = counters.group.read().unwrap(); - for ((factor, _ty), count) in EVENT_TYPES.iter().zip(counts.iter()) { - sum += *factor as u64 * count.1; - } - // dbg!(sum); - sum - } -} -- cgit v1.3.1