Merge pull request #2874 from elfiesmelfie/feat_virt_block_info
[collectd.git] / src / cpufreq.c
index 3e3244c..35ec07f 100644 (file)
@@ -22,8 +22,8 @@
 
 #include "collectd.h"
 
-#include "common.h"
 #include "plugin.h"
+#include "utils/common/common.h"
 
 #define MAX_AVAIL_FREQS 20
 
@@ -37,7 +37,7 @@ struct cpu_data_t {
 static bool report_p_stats = false;
 
 static void cpufreq_stats_init(void) {
-  cpu_data = calloc(num_cpu, sizeof(struct cpu_data_t));
+  cpu_data = calloc(num_cpu, sizeof(*cpu_data));
   if (cpu_data == NULL)
     return;
 
@@ -172,6 +172,12 @@ static void cpufreq_read_stats(int cpu) {
     gauge_t g;
     if (value_to_rate(&g, (value_t){.derive = time}, DS_TYPE_DERIVE, now,
                       &(cpu_data[cpu].time_state[state_index])) == 0) {
+      /*
+       * Due to some inaccuracy reported value can be a bit greatrer than 100.1.
+       * That produces gaps on charts.
+       */
+      if (g > 100.1)
+        g = 100.1;
       cpufreq_submit(cpu, "percent", state, &(value_t){.gauge = g});
     }
     state_index++;