X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fswap.c;h=61c9e2845c60a61e97a2cead10442bfd4e14a540;hp=db0b987c53f7531b3fd8410a8f36bbd04edec942;hb=54619dc85fd308b21ed09a0271e5c7383c7921b9;hpb=07ba05937aeaedd683656c3912040950dbf4a152 diff --git a/src/swap.c b/src/swap.c index db0b987c..61c9e284 100644 --- a/src/swap.c +++ b/src/swap.c @@ -37,8 +37,8 @@ #include "collectd.h" -#include "common.h" #include "plugin.h" +#include "utils/common/common.h" #if HAVE_SYS_SWAP_H #include @@ -150,12 +150,12 @@ static int swap_init(void) /* {{{ */ { #if KERNEL_LINUX pagesize = (derive_t)sysconf(_SC_PAGESIZE); -/* #endif KERNEL_LINUX */ + /* #endif KERNEL_LINUX */ #elif HAVE_SWAPCTL && HAVE_SWAPCTL_TWO_ARGS /* getpagesize(3C) tells me this does not fail.. */ pagesize = (derive_t)getpagesize(); -/* #endif HAVE_SWAPCTL */ + /* #endif HAVE_SWAPCTL */ #elif defined(VM_SWAPUSAGE) /* No init stuff */ @@ -177,7 +177,7 @@ static int swap_init(void) /* {{{ */ ERROR("swap plugin: kvm_openfiles failed, %s", errbuf); return -1; } -/* #endif HAVE_LIBKVM_GETSWAPINFO */ + /* #endif HAVE_LIBKVM_GETSWAPINFO */ #elif HAVE_LIBSTATGRAB /* No init stuff */ @@ -332,52 +332,31 @@ static int swap_read_combined(void) /* {{{ */ static int swap_read_io(void) /* {{{ */ { - FILE *fh; char buffer[1024]; - bool old_kernel = false; - uint8_t have_data = 0; derive_t swap_in = 0; derive_t swap_out = 0; - fh = fopen("/proc/vmstat", "r"); + FILE *fh = fopen("/proc/vmstat", "r"); if (fh == NULL) { - /* /proc/vmstat does not exist in kernels <2.6 */ - fh = fopen("/proc/stat", "r"); - if (fh == NULL) { - WARNING("swap: fopen: %s", STRERRNO); - return -1; - } else - old_kernel = true; + WARNING("swap: fopen(/proc/vmstat): %s", STRERRNO); + return -1; } while (fgets(buffer, sizeof(buffer), fh) != NULL) { char *fields[8]; - int numfields; + int numfields = strsplit(buffer, fields, STATIC_ARRAY_SIZE(fields)); - numfields = strsplit(buffer, fields, STATIC_ARRAY_SIZE(fields)); + if (numfields != 2) + continue; - if (!old_kernel) { - if (numfields != 2) - continue; - - if (strcasecmp("pswpin", fields[0]) == 0) { - strtoderive(fields[1], &swap_in); - have_data |= 0x01; - } else if (strcasecmp("pswpout", fields[0]) == 0) { - strtoderive(fields[1], &swap_out); - have_data |= 0x02; - } - } else /* if (old_kernel) */ - { - if (numfields != 3) - continue; - - if (strcasecmp("page", fields[0]) == 0) { - strtoderive(fields[1], &swap_in); - strtoderive(fields[2], &swap_out); - } + if (strcasecmp("pswpin", fields[0]) == 0) { + strtoderive(fields[1], &swap_in); + have_data |= 0x01; + } else if (strcasecmp("pswpout", fields[0]) == 0) { + strtoderive(fields[1], &swap_out); + have_data |= 0x02; } } /* while (fgets) */