udev-shim: Only log hotplug events when device count changes

Track the last PCI device count and only emit log messages when
devices are added or removed, eliminating redundant 2-second poll
noise.
This commit is contained in:
2026-05-20 18:52:43 +03:00
parent e5b82a644a
commit 676a4342ce
@@ -129,13 +129,22 @@ fn main() {
let scheme = Arc::new(Mutex::new(scheme));
let scheme_clone = Arc::clone(&scheme);
thread::spawn(move || {
let mut last_count = 0usize;
loop {
thread::sleep(Duration::from_secs(2));
if let Ok(mut s) = scheme_clone.lock() {
match s.scan_pci_devices() {
Ok(n) if n > 0 => info!("udev-shim: hotplug detected {} device(s)", n),
Ok(n) => {
if n != last_count {
if n > last_count {
info!("udev-shim: hotplug detected {} device(s) (total {})", n - last_count, n);
} else {
info!("udev-shim: device removal detected, {} device(s) remaining", n);
}
last_count = n;
}
}
Err(e) => error!("udev-shim: hotplug scan failed: {}", e),
_ => {}
}
}
}