summaryrefslogtreecommitdiffstats
path: root/zfs/ZfsArcMeter.c
diff options
context:
space:
mode:
authorRoss Williams <ross@ross-williams.net>2019-09-03 18:21:33 +0000
committerRoss Williams <ross@ross-williams.net>2019-09-03 18:21:33 +0000
commite450b586368750e771746ef3e2f5a070962dfd28 (patch)
tree5501777912872ee233b6c9b60a26dd4906a6b4a7 /zfs/ZfsArcMeter.c
parentff6914e4ad4b78749bcee5471a33ef206b0a7d03 (diff)
Refactor openzfs_sysctl_init() and ZfsArcMeter...
openzfs_sysctl_init() now returns void instead of int. The ZfsArcStats->enabled flag is set inside the init function now, instead of having to be set from its return value. Preparation for more flag setting in Compressed ARC commit. ZfsArcMeter_readStats() added and all Meter->values[] setting moved to it, eliminating duplicated code in {darwin,freebsd,linux,solaris}/Platform.c.
Diffstat (limited to 'zfs/ZfsArcMeter.c')
-rw-r--r--zfs/ZfsArcMeter.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/zfs/ZfsArcMeter.c b/zfs/ZfsArcMeter.c
index ebd80992..9f7028bc 100644
--- a/zfs/ZfsArcMeter.c
+++ b/zfs/ZfsArcMeter.c
@@ -6,6 +6,7 @@ in the source distribution for its full text.
*/
#include "ZfsArcMeter.h"
+#include "ZfsArcStats.h"
#include "CRT.h"
#include "Platform.h"
@@ -17,6 +18,8 @@ in the source distribution for its full text.
#include <assert.h>
/*{
+#include "ZfsArcStats.h"
+
#include "Meter.h"
}*/
@@ -24,6 +27,21 @@ int ZfsArcMeter_attributes[] = {
ZFS_MFU, ZFS_MRU, ZFS_ANON, ZFS_HEADER, ZFS_OTHER
};
+void ZfsArcMeter_readStats(Meter* this, ZfsArcStats* stats) {
+ this->total = stats->max;
+ this->values[0] = stats->MFU;
+ this->values[1] = stats->MRU;
+ this->values[2] = stats->anon;
+ this->values[3] = stats->header;
+ this->values[4] = stats->other;
+
+ // "Hide" the last value so it can
+ // only be accessed by index and is not
+ // displayed by the Bar or Graph style
+ Meter_setItems(this, 5);
+ this->values[5] = stats->size;
+}
+
static void ZfsArcMeter_updateValues(Meter* this, char* buffer, int size) {
int written;
Platform_setZfsArcValues(this);

© 2014-2024 Faster IT GmbH | imprint | privacy policy