diff --git a/src/core.rs b/src/core.rs index 38c3d0c..e3773c5 100644 --- a/src/core.rs +++ b/src/core.rs @@ -12,9 +12,8 @@ pub struct CpuCoreInfo { pub struct CpuGlobalInfo { // System-wide CPU settings - pub turbo_status: Option, // true for enabled, false for disabled - pub epp: Option, // Energy Performance Preference - pub epb: Option, // Energy Performance Bias + pub epp: Option, // Energy Performance Preference + pub epb: Option, // Energy Performance Bias pub platform_profile: Option, pub average_temperature_celsius: Option, // Average temperature across all cores } diff --git a/src/cpu.rs b/src/cpu.rs index d7ab01f..3d6fd85 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -553,4 +553,16 @@ impl Cpu { bail!("no supported CPU boost control mechanism found"); } + + pub fn turbo() -> Option { + if let Some(Ok(content)) = fs::read_u64("/sys/devices/system/cpu/intel_pstate/no_turbo") { + return Some(content == 0); + } + + if let Some(Ok(content)) = fs::read_u64("/sys/devices/system/cpu/cpufreq/boost") { + return Some(content == 1); + } + + None + } } diff --git a/src/monitor.rs b/src/monitor.rs index 609213d..4286f0b 100644 --- a/src/monitor.rs +++ b/src/monitor.rs @@ -238,21 +238,6 @@ pub fn get_all_cpu_core_info() -> anyhow::Result> { } pub fn get_cpu_global_info(cpu_cores: &[CpuCoreInfo]) -> CpuGlobalInfo { - let turbo_status_path = Path::new("/sys/devices/system/cpu/intel_pstate/no_turbo"); - let boost_path = Path::new("/sys/devices/system/cpu/cpufreq/boost"); - - let turbo_status = if turbo_status_path.exists() { - // 0 means turbo enabled, 1 means disabled for intel_pstate - read_sysfs_value::(turbo_status_path) - .map(|val| val == 0) - .ok() - } else if boost_path.exists() { - // 1 means turbo enabled, 0 means disabled for generic cpufreq boost - read_sysfs_value::(boost_path).map(|val| val == 1).ok() - } else { - None - }; - let platform_profile = read_sysfs_file_trimmed("/sys/firmware/acpi/platform_profile").ok(); // Calculate average CPU temperature from the core temperatures @@ -279,7 +264,6 @@ pub fn get_cpu_global_info(cpu_cores: &[CpuCoreInfo]) -> CpuGlobalInfo { // Return the constructed CpuGlobalInfo CpuGlobalInfo { - turbo_status, platform_profile, average_temperature_celsius, }