From 105255c20fffc20befd06c14bbd3a9dd2134ebe1 Mon Sep 17 00:00:00 2001 From: not-matthias Date: Thu, 20 Aug 2026 15:33:04 +0200 Subject: [PATCH 1/2] fix: allow --simulation-track-subprocess without a value ArgAction::Set made the value mandatory, so the bare flag failed with "a value is required". Presence-only matches the false default. --- src/cli/shared.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/cli/shared.rs b/src/cli/shared.rs index 14f3bfda..1fe13474 100644 --- a/src/cli/shared.rs +++ b/src/cli/shared.rs @@ -136,12 +136,7 @@ pub struct ExecAndRunSharedArgs { pub exclude_allocations: bool, /// Measure the subprocesses spawned by the benchmarked process in simulation mode. - #[arg( - long, - env = "CODSPEED_SIMULATION_TRACK_SUBPROCESS", - default_value_t = false, - action = clap::ArgAction::Set - )] + #[arg(long, env = "CODSPEED_SIMULATION_TRACK_SUBPROCESS")] pub simulation_track_subprocess: bool, #[command(flatten)] From ab1a9fbcf1889683649a1dce31ba301808a0d25c Mon Sep 17 00:00:00 2001 From: not-matthias Date: Fri, 21 Aug 2026 11:56:41 +0200 Subject: [PATCH 2/2] refactor(valgrind): tie --separate-threads to subprocess tracking Per-thread dumps are now enabled with --simulation-track-subprocess instead of --cycle-estimation, so thread separation follows the option that changes what is measured rather than how cycles are estimated. --- src/executor/valgrind/measure.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/executor/valgrind/measure.rs b/src/executor/valgrind/measure.rs index 54bddf1a..62807b92 100644 --- a/src/executor/valgrind/measure.rs +++ b/src/executor/valgrind/measure.rs @@ -33,19 +33,18 @@ fn get_valgrind_args(tool: &SimulationTool, config: &ExecutorConfig) -> Vec { if config.cycle_estimation { args.push("--cycle-estimation=yes".to_string()); - args.push("--separate-threads=yes".to_string()); - } else { - args.push("--separate-threads=no".to_string()); } args.push("--tool=callgrind".to_string());