diag(runtime): wake-path counters in SchedulerStats + RuntimeStats::wake_diag; RQDIAG/DIAG lines in rq_runtime and general (target 5, finding 17)
This commit is contained in:
+19
-4
@@ -433,9 +433,19 @@ fn bench_pp_tokio_multi() -> (u64, u128) {
|
||||
// 5. spawn_pair_control — section 4 minus the messages
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/// Target-5 instrumentation: emit the runtime's wake-path counters for one
|
||||
/// run when SMARM_WAKE_DIAG is set. Off by default so sweep.py output is
|
||||
/// unchanged.
|
||||
fn wake_diag(section: &str, threads: usize, rt: &smarm::runtime::Runtime, us: u128) {
|
||||
if std::env::var_os("SMARM_WAKE_DIAG").is_some() {
|
||||
println!("DIAG,{section},{threads},{us},{}", rt.stats().wake_diag());
|
||||
}
|
||||
}
|
||||
|
||||
fn bench_ctl_smarm(threads: usize) -> (u64, u128) {
|
||||
let start = Instant::now();
|
||||
smarm::runtime::init(bench_cfg(threads)).run(|| {
|
||||
let rt = smarm::runtime::init(bench_cfg(threads));
|
||||
rt.run(|| {
|
||||
for _ in 0..PP_ROUNDS {
|
||||
let hb = smarm::spawn(|| {});
|
||||
let ha = smarm::spawn(|| {});
|
||||
@@ -443,7 +453,9 @@ fn bench_ctl_smarm(threads: usize) -> (u64, u128) {
|
||||
hb.join().unwrap();
|
||||
}
|
||||
});
|
||||
(PP_ROUNDS, start.elapsed().as_micros())
|
||||
let us = start.elapsed().as_micros();
|
||||
wake_diag("spawn_pair_control", threads, &rt, us);
|
||||
(PP_ROUNDS, us)
|
||||
}
|
||||
|
||||
fn bench_ctl_tokio_current() -> (u64, u128) {
|
||||
@@ -488,7 +500,8 @@ const PP_STEADY: u64 = 10_000;
|
||||
|
||||
fn bench_steady_smarm(threads: usize) -> (u64, u128) {
|
||||
let start = Instant::now();
|
||||
smarm::runtime::init(bench_cfg(threads)).run(|| {
|
||||
let rt = smarm::runtime::init(bench_cfg(threads));
|
||||
rt.run(|| {
|
||||
let (tx_ab, rx_ab) = smarm::channel::<u64>();
|
||||
let (tx_ba, rx_ba) = smarm::channel::<u64>();
|
||||
let echo = smarm::spawn(move || {
|
||||
@@ -504,7 +517,9 @@ fn bench_steady_smarm(threads: usize) -> (u64, u128) {
|
||||
}
|
||||
echo.join().unwrap();
|
||||
});
|
||||
(PP_STEADY, start.elapsed().as_micros())
|
||||
let us = start.elapsed().as_micros();
|
||||
wake_diag("ping_pong_steady", threads, &rt, us);
|
||||
(PP_STEADY, us)
|
||||
}
|
||||
|
||||
async fn steady_tokio_body() {
|
||||
|
||||
Reference in New Issue
Block a user