From 7999a896d07696f16e45de643226e1a330e6b044 Mon Sep 17 00:00:00 2001 From: Admin Pupkin Date: Wed, 20 May 2026 13:40:45 +0300 Subject: [PATCH] cpufreqd: Use new sys:msr scheme for P-state control Replace non-existent /dev/cpu/{n}/msr path with /scheme/sys/msr/{cpu}/{msr} now that the kernel exposes MSR access via the sys scheme. --- local/recipes/system/cpufreqd/source/src/main.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/local/recipes/system/cpufreqd/source/src/main.rs b/local/recipes/system/cpufreqd/source/src/main.rs index eeba7f14bb..94824ba937 100644 --- a/local/recipes/system/cpufreqd/source/src/main.rs +++ b/local/recipes/system/cpufreqd/source/src/main.rs @@ -58,8 +58,12 @@ fn read_acpi_pss(cpu: u32) -> Vec { } fn write_msr(cpu: u32, msr: u32, val: u64) -> bool { - fs::OpenOptions::new().write(true).open(format!("/dev/cpu/{}/msr", cpu)).ok() - .map(|mut f| f.write_all(&val.to_ne_bytes()).is_ok()).unwrap_or(false) + let path = format!("/scheme/sys/msr/{}/{:x}", cpu, msr); + fs::OpenOptions::new().write(true).open(&path).ok() + .and_then(|mut f| { + let hex_val = format!("{:016x}", val); + f.write_all(hex_val.as_bytes()).ok() + }).is_some() } fn measure_load(cpu: u32, prev: &mut (u64, u64)) -> f64 {