summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 51bc7c4)
raw | patch | inline | side by side (parent: 51bc7c4)
author | Florian Forster <octo@collectd.org> | |
Mon, 5 Sep 2016 08:26:50 +0000 (10:26 +0200) | ||
committer | Florian Forster <octo@collectd.org> | |
Wed, 14 Sep 2016 18:28:58 +0000 (20:28 +0200) |
src/hugepages.c | patch | blob | history |
diff --git a/src/hugepages.c b/src/hugepages.c
index c3060fefce4c1f3abd4f2042d1d106ea5c5f04ca..8573fc34d636bbb29cfb1dfd2eaa86e209079431 100644 (file)
--- a/src/hugepages.c
+++ b/src/hugepages.c
*
* Copyright(c) 2016 Intel Corporation. All rights reserved.
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
*
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
static const char g_cfg_rpt_mm[] = "ReportRootHP";
static const char *g_config_keys[] = {
- g_cfg_rpt_numa,
- g_cfg_rpt_mm,
+ g_cfg_rpt_numa, g_cfg_rpt_mm,
};
static size_t g_config_keys_num = STATIC_ARRAY_SIZE(g_config_keys);
static int g_flag_rpt_numa = 1;
const char *node;
};
-static int huge_config_callback(const char *key, const char *val)
-{
+static int huge_config_callback(const char *key, const char *val) {
DEBUG("%s: HugePages config key='%s', val='%s'", g_plugin_name, key, val);
if (strcasecmp(key, g_cfg_rpt_numa) == 0) {
}
static void submit_hp(const char *plug_inst, const char *type,
- const char *type_instance, gauge_t free_value, gauge_t used_value)
-{
+ const char *type_instance, gauge_t free_value,
+ gauge_t used_value) {
value_list_t vl = VALUE_LIST_INIT;
value_t values[] = {
{ .gauge = free_value },
vl.values = values;
vl.values_len = STATIC_ARRAY_SIZE (values);
- sstrncpy (vl.host, hostname_g, sizeof (vl.host));
- sstrncpy (vl.plugin, g_plugin_name, sizeof (vl.plugin));
- sstrncpy (vl.plugin_instance, plug_inst, sizeof (vl.plugin_instance));
- sstrncpy (vl.type, type, sizeof (vl.type));
+ sstrncpy(vl.host, hostname_g, sizeof(vl.host));
+ sstrncpy(vl.plugin, g_plugin_name, sizeof(vl.plugin));
+ sstrncpy(vl.plugin_instance, plug_inst, sizeof(vl.plugin_instance));
+ sstrncpy(vl.type, type, sizeof(vl.type));
if (type_instance != NULL) {
- sstrncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
+ sstrncpy(vl.type_instance, type_instance, sizeof(vl.type_instance));
}
DEBUG("submit_hp pl_inst:%s, inst_type %s, type %s, free=%lf, used=%lf",
- plug_inst, type_instance, type, free_value, used_value);
+ plug_inst, type_instance, type, free_value, used_value);
- plugin_dispatch_values (&vl);
+ plugin_dispatch_values(&vl);
}
static int read_hugepage_entry(const char *path, const char *entry,
- void *e_info)
-{
+ void *e_info) {
char path2[PATH_MAX];
static const char type[] = "hugepages";
static const char partial_type_inst[] = "free_used";
return -1;
}
- if (fscanf(fh, "%lf", &value) !=1) {
+ if (fscanf(fh, "%lf", &value) != 1) {
ERROR("%s: cannot parse file %s", g_plugin_name, path2);
fclose(fh);
return -1;
*/
strin = strchr(hpsize_plinst->d_name, 0x2D);
if (strin != NULL) {
- ssnprintf(type_instance, sizeof(type_instance), "%s%s", partial_type_inst, strin);
+ ssnprintf(type_instance, sizeof(type_instance), "%s%s", partial_type_inst,
+ strin);
} else {
ssnprintf(type_instance, sizeof(type_instance), "%s%s", partial_type_inst,
- hpsize_plinst->d_name);
+ hpsize_plinst->d_name);
}
submit_hp(hpsize_plinst->node, type, type_instance, free_hp, used_hp);
return 0;
}
-static int read_syshugepages(const char* path, const char* node)
-{
+static int read_syshugepages(const char *path, const char *node) {
static const char hugepages_dir[] = "hugepages";
DIR *dir;
struct dirent *result;
/* read "hugepages-XXXXXkB" entries */
while ((result = readdir(dir)) != NULL) {
- if (strncmp(result->d_name, hugepages_dir, sizeof(hugepages_dir)-1)) {
+ if (strncmp(result->d_name, hugepages_dir, sizeof(hugepages_dir) - 1)) {
/* not node dir */
errno = 0;
continue;
}
/* /sys/devices/system/node/node?/hugepages/ */
- ssnprintf(path2, (size_t) lim, "%s/%s", path, result->d_name);
+ ssnprintf(path2, (size_t)lim, "%s/%s", path, result->d_name);
e_info.d_name = result->d_name;
e_info.node = node;
/* Check if NULL return from readdir() was an error */
if (errno != 0) {
- ERROR("%s: readdir failed", g_plugin_name);
- closedir(dir);
- return -1;
+ ERROR("%s: readdir failed", g_plugin_name);
+ closedir(dir);
+ return -1;
}
closedir(dir);
return 0;
}
-static int read_nodes(void)
-{
+static int read_nodes(void) {
static const char sys_node[] = "/sys/devices/system/node";
static const char node_string[] = "node";
- static const char sys_node_hugepages[] = "/sys/devices/system/node/%s/hugepages";
+ static const char sys_node_hugepages[] =
+ "/sys/devices/system/node/%s/hugepages";
DIR *dir;
struct dirent *result;
char path[PATH_MAX];
}
while ((result = readdir(dir)) != NULL) {
- if (strncmp(result->d_name, node_string, sizeof(node_string)-1)) {
+ if (strncmp(result->d_name, node_string, sizeof(node_string) - 1)) {
/* not node dir */
errno = 0;
continue;
}
- ssnprintf(path, (size_t) lim, sys_node_hugepages, result->d_name);
+ ssnprintf(path, (size_t)lim, sys_node_hugepages, result->d_name);
read_syshugepages(path, result->d_name);
errno = 0;
}
/* Check if NULL return from readdir() was an error */
if (errno != 0) {
- ERROR("%s: readdir failed", g_plugin_name);
- closedir(dir);
- return -1;
+ ERROR("%s: readdir failed", g_plugin_name);
+ closedir(dir);
+ return -1;
}
closedir(dir);
return 0;
}
-
-static int huge_read(void)
-{
+static int huge_read(void) {
static const char sys_mm_hugepages[] = "/sys/kernel/mm/hugepages";
if (g_flag_rpt_mm) {
return 0;
}
-void module_register(void)
-{
+void module_register(void) {
plugin_register_config(g_plugin_name, huge_config_callback, g_config_keys,
- g_config_keys_num);
+ g_config_keys_num);
plugin_register_read(g_plugin_name, huge_read);
}
-