summaryrefslogtreecommitdiff
path: root/src/energy
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2025-03-10 21:36:30 +0100
committerDennis Kobert <dennis@kobert.dev>2025-03-25 15:52:04 +0100
commit776dee32aca73ded5c0720afbe25ef2aae7b67f3 (patch)
tree1e4c8b9bde5c944869134e0ed751315efe09198a /src/energy
parentc2d63b96cbbd3be653fa0023fadae7df3babaf32 (diff)
Implement benchmarking
Diffstat (limited to 'src/energy')
-rw-r--r--src/energy/trackers/perf.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/energy/trackers/perf.rs b/src/energy/trackers/perf.rs
index 7c26bdb..17bc693 100644
--- a/src/energy/trackers/perf.rs
+++ b/src/energy/trackers/perf.rs
@@ -24,14 +24,22 @@ static EVENT_TYPES: &[(f32, Event)] = &[
impl Estimator for PerfEstimator {
fn start_trace(&mut self, pid: u64) {
- let Ok(mut group) = Group::new() else {
+ let Ok(mut group) = Group::new_with_pid_and_cpu(-1, 0) else {
eprintln!("Failed to create performance counter group for PID {}", pid);
return;
};
let counters: Result<Vec<_>, _> = EVENT_TYPES
.iter()
- .map(|(_, kind)| Builder::new().group(&mut group).kind(kind.clone()).build())
+ .map(|(_, kind)| {
+ Builder::new()
+ .group(&mut group)
+ .kind(kind.clone())
+ // .observe_pid(pid as i32)
+ .observe_pid(-1)
+ .one_cpu(0)
+ .build()
+ })
.collect();
let counters = match counters {