Merge pull request #3329 from efuss/fix-3311
[collectd.git] / src / intel_pmu.c
index 57ae974..f04f887 100644 (file)
@@ -27,9 +27,9 @@
  **/
 
 #include "collectd.h"
-#include "common.h"
+#include "utils/common/common.h"
 
-#include "utils_config_cores.h"
+#include "utils/config_cores/config_cores.h"
 
 #include <jevents.h>
 #include <jsession.h>
@@ -67,9 +67,9 @@ struct event_info {
 typedef struct event_info event_info_t;
 
 struct intel_pmu_ctx_s {
-  _Bool hw_cache_events;
-  _Bool kernel_pmu_events;
-  _Bool sw_events;
+  bool hw_cache_events;
+  bool kernel_pmu_events;
+  bool sw_events;
   char event_list_fn[PATH_MAX];
   char **hw_events;
   size_t hw_events_count;
@@ -196,7 +196,8 @@ static void pmu_dump_config(void) {
   DEBUG(PMU_PLUGIN ":   software_events   : %d", g_ctx.sw_events);
 
   for (size_t i = 0; i < g_ctx.hw_events_count; i++) {
-    DEBUG(PMU_PLUGIN ":   hardware_events[%zu]: %s", i, g_ctx.hw_events[i]);
+    DEBUG(PMU_PLUGIN ":   hardware_events[%" PRIsz "]: %s", i,
+          g_ctx.hw_events[i]);
   }
 }
 
@@ -213,8 +214,12 @@ static void pmu_dump_cgroups(void) {
       return;
     }
     for (size_t j = 0; j < cgroup->num_cores; j++)
-      snprintf(cores + strlen(cores), cores_size - strlen(cores), " %d",
-               cgroup->cores[j]);
+      if (snprintf(cores + strlen(cores), cores_size - strlen(cores), " %d",
+                   cgroup->cores[j]) < 0) {
+        DEBUG(PMU_PLUGIN ": Failed to write list of cores to string.");
+        sfree(cores);
+        return;
+      }
 
     DEBUG(PMU_PLUGIN ":   group[%" PRIsz "]", i);
     DEBUG(PMU_PLUGIN ":     description: %s", cgroup->desc);
@@ -262,7 +267,7 @@ static int pmu_config_hw_events(oconfig_item_t *ci) {
     return -EINVAL;
   }
 
-  g_ctx.hw_events = calloc(ci->values_num, sizeof(char *));
+  g_ctx.hw_events = calloc(ci->values_num, sizeof(*g_ctx.hw_events));
   if (g_ctx.hw_events == NULL) {
     ERROR(PMU_PLUGIN ": Failed to allocate hw events.");
     return -ENOMEM;
@@ -325,8 +330,8 @@ static int pmu_config(oconfig_item_t *ci) {
   return 0;
 }
 
-static void pmu_submit_counter(char *cgroup, char *event, counter_t value,
-                               meta_data_t *meta) {
+static void pmu_submit_counter(const char *cgroup, const char *event,
+                               counter_t value, meta_data_t *meta) {
   value_list_t vl = VALUE_LIST_INIT;
 
   vl.values = &(value_t){.counter = value};
@@ -441,7 +446,7 @@ static int pmu_add_events(struct eventlist *el, uint32_t type,
     /* Allocate memory for event struct that contains array of efd structs
        for all cores */
     struct event *e =
-        calloc(sizeof(struct event) + sizeof(struct efd) * el->num_cpus, 1);
+        calloc(1, sizeof(struct event) + sizeof(struct efd) * el->num_cpus);
     if (e == NULL) {
       ERROR(PMU_PLUGIN ": Failed to allocate event structure");
       return -ENOMEM;
@@ -477,7 +482,7 @@ static int pmu_add_hw_events(struct eventlist *el, char **e, size_t count) {
       /* Allocate memory for event struct that contains array of efd structs
          for all cores */
       struct event *e =
-          calloc(sizeof(struct event) + sizeof(struct efd) * el->num_cpus, 1);
+          calloc(1, sizeof(struct event) + sizeof(struct efd) * el->num_cpus);
       if (e == NULL) {
         free(events);
         return -ENOMEM;