gardesk/gartop / 300e552

Browse files

Fix memory calculation to use MemAvailable (matches garbar)

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
300e552c4236fd3ece2f880161a5a4ceda0b5747
Parents
18b434e
Tree
11be0a7

1 changed file

StatusFile+-
M gartop/src/collector/memory.rs 6 4
gartop/src/collector/memory.rsmodified
@@ -20,13 +20,15 @@ impl MemoryCollector {
2020
 
2121
         let total = meminfo.mem_total;
2222
         let free = meminfo.mem_free;
23
-        let available = meminfo.mem_available.unwrap_or(free);
2423
         let buffers = meminfo.buffers;
2524
         let cached = meminfo.cached;
26
-        let slab_reclaimable = meminfo.s_reclaimable.unwrap_or(0);
2725
 
28
-        // Calculate used memory (excluding buffers/cache)
29
-        let used = total.saturating_sub(free + buffers + cached + slab_reclaimable);
26
+        // Use MemAvailable (kernel 3.14+) for accurate available memory calculation
27
+        // Fall back to free + buffers + cached if not available
28
+        let available = meminfo.mem_available.unwrap_or(free + buffers + cached);
29
+
30
+        // Used = total - available (same calculation as garbar)
31
+        let used = total.saturating_sub(available);
3032
 
3133
         let swap_total = meminfo.swap_total;
3234
         let swap_free = meminfo.swap_free;