summaryrefslogtreecommitdiff
path: root/src/mock
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2025-03-09 13:15:13 +0100
committerDennis Kobert <dennis@kobert.dev>2025-03-09 13:15:13 +0100
commitb720a1253fb8cc8a3ba3454014bad239233368c1 (patch)
treef1f7fa25edd5c47e3c30c4b984fa9d557409c7d7 /src/mock
parent7b2ec191751489157a9e3193b8aeaabd72fae14a (diff)
Restructure project
Diffstat (limited to 'src/mock')
-rw-r--r--src/mock/perf.rs60
1 files changed, 0 insertions, 60 deletions
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<u64, Counters>,
-}
-
-struct Counters {
- group: Group,
- counters: Vec<Counter>,
-}
-
-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
- }
-}