projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
utils_vl_lookup: Fixed a race when creating user objects.
[collectd.git]
/
src
/
zfs_arc.c
diff --git
a/src/zfs_arc.c
b/src/zfs_arc.c
index
e77569f
..
cc98862
100644
(file)
--- a/
src/zfs_arc.c
+++ b/
src/zfs_arc.c
@@
-28,7
+28,7
@@
/*
* Global variables
*/
/*
* Global variables
*/
-static kstat_t *ksp;
+
extern kstat_ctl_t *kc;
static void za_submit (const char* type, const char* type_instance, value_t* values, int values_len)
extern kstat_ctl_t *kc;
static void za_submit (const char* type, const char* type_instance, value_t* values, int values_len)
@@
-60,15
+60,16
@@
static int za_read_derive (kstat_t *ksp, const char *kstat_value,
long long tmp;
value_t v;
long long tmp;
value_t v;
- tmp = get_kstat_value (ksp, kstat_value);
+ tmp = get_kstat_value (ksp,
(char *)
kstat_value);
if (tmp == -1LL)
{
if (tmp == -1LL)
{
-
ERROR
("zfs_arc plugin: Reading kstat value \"%s\" failed.", kstat_value);
+
WARNING
("zfs_arc plugin: Reading kstat value \"%s\" failed.", kstat_value);
return (-1);
}
v.derive = (derive_t) tmp;
za_submit (type, type_instance, /* values = */ &v, /* values_num = */ 1);
return (-1);
}
v.derive = (derive_t) tmp;
za_submit (type, type_instance, /* values = */ &v, /* values_num = */ 1);
+ return (0);
}
static int za_read_gauge (kstat_t *ksp, const char *kstat_value,
}
static int za_read_gauge (kstat_t *ksp, const char *kstat_value,
@@
-77,15
+78,16
@@
static int za_read_gauge (kstat_t *ksp, const char *kstat_value,
long long tmp;
value_t v;
long long tmp;
value_t v;
- tmp = get_kstat_value (ksp, kstat_value);
+ tmp = get_kstat_value (ksp,
(char *)
kstat_value);
if (tmp == -1LL)
{
if (tmp == -1LL)
{
-
ERROR
("zfs_arc plugin: Reading kstat value \"%s\" failed.", kstat_value);
+
WARNING
("zfs_arc plugin: Reading kstat value \"%s\" failed.", kstat_value);
return (-1);
}
v.gauge = (gauge_t) tmp;
za_submit (type, type_instance, /* values = */ &v, /* values_num = */ 1);
return (-1);
}
v.gauge = (gauge_t) tmp;
za_submit (type, type_instance, /* values = */ &v, /* values_num = */ 1);
+ return (0);
}
static void za_submit_ratio (const char* type_instance, gauge_t hits, gauge_t misses)
}
static void za_submit_ratio (const char* type_instance, gauge_t hits, gauge_t misses)
@@
-107,6
+109,7
@@
static int za_read (void)
{
gauge_t arc_hits, arc_misses, l2_hits, l2_misses;
value_t l2_io[2];
{
gauge_t arc_hits, arc_misses, l2_hits, l2_misses;
value_t l2_io[2];
+ kstat_t *ksp = NULL;
get_kstat (&ksp, "zfs", 0, "arcstats");
if (ksp == NULL)
get_kstat (&ksp, "zfs", 0, "arcstats");
if (ksp == NULL)
@@
-120,12
+123,14
@@
static int za_read (void)
za_read_gauge (ksp, "l2_size", "cache_size", "L2");
/* Operations */
za_read_gauge (ksp, "l2_size", "cache_size", "L2");
/* Operations */
- za_read_derive (ksp, "allocated","cache_operation", "allocated");
za_read_derive (ksp, "deleted", "cache_operation", "deleted");
za_read_derive (ksp, "deleted", "cache_operation", "deleted");
+#if __FreeBSD__
+ za_read_derive (ksp, "allocated","cache_operation", "allocated");
za_read_derive (ksp, "stolen", "cache_operation", "stolen");
za_read_derive (ksp, "stolen", "cache_operation", "stolen");
+#endif
/* Issue indicators */
/* Issue indicators */
- za_read_derive (ksp, "mutex_miss", "mutex_operation", "miss");
+ za_read_derive (ksp, "mutex_miss", "mutex_operation
s
", "miss");
za_read_derive (ksp, "hash_collisions", "hash_collisions", "");
/* Evictions */
za_read_derive (ksp, "hash_collisions", "hash_collisions", "");
/* Evictions */
@@
-163,8
+168,6
@@
static int za_read (void)
static int za_init (void) /* {{{ */
{
static int za_init (void) /* {{{ */
{
- ksp = NULL;
-
/* kstats chain already opened by update_kstat (using *kc), verify everything went fine. */
if (kc == NULL)
{
/* kstats chain already opened by update_kstat (using *kc), verify everything went fine. */
if (kc == NULL)
{