add intel gpu monitoring via i915/xe sysfs

This commit is contained in:
Damocles 2026-04-21 23:48:28 +02:00
parent df2bc487fd
commit 50f04372b1
2 changed files with 126 additions and 29 deletions

View file

@ -27,7 +27,7 @@ fn main() {
let mut out = io::BufWriter::new(stdout.lock());
let mut prev: Vec<cpu::Sample> = vec![];
let mut freqs: Vec<f64> = vec![];
let gpu = gpu::detect_gpu();
let mut gpu = gpu::detect_gpu();
let mut tick = 0u64;
loop {
@ -43,11 +43,14 @@ fn main() {
if tick.is_multiple_of(4) {
temp::emit_temp(&mut out);
// AMD sysfs is instant; NVIDIA calls nvidia-smi so runs less often
match &gpu {
gpu::GpuBackend::Amd { .. } => gpu::emit_gpu(&mut out, &gpu),
gpu::GpuBackend::Nvidia if tick.is_multiple_of(8) => gpu::emit_gpu(&mut out, &gpu),
_ => {}
// AMD/Intel read sysfs (instant); NVIDIA shells out so runs less often
let emit = match &gpu {
gpu::GpuBackend::Amd { .. } | gpu::GpuBackend::Intel { .. } => true,
gpu::GpuBackend::Nvidia => tick.is_multiple_of(8),
gpu::GpuBackend::None => false,
};
if emit {
gpu::emit_gpu(&mut out, &mut gpu);
}
}