chore: avoid re-fetching gpu metrics for target_gfxclk

This commit is contained in:
Ilya Zlobintsev
2025-12-31 15:05:34 +02:00
parent be4e4fa09b
commit 76b51786c9
5 changed files with 12 additions and 9 deletions
+8 -9
View File
@@ -459,6 +459,8 @@ impl AmdGpuController {
let mut sensors = HashMap::new();
let mut target_gpu_clockspeed = None;
if let Some(metrics) = metrics {
for (label, value) in [
("DCLK", metrics.get_current_dclk()),
@@ -475,24 +477,21 @@ impl AmdGpuController {
}
}
}
target_gpu_clockspeed = metrics
.get_current_gfxclk()
.filter(|value| *value != u16::MAX)
.map(u64::from);
}
ClockspeedStats {
gpu_clockspeed: self.hw_mon_and_then(HwMon::get_gpu_clockspeed),
target_gpu_clockspeed: self.get_current_gfxclk(),
target_gpu_clockspeed,
vram_clockspeed,
sensors,
}
}
fn get_current_gfxclk(&self) -> Option<u64> {
self.drm_handle
.as_ref()
.and_then(|drm_handle| drm_handle.get_gpu_metrics().ok())
.and_then(|metrics| metrics.get_current_gfxclk())
.map(u64::from)
}
fn get_full_vbios_version(&self) -> Option<String> {
if let Some(drm_handle) = &self.drm_handle {
if let Ok(vbios_info) = drm_handle.get_vbios_info() {
@@ -475,6 +475,7 @@ expression: device_info
"SOCCLK": 800,
"UCLK": 1000
},
"target_gpu_clockspeed": 500,
"vram_clockspeed": 1000
},
"core_power_state": 0,
@@ -311,6 +311,7 @@ expression: device_info
"VCLK": 25,
"VCLK1": 25
},
"target_gpu_clockspeed": 1200,
"vram_clockspeed": 96
},
"core_power_state": 1,
@@ -403,6 +403,7 @@ expression: device_info
"VCLK": 25,
"VCLK1": 25
},
"target_gpu_clockspeed": 2011,
"vram_clockspeed": 456
},
"core_power_state": 1,
@@ -412,6 +412,7 @@ expression: device_info
"VCLK": 25,
"VCLK1": 25
},
"target_gpu_clockspeed": 900,
"vram_clockspeed": 1124
},
"core_power_state": 1,