AIX suport in contextswitch plugin.
authorManuel Luis SanmartĂ­n Rozada <manuel.luis@gmail.com>
Wed, 5 Sep 2012 11:48:03 +0000 (13:48 +0200)
committerFlorian Forster <octo@collectd.org>
Tue, 2 Oct 2012 19:58:58 +0000 (21:58 +0200)
configure.in
src/contextswitch.c

index 50f5fd5..fec588d 100644 (file)
@@ -4637,6 +4637,7 @@ fi
 if test "x$with_perfstat" = "xyes"
 then
        plugin_cpu="yes"
+       plugin_contextswitch="yes"
        plugin_disk="yes"
        plugin_memory="yes"
        plugin_swap="yes"
index c207318..d3e6fe6 100644 (file)
 /* no global variables */
 /* #endif KERNEL_LINUX */
 
+#elif HAVE_PERFSTAT
+# include <sys/protosw.h>
+# include <libperfstat.h>
+/* #endif HAVE_PERFSTAT */
+
 #else
 # error "No applicable input method."
 #endif
@@ -121,7 +126,24 @@ static int cs_read (void)
 
        if (status == -2)
                ERROR ("contextswitch plugin: Unable to find context switch value.");
-#endif /* KERNEL_LINUX */
+/* #endif  KERNEL_LINUX */
+
+#elif HAVE_PERFSTAT
+       int status = 0;
+       perfstat_cpu_total_t perfcputotal;
+
+       status = perfstat_cpu_total(NULL, &perfcputotal, sizeof(perfstat_cpu_total_t), 1);
+       if (status < 0);
+       {
+               char errbuf[1024];
+               ERROR ("contextswitch plugin: perfstat_cpu_total: %s",
+                       sstrerror (errno, errbuf, sizeof (errbuf)));
+               return (-1);
+       }
+
+       cs_submit(perfcputotal.pswitch);
+       return (0);
+#endif /* defined(HAVE_PERFSTAT) */
 
        return status;
 }