From: Florian Forster Date: Tue, 19 May 2015 15:40:36 +0000 (+0200) Subject: Merge remote-tracking branch 'github/pr/1009' X-Git-Tag: collectd-5.5.0~22 X-Git-Url: https://git.octo.it/?p=collectd.git;a=commitdiff_plain;h=0c88d3b2d330c152be0bc6af8faecef0211a705e;hp=-c Merge remote-tracking branch 'github/pr/1009' --- 0c88d3b2d330c152be0bc6af8faecef0211a705e diff --combined AUTHORS index a0972cca,9ee3bd19..3f63c3dc --- a/AUTHORS +++ b/AUTHORS @@@ -128,6 -128,9 +128,9 @@@ Jeremy Katz - varnish plugin. + Jiri Tyr + - fhcount plugin. + Kevin Bowling - write_tsdb plugin for http://opentsdb.net/ @@@ -280,9 -283,6 +283,9 @@@ Tommie Gannert - smart plugin. +Vincent Brillault + - turbostat plugin, based on Len Brown kernel tool + Vincent Stehlé - hddtemp plugin. diff --combined README index f2617e56,5582e51d..9604fda3 --- a/README +++ b/README @@@ -107,6 -107,9 +107,9 @@@ Feature Values gathered by a custom program or script. See collectd-exec(5). + - fhcount + File handles statistics. + - filecount Count the number of files in directories. @@@ -349,10 -352,6 +352,10 @@@ Reads the number of records and file size from a running Tokyo Tyrant server. + - turbostat + Reads CPU frequency and C-state residency on modern Intel + turbo-capable processors. + - uptime System uptime statistics. @@@ -636,12 -635,6 +639,12 @@@ Prerequisite Used by the `smart' plugin. + * libcap (optional) + The `turbostat' plugin can optionally build Linux Capabilities support, + which avoids full privileges requirement (aka. running as root) to read + values. + + * libclntsh (optional) Used by the `oracle' plugin. diff --combined configure.ac index d9509820,2d5ce60a..87d1502b --- a/configure.ac +++ b/configure.ac @@@ -589,44 -589,13 +589,44 @@@ AC_CHECK_HEADERS(net/pfvar.h have_termios_h="no" AC_CHECK_HEADERS(termios.h, [have_termios_h="yes"]) +# For the turbostat plugin +have_asm_msrindex_h="no" +AC_CHECK_HEADERS(asm/msr-index.h, [have_asm_msrindex_h="yes"]) + +if test "x$have_asm_msrindex_h" = "xyes" +then + AC_CACHE_CHECK([whether asm/msr-index.h has MSR_CORE_C3_RESIDENCY], + [c_cv_have_usable_asm_msrindex_h], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM( +[[[ +#include +]]], +[[[ +int y = MSR_CORE_C3_RESIDENCY; +return(y); +]]] + )], + [c_cv_have_usable_asm_msrindex_h="yes"], + [c_cv_have_usable_asm_msrindex_h="no"], + ) + ) +fi + +have_cpuid_h="no" +AC_CHECK_HEADERS(cpuid.h, [have_cpuid_h="yes"]) + +AC_CHECK_HEADERS(sys/capability.h) # # Checks for typedefs, structures, and compiler characteristics. # AC_C_CONST +AC_C_INLINE +AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T AC_TYPE_UID_T +AC_TYPE_UINT32_T AC_HEADER_TIME # @@@ -1221,7 -1190,6 +1221,7 @@@ FILE *fh struct mntent *me; fh = setmntent ("/etc/mtab", "r"); me = getmntent (fh); +return(me->mnt_passno); ]]] )], [c_cv_have_one_getmntent="yes"], @@@ -1241,7 -1209,6 +1241,7 @@@ int status; fh = fopen ("/etc/mnttab", "r"); status = getmntent (fh, &mt); + return(status); ]]] )], [c_cv_have_two_getmntent="yes"], @@@ -2117,10 -2084,6 +2117,10 @@@ f # --with-java {{{ with_java_home="$JAVA_HOME" +if test "x$with_java_home" = "x" +then + with_java_home="/usr/lib/jvm" +fi with_java_vmtype="client" with_java_cflags="" with_java_libs="" @@@ -2145,7 -2108,7 +2145,7 @@@ the if test -d "$with_java_home" then AC_MSG_CHECKING([for jni.h]) - TMPVAR=`find "$with_java_home" -name jni.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1` + TMPVAR=`find -L "$with_java_home" -name jni.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1` if test "x$TMPVAR" != "x" then AC_MSG_RESULT([found in $TMPVAR]) @@@ -2155,7 -2118,7 +2155,7 @@@ fi AC_MSG_CHECKING([for jni_md.h]) - TMPVAR=`find "$with_java_home" -name jni_md.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1` + TMPVAR=`find -L "$with_java_home" -name jni_md.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1` if test "x$TMPVAR" != "x" then AC_MSG_RESULT([found in $TMPVAR]) @@@ -2165,7 -2128,7 +2165,7 @@@ fi AC_MSG_CHECKING([for libjvm.so]) - TMPVAR=`find "$with_java_home" -name libjvm.so -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1` + TMPVAR=`find -L "$with_java_home" -name libjvm.so -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1` if test "x$TMPVAR" != "x" then AC_MSG_RESULT([found in $TMPVAR]) @@@ -2177,7 -2140,7 +2177,7 @@@ if test "x$JAVAC" = "x" then AC_MSG_CHECKING([for javac]) - TMPVAR=`find "$with_java_home" -name javac -type f 2>/dev/null | head -n 1` + TMPVAR=`find -L "$with_java_home" -name javac -type f 2>/dev/null | head -n 1` if test "x$TMPVAR" != "x" then JAVAC="$TMPVAR" @@@ -2189,7 -2152,7 +2189,7 @@@ if test "x$JAR" = "x" then AC_MSG_CHECKING([for jar]) - TMPVAR=`find "$with_java_home" -name jar -type f 2>/dev/null | head -n 1` + TMPVAR=`find -L "$with_java_home" -name jar -type f 2>/dev/null | head -n 1` if test "x$TMPVAR" != "x" then JAR="$TMPVAR" @@@ -3209,7 -3172,6 +3209,7 @@@ the ]]], [[[ int val = PCAP_ERROR_IFACE_NOT_UP; + return(val); ]]] )], [c_cv_libpcap_have_pcap_error_iface_not_up="yes"], @@@ -3760,7 -3722,6 +3760,7 @@@ AC_ARG_WITH(librdkafka, [AS_HELP_STRING then with_librdkafka_cppflags="-I$withval/include" with_librdkafka_ldflags="-L$withval/lib" + with_librdkafka_rpath="$withval/lib" with_librdkafka="yes" else with_librdkafka="$withval" @@@ -3772,9 -3733,6 +3772,9 @@@ SAVE_CPPFLAGS="$CPPFLAGS" SAVE_LDFLAGS="$LDFLAGS" +CPPFLAGS="$CPPFLAGS $with_librdkafka_cppflags" +LDFLAGS="$LDFLAGS $with_librdkafka_ldflags" + if test "x$with_librdkafka" = "xyes" then AC_CHECK_HEADERS(librdkafka/rdkafka.h, [with_librdkafka="yes"], [with_librdkafka="no (librdkafka/rdkafka.h not found)"]) @@@ -3790,12 -3748,7 +3790,12 @@@ if test "x$with_librdkafka" = "xyes then BUILD_WITH_LIBRDKAFKA_CPPFLAGS="$with_librdkafka_cppflags" BUILD_WITH_LIBRDKAFKA_LDFLAGS="$with_librdkafka_ldflags" - BUILD_WITH_LIBRDKAFKA_LIBS="-lrdkafka" + if test "x$with_librdkafka_rpath" != "x" + then + BUILD_WITH_LIBRDKAFKA_LIBS="-Wl,-rpath,$with_librdkafka_rpath -lrdkafka" + else + BUILD_WITH_LIBRDKAFKA_LIBS="-lrdkafka" + fi AC_SUBST(BUILD_WITH_LIBRDKAFKA_CPPFLAGS) AC_SUBST(BUILD_WITH_LIBRDKAFKA_LDFLAGS) AC_SUBST(BUILD_WITH_LIBRDKAFKA_LIBS) @@@ -5186,7 -5139,6 +5186,7 @@@ plugin_tape="no plugin_tcpconns="no" plugin_ted="no" plugin_thermal="no" +plugin_turbostat="no" plugin_uptime="no" plugin_users="no" plugin_virt="no" @@@ -5233,10 -5185,6 +5233,10 @@@ the then plugin_ipvs="yes" fi + if test "x$c_cv_have_usable_asm_msrindex_h" = "xyes" && test "x$have_cpuid_h" = "xyes" + then + plugin_turbostat="yes" + fi fi if test "x$ac_system" = "xOpenBSD" @@@ -5288,7 -5236,6 +5288,7 @@@ f if test "x$with_kstat" = "xyes" then plugin_nfs="yes" + plugin_processes="yes" plugin_uptime="yes" plugin_zfs_arc="yes" fi @@@ -5551,6 -5498,7 +5551,7 @@@ AC_PLUGIN([email], [yes] AC_PLUGIN([entropy], [$plugin_entropy], [Entropy statistics]) AC_PLUGIN([ethstat], [$plugin_ethstat], [Stats from NIC driver]) AC_PLUGIN([exec], [yes], [Execution of external programs]) + AC_PLUGIN([fhcount], [yes], [File handles statistics]) AC_PLUGIN([filecount], [yes], [Count files in directories]) AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics]) AC_PLUGIN([gmond], [$with_libganglia], [Ganglia plugin]) @@@ -5634,7 -5582,6 +5635,7 @@@ AC_PLUGIN([ted], [$plugin_ted] AC_PLUGIN([thermal], [$plugin_thermal], [Linux ACPI thermal zone statistics]) AC_PLUGIN([threshold], [yes], [Threshold checking plugin]) AC_PLUGIN([tokyotyrant], [$with_libtokyotyrant], [TokyoTyrant database statistics]) +AC_PLUGIN([turbostat], [$plugin_turbostat], [Advanced statistic on Intel cpu states]) AC_PLUGIN([unixsock], [yes], [Unixsock communication plugin]) AC_PLUGIN([uptime], [$plugin_uptime], [Uptime statistics]) AC_PLUGIN([users], [$plugin_users], [User statistics]) @@@ -5928,6 -5875,7 +5929,7 @@@ Configuration entropy . . . . . . . $enable_entropy ethstat . . . . . . . $enable_ethstat exec . . . . . . . . $enable_exec + fhcount . . . . . . . $enable_fhcount filecount . . . . . . $enable_filecount fscache . . . . . . . $enable_fscache gmond . . . . . . . . $enable_gmond @@@ -6010,7 -5958,6 +6012,7 @@@ thermal . . . . . . . $enable_thermal threshold . . . . . . $enable_threshold tokyotyrant . . . . . $enable_tokyotyrant + turbostat . . . . . . $enable_turbostat unixsock . . . . . . $enable_unixsock uptime . . . . . . . $enable_uptime users . . . . . . . . $enable_users diff --combined contrib/redhat/collectd.spec index 0950f23a,421b9557..5315870f --- a/contrib/redhat/collectd.spec +++ b/contrib/redhat/collectd.spec @@@ -52,7 -52,6 +52,7 @@@ %{?el6:%global _has_iproute 1} %{?el6:%global _has_atasmart 1} %{?el6:%global _has_hiredis 1} +%{?el6:%global _has_asm_msr_index 1} %{?el7:%global _has_libyajl 1} %{?el7:%global _has_recent_libpcap 1} @@@ -67,7 -66,6 +67,7 @@@ %{?el7:%global _has_iproute 1} %{?el7:%global _has_atasmart 1} %{?el7:%global _has_hiredis 1} +%{?el7:%global _has_asm_msr_index 1} # plugins enabled by default %define with_aggregation 0%{!?_without_aggregation:1} @@@ -96,6 -94,7 +96,7 @@@ %define with_entropy 0%{!?_without_entropy:1} %define with_ethstat 0%{!?_without_ethstat:0%{?_has_recent_sockios_h}} %define with_exec 0%{!?_without_exec:1} + %define with_fhcount 0%{!?_without_fhcount:1} %define with_filecount 0%{!?_without_filecount:1} %define with_fscache 0%{!?_without_fscache:1} %define with_gmond 0%{!?_without_gmond:0%{?_has_recent_libganglia}} @@@ -159,7 -158,6 +160,7 @@@ %define with_ted 0%{!?_without_ted:1} %define with_thermal 0%{!?_without_thermal:1} %define with_threshold 0%{!?_without_threshold:1} +%define with_turbostat 0%{!?_without_turbostat:0%{?_has_asm_msr_index}} %define with_unixsock 0%{!?_without_unixsock:1} %define with_uptime 0%{!?_without_uptime:1} %define with_users 0%{!?_without_users:1} @@@ -214,7 -212,7 +215,7 @@@ # plugin xmms disabled, requires xmms %define with_xmms 0%{!?_without_xmms:0} -Summary: Statistics collection daemon for filling RRD files +Summary: statistics collection and monitoring daemon Name: collectd Version: 5.4.2 Release: 1%{?dist} @@@ -223,7 -221,7 +224,7 @@@ Source: http://collectd.org/files/%{na License: GPLv2 Group: System Environment/Daemons BuildRoot: %{_tmppath}/%{name}-%{version}-root -BuildRequires: libgcrypt-devel, kernel-headers, libtool-ltdl-devel +BuildRequires: libgcrypt-devel, kernel-headers, libtool-ltdl-devel, libcap-devel Vendor: collectd development team %if 0%{?el7:1} @@@ -951,7 -949,7 +952,7 @@@ Collectd utilitie %if %{with_dbi} %define _with_dbi --enable-dbi %else -%define _with_dbi --disable-dbi --without-libdbi +%define _with_dbi --disable-dbi %endif %if %{with_df} @@@ -1002,6 -1000,12 +1003,12 @@@ %define _with_exec --disable-exec %endif + %if %{with_fhcount} + %define _with_fhcount --enable-fhcount + %else + %define _with_fhcount --disable-fhcount + %endif + %if %{with_filecount} %define _with_filecount --enable-filecount %else @@@ -1203,7 -1207,7 +1210,7 @@@ %if %{with_notify_email} %define _with_notify_email --enable-notify_email %else -%define _with_notify_email --disable-notify_email --without-libesmpt +%define _with_notify_email --disable-notify_email %endif %if %{with_ntpd} @@@ -1257,7 -1261,7 +1264,7 @@@ %if %{with_perl} %define _with_perl --enable-perl --with-perl-bindings="INSTALLDIRS=vendor" %else -%define _with_perl --disable-perl --without-libperl +%define _with_perl --disable-perl %endif %if %{with_pf} @@@ -1444,12 -1448,6 +1451,12 @@@ %define _with_tokyotyrant --disable-tokyotyrant %endif +%if %{with_turbostat} +%define _with_turbostat --enable-turbostat +%else +%define _with_turbostat --disable-turbostat +%endif + %if %{with_unixsock} %define _with_unixsock --enable-unixsock %else @@@ -1525,7 -1523,7 +1532,7 @@@ %if %{with_write_mongodb} %define _with_write_mongodb --enable-write_mongodb %else -%define _with_write_mongodb --disable-write_mongodb --without-libmongoc +%define _with_write_mongodb --disable-write_mongodb %endif %if %{with_write_redis} @@@ -1613,6 -1611,7 +1620,7 @@@ %{?_with_entropy} \ %{?_with_ethstat} \ %{?_with_exec} \ + %{?_with_fhcount} \ %{?_with_filecount} \ %{?_with_fscache} \ %{?_with_gmond} \ @@@ -1694,7 -1693,6 +1702,7 @@@ %{?_with_ted} \ %{?_with_thermal} \ %{?_with_threshold} \ + %{?_with_turbostat} \ %{?_with_unixsock} \ %{?_with_uptime} \ %{?_with_users} \ @@@ -1890,6 -1888,9 +1898,9 @@@ f %if %{with_exec} %{_libdir}/%{name}/exec.so %endif + %if %{with_fhcount} + %{_libdir}/%{name}/fhcount.so + %endif %if %{with_filecount} %{_libdir}/%{name}/filecount.so %endif @@@ -1992,12 -1993,9 +2003,12 @@@ %if %{with_thermal} %{_libdir}/%{name}/thermal.so %endif -%if %{with_load} +%if %{with_threshold} %{_libdir}/%{name}/threshold.so %endif +%if %{with_turbostat} +%{_libdir}/%{name}/turbostat.so +%endif %if %{with_unixsock} %{_libdir}/%{name}/unixsock.so %endif @@@ -2326,13 -2324,12 +2337,13 @@@ %changelog # * TODO 5.5.0-1 # - New upstream version -# - New plugins enabled by default: ceph, drbd, log_logstash, write_tsdb, smart, openldap, redis, write_redis, zookeeper, write_log, write_sensu, ipc +# - New plugins enabled by default: ceph, drbd, log_logstash, write_tsdb, smart, openldap, redis, write_redis, zookeeper, write_log, write_sensu, ipc, turbostat # - New plugins disabled by default: barometer, write_kafka # - Enable zfs_arc, now supported on Linux # - Install disk plugin in a dedicated package, as it depends on libudev # - use systemd on EL7, sysvinit on EL6 & EL5 # - Install collectdctl, collectd-tg and collectd-nagios in collectd-utils.rpm +# - Add build-dependency on libcap-devel * Mon Aug 19 2013 Marc Fournier 5.4.0-1 - New upstream version diff --combined src/Makefile.am index 8e574a33,a95dbca7..08b8d525 --- a/src/Makefile.am +++ b/src/Makefile.am @@@ -359,6 -359,12 +359,12 @@@ ethstat_la_SOURCES = ethstat. ethstat_la_LDFLAGS = $(PLUGIN_LDFLAGS) endif + if BUILD_PLUGIN_FHCOUNT + pkglib_LTLIBRARIES += fhcount.la + fhcount_la_SOURCES = fhcount.c + fhcount_la_LDFLAGS = $(PLUGIN_LDFLAGS) + endif + if BUILD_PLUGIN_FILECOUNT pkglib_LTLIBRARIES += filecount.la filecount_la_SOURCES = filecount.c @@@ -1076,12 -1082,6 +1082,12 @@@ tokyotyrant_la_LIBADD += -lsocke endif endif +if BUILD_PLUGIN_TURBOSTAT +pkglib_LTLIBRARIES += turbostat.la +turbostat_la_SOURCES = turbostat.c +turbostat_la_LDFLAGS = $(PLUGIN_LDFLAGS) +endif + if BUILD_PLUGIN_UNIXSOCK pkglib_LTLIBRARIES += unixsock.la unixsock_la_SOURCES = unixsock.c \ @@@ -1194,7 -1194,6 +1200,7 @@@ write_kafka_la_SOURCES = write_kafka.c utils_format_json.c utils_format_json.h \ utils_cmd_putval.c utils_cmd_putval.h \ utils_crc32.c utils_crc32.h +write_kafka_la_CPPFLAGS = $(AM_CPPFLAGS) $(BUILD_WITH_LIBRDKAFKA_CPPFLAGS) write_kafka_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBRDKAFKA_LDFLAGS) write_kafka_la_LIBADD = $(BUILD_WITH_LIBRDKAFKA_LIBS) endif diff --combined src/collectd.conf.in index 3aae54d3,a09ed2be..5132cb4a --- a/src/collectd.conf.in +++ b/src/collectd.conf.in @@@ -117,6 -117,7 +117,7 @@@ #@BUILD_PLUGIN_ENTROPY_TRUE@LoadPlugin entropy #@BUILD_PLUGIN_ETHSTAT_TRUE@LoadPlugin ethstat #@BUILD_PLUGIN_EXEC_TRUE@LoadPlugin exec + #@BUILD_PLUGIN_FHCOUNT_TRUE@LoadPlugin fhcount #@BUILD_PLUGIN_FILECOUNT_TRUE@LoadPlugin filecount #@BUILD_PLUGIN_FSCACHE_TRUE@LoadPlugin fscache #@BUILD_PLUGIN_GMOND_TRUE@LoadPlugin gmond @@@ -183,7 -184,6 +184,7 @@@ #@BUILD_PLUGIN_TED_TRUE@LoadPlugin ted #@BUILD_PLUGIN_THERMAL_TRUE@LoadPlugin thermal #@BUILD_PLUGIN_TOKYOTYRANT_TRUE@LoadPlugin tokyotyrant +#@BUILD_PLUGIN_TURBOSTAT_TRUE@LoadPlugin turbostat #@BUILD_PLUGIN_UNIXSOCK_TRUE@LoadPlugin unixsock #@BUILD_PLUGIN_UPTIME_TRUE@LoadPlugin uptime #@BUILD_PLUGIN_USERS_TRUE@LoadPlugin users @@@ -521,6 -521,11 +522,11 @@@ # NotificationExec "user:group" "/path/to/exec" # + # + # ValuesAbsolute true + # ValuesPercentage false + # + # # # Instance "foodir" @@@ -1205,25 -1210,6 +1211,25 @@@ # Port "1978" # +# +## None of the following option should be set manually +## This plugin automatically detect most optimal options +## Only set values here if: +## - The module ask you to +## - You want to disable the collection of some data +## - Your (intel) CPU is not supported (yet) by the module +## - The module generate a lot of errors 'MSR offset 0x... read failed' +## In the last two cases, please open a bug request +# +# TCCActivationTemp "100" +# CoreCstates "392" +# PackageCstates "396" +# SystemManagementInterrupt true +# DigitalTemperatureSensor true +# PackageThermalManagement true +# RunningAveragePowerLimit "7" +# + # # SocketFile "@prefix@/var/run/@PACKAGE_NAME@-unixsock" # SocketGroup "collectd" diff --combined src/collectd.conf.pod index 1d55a47c,11bc7fa5..0c8e1e20 --- a/src/collectd.conf.pod +++ b/src/collectd.conf.pod @@@ -2264,6 -2264,27 +2264,27 @@@ expected from them. This is documented =back + =head2 Plugin C + + The C plugin provides statistics about used, unused and total number of + file handles. + + The I provides the following configuration options: + + =over 4 + + =item B B|B + + Enables or disables reporting of file handles usage in absolute numbers, + e.g. file handles used. Defaults to B. + + =item B B|B + + Enables or disables reporting of file handles usage in percentages, e.g. + percent of file handles used. Defaults to B. + + =back + =head2 Plugin C The C plugin counts the number of files in a certain directory (and @@@ -6587,79 -6608,6 +6608,79 @@@ Default: B<1978 =back +=head2 Plugin C + +The I reads CPU frequency and C-state residency on modern +Intel processors by using the new Model Specific Registers. + +=over 4 + +=item B I + +Bitmask of the list of core C states supported by the processor. +This option should only be used if the automated detection fails. +Default value extracted from the cpu model and family. + +Currently supported C-states (by this plugin): 3, 6, 7 + +Example: (1<<3)+(1<<6)+(1<<7) = 392 for all states + +=item B I + +Bitmask of the list of pacages C states supported by the processor. +This option should only be used if the automated detection fails. +Default value extracted from the cpu model and family. + +Currently supported C-states (by this plugin): 2, 3, 6, 7, 8, 9, 10 + +Example: (1<<2)+(1<<3)+(1<<6)+(1<<7) = 396 for states 2, 3, 6 and 7 + +=item B I|I + +Boolean enabling the collection of the I/O System-Management Interrupt +counter'. This option should only be used if the automated detection +fails or if you want to disable this feature. + +=item B I|I + +Boolean enabling the collection of the temperature of each core. +This option should only be used if the automated detectionfails or +if you want to disable this feature. + +=item B I|I + +Boolean enabling the collection of the temperature of each package. +This option should only be used if the automated detectionfails or +if you want to disable this feature. + +=item B I + +Thermal Control Circuit Activation Temperature of the installed +CPU. This temperature is used when collecting the temperature of +cores or packages. This option should only be used if the automated +detection fails. Default value extracted from B + +=item B I + +Bitmask of the list of elements to be thermally monitored. This option +should only be used if the automated detection fails or if you want to +disable some collections. The different bits of this bitmask accepted +by this plugin are: + +=over 4 + +=item 0 ('1'): Package + +=item 1 ('2'): DRAM + +=item 2 ('4'): Cores + +=item 3 ('8'): Embedded graphic device + +=back + +=back + =head2 Plugin C =over 4