X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcgroups.c;h=6d419722b7ef385ea0b8607f2b5b5056c849a408;hb=f5adf265a374e5e0dba89a4a9903e7719dc57039;hp=ffb1740a9846e5f134b61070a80976a8e5029879;hpb=c27675331d874c85625d2e64ebcc229db588c5f2;p=collectd.git diff --git a/src/cgroups.c b/src/cgroups.c index ffb1740a..6d419722 100644 --- a/src/cgroups.c +++ b/src/cgroups.c @@ -93,7 +93,7 @@ static int read_cpuacct_procs (const char *dirname, char const *cgroup_name, if (fh == NULL) { char errbuf[1024]; - ERROR ("cgroups pluign: fopen (\"%s\") failed: %s", + ERROR ("cgroups plugin: fopen (\"%s\") failed: %s", abs_path, sstrerror (errno, errbuf, sizeof (errbuf))); return (-1); @@ -111,6 +111,11 @@ static int read_cpuacct_procs (const char *dirname, char const *cgroup_name, * * user: 12345 * system: 23456 + * + * Or: + * + * user 12345 + * system 23456 */ strstripnewline (buf); numfields = strsplit (buf, fields, STATIC_ARRAY_SIZE (fields)); @@ -122,10 +127,9 @@ static int read_cpuacct_procs (const char *dirname, char const *cgroup_name, if (key_len < 2) continue; - /* Strip colon off the first column */ - if (key[key_len - 1] != ':') - continue; - key[key_len - 1] = 0; + /* Strip colon off the first column, if found */ + if (key[key_len - 1] == ':') + key[key_len - 1] = 0; status = parse_value (fields[1], &value, DS_TYPE_DERIVE); if (status != 0) @@ -140,7 +144,7 @@ static int read_cpuacct_procs (const char *dirname, char const *cgroup_name, /* * Gets called for every file/folder in /sys/fs/cgroup/cpu,cpuacct (or - * whereever cpuacct is mounted on the system). Calls walk_directory with the + * wherever cpuacct is mounted on the system). Calls walk_directory with the * read_cpuacct_procs callback on every folder it finds, such as "system". */ static int read_cpuacct_root (const char *dirname, const char *filename, @@ -217,8 +221,9 @@ static int cgroups_read (void) { /* Find the cgroup mountpoint which contains the cpuacct * controller. */ - if (strcmp(mnt_ptr->type, "cgroup") != 0 || - !cu_mount_getoptionvalue(mnt_ptr->options, "cpuacct")) + if ((strcmp(mnt_ptr->type, "cgroup") != 0) + || !cu_mount_checkoption(mnt_ptr->options, + "cpuacct", /* full = */ 1)) continue; walk_directory (mnt_ptr->dir, read_cpuacct_root,