Skip to main content

cbtop/frequency_control/
mod.rs

1//! CPU Frequency Control Backend (PMAT-038)
2//!
3//! Interface with Linux cpufreq to lock CPU frequency for deterministic benchmarks.
4//!
5//! # Features
6//!
7//! - Read current CPU frequency
8//! - Detect CPU governor (performance/powersave/ondemand)
9//! - Frequency lock with RAII guard
10//! - Measure variance before/after locking
11//!
12//! # Falsification Criteria (F1301-F1310)
13//!
14//! See `tests/frequency_control_f1301.rs` for falsification tests.
15
16mod controller;
17mod governor;
18mod info;
19mod lock;
20mod reading;
21mod sysfs;
22mod variance;
23
24pub use controller::FrequencyController;
25pub use governor::CpuGovernor;
26pub use info::CpuFrequencyInfo;
27pub use lock::FrequencyLock;
28pub use reading::FrequencyReading;
29pub use variance::FrequencyVariance;
30
31/// Get number of CPUs
32fn num_cpus() -> usize {
33    std::thread::available_parallelism()
34        .map(|p| p.get())
35        .unwrap_or(1)
36}
37
38#[cfg(test)]
39mod tests;