]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
gpu_sysman: Avoid log warning when ratio output is disabled
authorEero Tamminen <eero.t.tamminen@intel.com>
Tue, 18 Oct 2022 16:02:59 +0000 (19:02 +0300)
committerMatthias Runge <mrunge@matthias-runge.de>
Tue, 8 Nov 2022 12:24:36 +0000 (13:24 +0100)
Fixes: 75aeab3a42b5
Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
src/gpu_sysman.c

index 5f9cd1c77f5f101e232d575b36476bf6e5e7e1df..ff1fd7fa958810a6cd2c993e7c7aacd768ac11f5 100644 (file)
@@ -988,7 +988,7 @@ static bool gpu_mems(gpu_device_t *gpu, unsigned int cache_idx) {
   };
   metric_t metric = {0};
 
-  bool ok = false;
+  bool reported_ratio = false, ok = false;
   for (i = 0; i < mem_count; i++) {
     /* fetch memory samples */
     if (zesMemoryGetState(mems[i], &(gpu->memory[cache_idx][i])) !=
@@ -1023,6 +1023,7 @@ static bool gpu_mems(gpu_device_t *gpu, unsigned int cache_idx) {
       if (config.output & OUTPUT_RATIO) {
         metric.value.gauge = mem_used / mem_size;
         metric_family_metric_append(&fam_ratio, metric);
+        reported_ratio = true;
       }
     } else {
       /* find min & max values for memory free from
@@ -1047,6 +1048,7 @@ static bool gpu_mems(gpu_device_t *gpu, unsigned int cache_idx) {
       if (config.output & OUTPUT_RATIO) {
         metric.value.gauge = mem_used / mem_size;
         metric_family_metric_append(&fam_ratio, metric);
+        reported_ratio = true;
       }
       /* smallest used amount of memory */
       mem_used = mem_size - free_min;
@@ -1056,13 +1058,16 @@ static bool gpu_mems(gpu_device_t *gpu, unsigned int cache_idx) {
       if (config.output & OUTPUT_RATIO) {
         metric.value.gauge = mem_used / mem_size;
         metric_family_metric_append(&fam_ratio, metric);
+        reported_ratio = true;
       }
     }
   }
   if (ok && cache_idx == 0) {
     metric_reset(&metric);
     gpu_submit(gpu, &fam_bytes);
-    gpu_submit(gpu, &fam_ratio);
+    if (reported_ratio) {
+      gpu_submit(gpu, &fam_ratio);
+    }
   }
   free(mems);
   return ok;