summaryrefslogtreecommitdiff
path: root/src/pmdas/solaris/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdas/solaris/data.c')
-rw-r--r--src/pmdas/solaris/data.c1462
1 files changed, 1462 insertions, 0 deletions
diff --git a/src/pmdas/solaris/data.c b/src/pmdas/solaris/data.c
new file mode 100644
index 0000000..6d09a0e
--- /dev/null
+++ b/src/pmdas/solaris/data.c
@@ -0,0 +1,1462 @@
+/*
+ * Data structures that define metrics and control the Solaris PMDA
+ *
+ * Copyright (c) 2004 Silicon Graphics, Inc. All Rights Reserved.
+ * Copyright (c) 2010 Max Matveev. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+#include "common.h"
+#include "netmib2.h"
+#include <ctype.h>
+#include <libzfs.h>
+
+#ifndef ARRAY_SIZE
+#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
+#endif
+
+method_t methodtab[] = {
+ { "sysinfo", sysinfo_init, sysinfo_prefetch, sysinfo_fetch },
+ { "disk", disk_init, disk_prefetch, disk_fetch },
+ { "netmib2", netmib2_init, netmib2_refresh, netmib2_fetch },
+ { "zpool", zpool_init, zpool_refresh, zpool_fetch },
+ { "zfs", zfs_init, zfs_refresh, zfs_fetch },
+ { "zpool_vdev", zpool_perdisk_init, zpool_perdisk_refresh, zpool_perdisk_fetch },
+ { "netlink", netlink_init, netlink_refresh, netlink_fetch },
+ { "kvm", kvm_init, kvm_refresh, kvm_fetch },
+ { "zfs_arc", NULL, arcstats_refresh, arcstats_fetch },
+ { "filesystem", vnops_init, vnops_refresh, vnops_fetch }
+};
+
+const int methodtab_sz = ARRAY_SIZE(methodtab);
+static pmdaInstid prefetch_insts[ARRAY_SIZE(methodtab)];
+
+static pmdaInstid loadavg_insts[] = {
+ {1, "1 minute"},
+ {5, "5 minute"},
+ {15, "15 minute"}
+};
+
+pmdaMetric *metrictab;
+
+#define SYSINFO_OFF(field) ((ptrdiff_t)&((cpu_stat_t *)0)->cpu_sysinfo.field)
+#define KSTAT_IO_OFF(field) ((ptrdiff_t)&((kstat_io_t *)0)->field)
+#define VDEV_OFFSET(field) ((ptrdiff_t)&((vdev_stat_t *)0)->field)
+#define NM2_UDP_OFFSET(field) ((ptrdiff_t)&(nm2_udp.field))
+#define NM2_NETIF_OFFSET(field) ((ptrdiff_t)&((nm2_netif_stats_t *)0)->field)
+#define FSF_STAT_OFFSET(field) ((ptrdiff_t)&((fsf_stat_t *)0)->field)
+
+/*
+ * all metrics supported in this PMDA - one table entry for each metric
+ */
+metricdesc_t metricdesc[] = {
+
+ { "kernel.all.cpu.idle",
+ { PMDA_PMID(SCLR_SYSINFO,0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_IDLE]) },
+
+ { "kernel.all.cpu.user",
+ { PMDA_PMID(SCLR_SYSINFO,1), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_USER]) },
+
+ { "kernel.all.cpu.sys",
+ { PMDA_PMID(SCLR_SYSINFO,2), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_KERNEL]) },
+
+ { "kernel.all.cpu.wait.total",
+ { PMDA_PMID(SCLR_SYSINFO,3), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_WAIT]) },
+
+ { "kernel.percpu.cpu.idle",
+ { PMDA_PMID(SCLR_SYSINFO,4), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_IDLE]) },
+
+ { "kernel.percpu.cpu.user",
+ { PMDA_PMID(SCLR_SYSINFO,5), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_USER]) },
+
+ { "kernel.percpu.cpu.sys",
+ { PMDA_PMID(SCLR_SYSINFO,6), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_KERNEL]) },
+
+ { "kernel.percpu.cpu.wait.total",
+ { PMDA_PMID(SCLR_SYSINFO,7), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(cpu[CPU_WAIT]) },
+
+ { "kernel.all.cpu.wait.io",
+ { PMDA_PMID(SCLR_SYSINFO,8), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(wait[W_IO]) },
+
+ { "kernel.all.cpu.wait.pio",
+ { PMDA_PMID(SCLR_SYSINFO,9), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(wait[W_PIO]) },
+
+ { "kernel.all.cpu.wait.swap",
+ { PMDA_PMID(SCLR_SYSINFO,10), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(wait[W_SWAP]) },
+
+ { "kernel.percpu.cpu.wait.io",
+ { PMDA_PMID(SCLR_SYSINFO,11), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(wait[W_IO]) },
+
+ { "kernel.percpu.cpu.wait.pio",
+ { PMDA_PMID(SCLR_SYSINFO,12), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(wait[W_PIO]) },
+
+ { "kernel.percpu.cpu.wait.swap",
+ { PMDA_PMID(SCLR_SYSINFO,13), PM_TYPE_U64, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_MSEC, 0)
+ }, SYSINFO_OFF(wait[W_SWAP]) },
+
+ { "kernel.all.io.bread",
+ { PMDA_PMID(SCLR_SYSINFO,14), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(bread) },
+
+ { "kernel.all.io.bwrite",
+ { PMDA_PMID(SCLR_SYSINFO,15), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(bwrite) },
+
+ { "kernel.all.io.lread",
+ { PMDA_PMID(SCLR_SYSINFO,16), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(lread) },
+
+ { "kernel.all.io.lwrite",
+ { PMDA_PMID(SCLR_SYSINFO,17), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(lwrite) },
+
+ { "kernel.percpu.io.bread",
+ { PMDA_PMID(SCLR_SYSINFO,18), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(bread) },
+
+ { "kernel.percpu.io.bwrite",
+ { PMDA_PMID(SCLR_SYSINFO,19), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(bwrite) },
+
+ { "kernel.percpu.io.lread",
+ { PMDA_PMID(SCLR_SYSINFO,20), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(lread) },
+
+ { "kernel.percpu.io.lwrite",
+ { PMDA_PMID(SCLR_SYSINFO,21), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(lwrite) },
+
+ { "kernel.all.syscall",
+ { PMDA_PMID(SCLR_SYSINFO,22), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(syscall) },
+
+ { "kernel.all.pswitch",
+ { PMDA_PMID(SCLR_SYSINFO,23), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(pswitch) },
+
+ { "kernel.percpu.syscall",
+ { PMDA_PMID(SCLR_SYSINFO,24), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(syscall) },
+
+ { "kernel.percpu.pswitch",
+ { PMDA_PMID(SCLR_SYSINFO,25), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(pswitch) },
+
+ { "kernel.all.io.phread",
+ { PMDA_PMID(SCLR_SYSINFO,26), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(phread) },
+
+ { "kernel.all.io.phwrite",
+ { PMDA_PMID(SCLR_SYSINFO,27), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(phwrite) },
+
+ { "kernel.all.io.intr",
+ { PMDA_PMID(SCLR_SYSINFO,28), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(intr) },
+
+ { "kernel.percpu.io.phread",
+ { PMDA_PMID(SCLR_SYSINFO,29), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(phread) },
+
+ { "kernel.percpu.io.phwrite",
+ { PMDA_PMID(SCLR_SYSINFO,30), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(phwrite) },
+
+ { "kernel.percpu.io.intr",
+ { PMDA_PMID(SCLR_SYSINFO,31), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(intr) },
+
+ { "kernel.all.trap",
+ { PMDA_PMID(SCLR_SYSINFO,32), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(trap) },
+
+ { "kernel.all.sysexec",
+ { PMDA_PMID(SCLR_SYSINFO,33), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysexec) },
+
+ { "kernel.all.sysfork",
+ { PMDA_PMID(SCLR_SYSINFO,34), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysfork) },
+
+ { "kernel.all.sysvfork",
+ { PMDA_PMID(SCLR_SYSINFO,35), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysvfork) },
+
+ { "kernel.all.sysread",
+ { PMDA_PMID(SCLR_SYSINFO,36), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysread) },
+
+ { "kernel.all.syswrite",
+ { PMDA_PMID(SCLR_SYSINFO,37), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(syswrite) },
+
+ { "kernel.percpu.trap",
+ { PMDA_PMID(SCLR_SYSINFO,38), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(trap) },
+
+ { "kernel.percpu.sysexec",
+ { PMDA_PMID(SCLR_SYSINFO,39), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysexec) },
+
+ { "kernel.percpu.sysfork",
+ { PMDA_PMID(SCLR_SYSINFO,40), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysfork) },
+
+ { "kernel.percpu.sysvfork",
+ { PMDA_PMID(SCLR_SYSINFO,41), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysvfork) },
+
+ { "kernel.percpu.sysread",
+ { PMDA_PMID(SCLR_SYSINFO,42), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(sysread) },
+
+ { "kernel.percpu.syswrite",
+ { PMDA_PMID(SCLR_SYSINFO,43), PM_TYPE_U32, CPU_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, SYSINFO_OFF(syswrite) },
+
+ { "disk.all.read",
+ { PMDA_PMID(SCLR_DISK,0), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, KSTAT_IO_OFF(reads) },
+
+ { "disk.all.write",
+ { PMDA_PMID(SCLR_DISK,1), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, KSTAT_IO_OFF(writes) },
+
+ { "disk.all.total",
+ { PMDA_PMID(SCLR_DISK,2), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, -1},
+
+ { "disk.all.read_bytes",
+ { PMDA_PMID(SCLR_DISK,3), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, KSTAT_IO_OFF(nread) },
+
+ { "disk.all.write_bytes",
+ { PMDA_PMID(SCLR_DISK,4), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, KSTAT_IO_OFF(nwritten) },
+
+ { "disk.all.total_bytes",
+ { PMDA_PMID(SCLR_DISK,5), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, -1},
+
+ { "disk.dev.read",
+ { PMDA_PMID(SCLR_DISK,10), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, KSTAT_IO_OFF(reads) },
+
+
+ { "disk.dev.write",
+ { PMDA_PMID(SCLR_DISK,11), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, KSTAT_IO_OFF(writes) },
+
+ { "disk.dev.total",
+ { PMDA_PMID(SCLR_DISK,12), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, -1},
+
+ { "disk.dev.read_bytes",
+ { PMDA_PMID(SCLR_DISK,13), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, KSTAT_IO_OFF(nread) },
+
+ { "disk.dev.write_bytes",
+ { PMDA_PMID(SCLR_DISK,14), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, KSTAT_IO_OFF(nwritten) },
+
+ { "disk.dev.total_bytes",
+ { PMDA_PMID(SCLR_DISK,15), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, -1},
+
+ { "hinv.ncpu",
+ { PMDA_PMID(SCLR_SYSINFO,56), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, -1},
+
+ { "hinv.ndisk",
+ { PMDA_PMID(SCLR_DISK,20), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, -1},
+
+ { "hinv.nfilesys",
+ { PMDA_PMID(SCLR_FILESYS,1023), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, -1},
+
+ { "pmda.uname",
+ { PMDA_PMID(SCLR_SYSINFO,107), PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, -1 },
+
+ { "hinv.pagesize",
+ { PMDA_PMID(SCLR_SYSINFO,108), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, -1 },
+
+ { "hinv.physmem",
+ { PMDA_PMID(SCLR_SYSINFO,109), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_MBYTE, 0, 0)
+ }, -1 },
+
+ { "zpool.capacity",
+ { PMDA_PMID(SCLR_ZPOOL,2), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, VDEV_OFFSET(vs_space) },
+ { "zpool.used",
+ { PMDA_PMID(SCLR_ZPOOL,3), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, VDEV_OFFSET(vs_alloc) },
+ { "zpool.checksum_errors",
+ { PMDA_PMID(SCLR_ZPOOL,4), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_checksum_errors) },
+ { "zpool.self_healed",
+ { PMDA_PMID(SCLR_ZPOOL,5), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, VDEV_OFFSET(vs_self_healed) },
+ { "zpool.in.bytes",
+ { PMDA_PMID(SCLR_ZPOOL,6), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, VDEV_OFFSET(vs_bytes[ZIO_TYPE_READ]) },
+ { "zpool.in.ops",
+ { PMDA_PMID(SCLR_ZPOOL,7), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_ops[ZIO_TYPE_READ]) },
+ { "zpool.in.errors",
+ { PMDA_PMID(SCLR_ZPOOL,8), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_read_errors) },
+ { "zpool.out.bytes",
+ { PMDA_PMID(SCLR_ZPOOL,9), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, VDEV_OFFSET(vs_bytes[ZIO_TYPE_WRITE]) },
+ { "zpool.out.ops",
+ { PMDA_PMID(SCLR_ZPOOL,10), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_ops[ZIO_TYPE_WRITE]) },
+ { "zpool.out.errors",
+ { PMDA_PMID(SCLR_ZPOOL,11), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_write_errors) },
+ { "zpool.ops.noops",
+ { PMDA_PMID(SCLR_ZPOOL,12), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_ops[ZIO_TYPE_NULL]) },
+ { "zpool.ops.ioctls",
+ { PMDA_PMID(SCLR_ZPOOL,13), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_ops[ZIO_TYPE_WRITE]) },
+ { "zpool.ops.claims",
+ { PMDA_PMID(SCLR_ZPOOL,14), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_ops[ZIO_TYPE_WRITE]) },
+ { "zpool.ops.frees",
+ { PMDA_PMID(SCLR_ZPOOL,15), PM_TYPE_U64, ZPOOL_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_ops[ZIO_TYPE_WRITE]) },
+ { "zfs.used.total",
+ { PMDA_PMID(SCLR_ZFS,10), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_USED },
+ { "zfs.available",
+ { PMDA_PMID(SCLR_ZFS,0), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_AVAILABLE },
+ { "zfs.quota",
+ { PMDA_PMID(SCLR_ZFS,1), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_QUOTA },
+ { "zfs.reservation",
+ { PMDA_PMID(SCLR_ZFS,2), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_RESERVATION },
+ { "zfs.compression",
+ { PMDA_PMID(SCLR_ZFS,3), PM_TYPE_DOUBLE, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, ZFS_PROP_COMPRESSRATIO },
+ { "zfs.copies",
+ { PMDA_PMID(SCLR_ZFS,4), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, ZFS_PROP_COPIES },
+ { "zfs.used.byme",
+ { PMDA_PMID(SCLR_ZFS,11), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_USEDDS },
+ { "zfs.used.bysnapshots",
+ { PMDA_PMID(SCLR_ZFS,12), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_USEDSNAP },
+ { "zfs.used.bychildren",
+ { PMDA_PMID(SCLR_ZFS,13), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_USEDCHILD },
+
+ { "network.udp.ipackets",
+ { PMDA_PMID(SCLR_NETIF,14), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_UDP_OFFSET(ipackets) },
+ { "network.udp.opackets",
+ { PMDA_PMID(SCLR_NETIF,15), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_UDP_OFFSET(opackets) },
+ { "network.udp.ierrors",
+ { PMDA_PMID(SCLR_NETIF,16), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_UDP_OFFSET(ierrors) },
+ { "network.udp.oerrors",
+ { PMDA_PMID(SCLR_NETIF,17), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_UDP_OFFSET(oerrors) },
+
+ { "network.interface.mtu",
+ { PMDA_PMID(SCLR_NETIF,0), PM_TYPE_U32, NETIF_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, NM2_NETIF_OFFSET(mtu) },
+ { "network.interface.in.packets",
+ { PMDA_PMID(SCLR_NETIF,2), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(ipackets) },
+ { "network.interface.in.bytes",
+ { PMDA_PMID(SCLR_NETIF,3), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, NM2_NETIF_OFFSET(ibytes) },
+ { "network.interface.in.bcasts",
+ { PMDA_PMID(SCLR_NETIF,4), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(ibcast) },
+ { "network.interface.in.mcasts",
+ { PMDA_PMID(SCLR_NETIF,5), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(imcast) },
+ { "network.interface.out.packets",
+ { PMDA_PMID(SCLR_NETIF,9), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(opackets) },
+ { "network.interface.out.bytes",
+ { PMDA_PMID(SCLR_NETIF,10), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, NM2_NETIF_OFFSET(obytes) },
+ { "network.interface.out.bcasts",
+ { PMDA_PMID(SCLR_NETIF,11), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(obcast) },
+ { "network.interface.out.mcasts",
+ { PMDA_PMID(SCLR_NETIF,12), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(omcast) },
+ { "network.interface.in.errors",
+ { PMDA_PMID(SCLR_NETIF,1), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(ierrors) },
+ { "network.interface.out.errors",
+ { PMDA_PMID(SCLR_NETIF,8), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(oerrors) },
+ { "network.interface.in.drops",
+ { PMDA_PMID(SCLR_NETIF,6), PM_TYPE_U32, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(idrops) },
+ { "network.interface.out.drops",
+ { PMDA_PMID(SCLR_NETIF,13), PM_TYPE_U32, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(odrops) },
+ { "network.interface.in.delivers",
+ { PMDA_PMID(SCLR_NETIF,7), PM_TYPE_U64, NETIF_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_NETIF_OFFSET(delivered) },
+ { "network.udp.noports",
+ { PMDA_PMID(SCLR_NETIF,18), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_UDP_OFFSET(noports) },
+ { "network.udp.overflows",
+ { PMDA_PMID(SCLR_NETIF,19), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, NM2_UDP_OFFSET(overflows) },
+
+ { "zpool.state",
+ { PMDA_PMID(SCLR_ZPOOL,0), PM_TYPE_STRING, ZPOOL_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, 0 },
+
+ { "zpool.state_int",
+ { PMDA_PMID(SCLR_ZPOOL,1), PM_TYPE_U32, ZPOOL_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, 0 },
+ { "zpool.perdisk.state",
+ { PMDA_PMID(SCLR_ZPOOL_PERDISK,0), PM_TYPE_STRING, ZPOOL_PERDISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, VDEV_OFFSET(vs_state) },
+ { "zpool.perdisk.state_int",
+ { PMDA_PMID(SCLR_ZPOOL_PERDISK,1), PM_TYPE_U32, ZPOOL_PERDISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, 0 },
+ { "zpool.perdisk.checksum_errors",
+ { PMDA_PMID(SCLR_ZPOOL_PERDISK,2), PM_TYPE_U64, ZPOOL_PERDISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_checksum_errors) },
+ { "zpool.perdisk.self_healed",
+ { PMDA_PMID(SCLR_ZPOOL_PERDISK,3), PM_TYPE_U64, ZPOOL_PERDISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, VDEV_OFFSET(vs_self_healed) },
+ { "zpool.perdisk.in.errors",
+ { PMDA_PMID(SCLR_ZPOOL_PERDISK,4), PM_TYPE_U64, ZPOOL_PERDISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_read_errors) },
+ { "zpool.perdisk.out.errors",
+ { PMDA_PMID(SCLR_ZPOOL_PERDISK,5), PM_TYPE_U64, ZPOOL_PERDISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, VDEV_OFFSET(vs_write_errors) },
+
+ { "network.link.in.errors",
+ { PMDA_PMID(SCLR_NETLINK,4), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ierrors" },
+ { "network.link.in.packets",
+ { PMDA_PMID(SCLR_NETLINK,5), PM_TYPE_U64, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ipackets64" },
+ { "network.link.in.bytes",
+ { PMDA_PMID(SCLR_NETLINK,6), PM_TYPE_U64, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"rbytes64" },
+ { "network.link.in.bcasts",
+ { PMDA_PMID(SCLR_NETLINK,7), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"brdcstrcv" },
+ { "network.link.in.mcasts",
+ { PMDA_PMID(SCLR_NETLINK,8), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"multircv" },
+ { "network.link.in.nobufs",
+ { PMDA_PMID(SCLR_NETLINK,9), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"norcvbuf" },
+ { "network.link.out.errors",
+ { PMDA_PMID(SCLR_NETLINK,10), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"oerrors" },
+ { "network.link.out.packets",
+ { PMDA_PMID(SCLR_NETLINK,11), PM_TYPE_U64, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"opackets64" },
+ { "network.link.out.bytes",
+ { PMDA_PMID(SCLR_NETLINK,12), PM_TYPE_U64, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"obytes64" },
+ { "network.link.out.bcasts",
+ { PMDA_PMID(SCLR_NETLINK,13), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"brdcstxmt" },
+ { "network.link.out.mcasts",
+ { PMDA_PMID(SCLR_NETLINK,14), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"multixmt" },
+ { "network.link.out.nobufs",
+ { PMDA_PMID(SCLR_NETLINK,15), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"noxmtbuf" },
+ { "network.link.collisions",
+ { PMDA_PMID(SCLR_NETLINK,0), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"collisions" },
+ { "network.link.state",
+ { PMDA_PMID(SCLR_NETLINK,1), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"link_state" },
+ { "network.link.duplex",
+ { PMDA_PMID(SCLR_NETLINK,2), PM_TYPE_U32, NETLINK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"link_duplex" },
+ { "network.link.speed",
+ { PMDA_PMID(SCLR_NETLINK,3), PM_TYPE_U64, NETLINK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ifspeed" },
+
+ { "zfs.recordsize",
+ { PMDA_PMID(SCLR_ZFS,5), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_RECORDSIZE },
+ { "zfs.refquota",
+ { PMDA_PMID(SCLR_ZFS,6), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_REFQUOTA },
+ { "zfs.refreservation",
+ { PMDA_PMID(SCLR_ZFS,7), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_REFRESERVATION },
+ { "zfs.used.byrefreservation",
+ { PMDA_PMID(SCLR_ZFS,14), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_USEDREFRESERV },
+ { "zfs.referenced",
+ { PMDA_PMID(SCLR_ZFS,8), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_REFERENCED },
+ { "zfs.nsnapshots",
+ { PMDA_PMID(SCLR_ZFS,9), PM_TYPE_U64, ZFS_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, -1 },
+ { "zfs.snapshot.used",
+ { PMDA_PMID(SCLR_ZFS,15), PM_TYPE_U64, ZFS_SNAP_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_USED },
+ { "zfs.snapshot.referenced",
+ { PMDA_PMID(SCLR_ZFS,16), PM_TYPE_U64, ZFS_SNAP_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, ZFS_PROP_REFERENCED },
+ { "zfs.snapshot.compression",
+ { PMDA_PMID(SCLR_ZFS,17), PM_TYPE_DOUBLE, ZFS_SNAP_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, ZFS_PROP_COMPRESSRATIO },
+ { "kernel.all.load",
+ { PMDA_PMID(SCLR_SYSINFO,135), PM_TYPE_FLOAT, LOADAVG_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, 0 },
+
+ { "kernel.fsflush.scanned",
+ { PMDA_PMID(SCLR_FSFLUSH,0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, FSF_STAT_OFFSET(fsf_scan) },
+ { "kernel.fsflush.examined",
+ { PMDA_PMID(SCLR_FSFLUSH,1), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, FSF_STAT_OFFSET(fsf_examined) },
+ { "kernel.fsflush.locked",
+ { PMDA_PMID(SCLR_FSFLUSH,2), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, FSF_STAT_OFFSET(fsf_locked) },
+ { "kernel.fsflush.modified",
+ { PMDA_PMID(SCLR_FSFLUSH,3), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, FSF_STAT_OFFSET(fsf_modified) },
+ { "kernel.fsflush.coalesced",
+ { PMDA_PMID(SCLR_FSFLUSH,4), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, FSF_STAT_OFFSET(fsf_coalesce) },
+ { "kernel.fsflush.released",
+ { PMDA_PMID(SCLR_FSFLUSH,5), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, FSF_STAT_OFFSET(fsf_releases) },
+ { "kernel.fsflush.time",
+ { PMDA_PMID(SCLR_FSFLUSH,6), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_NSEC, 0)
+ }, FSF_STAT_OFFSET(fsf_time) },
+
+ { "mem.physmem",
+ { PMDA_PMID(SCLR_SYSINFO,136), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, -1},
+ { "mem.freemem",
+ { PMDA_PMID(SCLR_SYSINFO,137), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, -1},
+ { "mem.lotsfree",
+ { PMDA_PMID(SCLR_SYSINFO,138), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, -1},
+ { "mem.availrmem",
+ { PMDA_PMID(SCLR_SYSINFO,139), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_KBYTE, 0, 0)
+ }, -1},
+
+ { "zfs.arc.size",
+ { PMDA_PMID(SCLR_ARCSTATS,0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"size"},
+ { "zfs.arc.min_size",
+ { PMDA_PMID(SCLR_ARCSTATS,1), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"c_min"},
+ { "zfs.arc.max_size",
+ { PMDA_PMID(SCLR_ARCSTATS,2), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"c_max"},
+ { "zfs.arc.mru_size",
+ { PMDA_PMID(SCLR_ARCSTATS,3), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"p"},
+ { "zfs.arc.target_size",
+ { PMDA_PMID(SCLR_ARCSTATS,4), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"c"},
+ { "zfs.arc.misses.total",
+ { PMDA_PMID(SCLR_ARCSTATS,5), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"misses"},
+ { "zfs.arc.misses.demand_data",
+ { PMDA_PMID(SCLR_ARCSTATS,6), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"demand_data_misses"},
+ { "zfs.arc.misses.demand_metadata",
+ { PMDA_PMID(SCLR_ARCSTATS,7), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"demand_metadata_misses"},
+ { "zfs.arc.misses.prefetch_data",
+ { PMDA_PMID(SCLR_ARCSTATS,8), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"prefetch_data_misses"},
+ { "zfs.arc.misses.prefetch_metadata",
+ { PMDA_PMID(SCLR_ARCSTATS,9), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"prefetch_metadata_misses"},
+ { "zfs.arc.hits.total",
+ { PMDA_PMID(SCLR_ARCSTATS,10), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"hits"},
+ { "zfs.arc.hits.mfu",
+ { PMDA_PMID(SCLR_ARCSTATS,11), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"mfu_hits"},
+ { "zfs.arc.hits.mru",
+ { PMDA_PMID(SCLR_ARCSTATS,12), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"mru_hits"},
+ { "zfs.arc.hits.mfu_ghost",
+ { PMDA_PMID(SCLR_ARCSTATS,13), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"mfu_ghost_hits"},
+ { "zfs.arc.hits.mru_ghost",
+ { PMDA_PMID(SCLR_ARCSTATS,14), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"mru_ghost_hits"},
+ { "zfs.arc.hits.demand_data",
+ { PMDA_PMID(SCLR_ARCSTATS,15), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"demand_data_hits"},
+ { "zfs.arc.hits.demand_metadata",
+ { PMDA_PMID(SCLR_ARCSTATS,16), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"demand_metadata_hits"},
+ { "zfs.arc.hits.prefetch_data",
+ { PMDA_PMID(SCLR_ARCSTATS,17), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"prefetch_data_hits"},
+ { "zfs.arc.hits.prefetch_metadata",
+ { PMDA_PMID(SCLR_ARCSTATS,18), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"prefetch_metadata_hits"},
+ { "pmda.prefetch.time",
+ { PMDA_PMID(4095,0), PM_TYPE_U64, PREFETCH_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_NSEC, 0)
+ }, -1 },
+ { "pmda.prefetch.count",
+ { PMDA_PMID(4095,1), PM_TYPE_U64, PREFETCH_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, -1 },
+ { "pmda.metric.time",
+ { PMDA_PMID(4095,2), PM_TYPE_U64, METRIC_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_NSEC, 0)
+ }, -1 },
+ { "pmda.metric.count",
+ { PMDA_PMID(4095,3), PM_TYPE_U64, METRIC_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, -1 },
+ { "disk.dev.wait.time",
+ { PMDA_PMID(SCLR_DISK,16), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_NSEC, 0)
+ }, KSTAT_IO_OFF(wtime)},
+ { "disk.dev.wait.count",
+ { PMDA_PMID(SCLR_DISK,17), PM_TYPE_U32, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, KSTAT_IO_OFF(wcnt)},
+ { "disk.dev.run.time",
+ { PMDA_PMID(SCLR_DISK,18), PM_TYPE_U64, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_NSEC, 0)
+ }, KSTAT_IO_OFF(rtime)},
+ { "disk.dev.run.count",
+ { PMDA_PMID(SCLR_DISK,19), PM_TYPE_U32, DISK_INDOM, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, KSTAT_IO_OFF(rcnt)},
+
+ { "disk.all.wait.time",
+ { PMDA_PMID(SCLR_DISK,6), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_NSEC, 0)
+ }, KSTAT_IO_OFF(wtime)},
+ { "disk.all.wait.count",
+ { PMDA_PMID(SCLR_DISK,7), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, -1},
+ { "disk.all.run.time",
+ { PMDA_PMID(SCLR_DISK,8), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 1, 0, 0, PM_TIME_NSEC, 0)
+ }, KSTAT_IO_OFF(rtime)},
+ { "disk.all.run.count",
+ { PMDA_PMID(SCLR_DISK,9), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, -1},
+
+ { "kernel.fs.read_bytes",
+ { PMDA_PMID(SCLR_FILESYS,0), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"read_bytes"},
+ { "kernel.fs.readdir_bytes",
+ { PMDA_PMID(SCLR_FILESYS,1), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"readdir_bytes"},
+ { "kernel.fs.write_bytes",
+ { PMDA_PMID(SCLR_FILESYS,2), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"write_bytes"},
+ { "kernel.fs.vnops.access",
+ { PMDA_PMID(SCLR_FILESYS,3), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"naccess"},
+ { "kernel.fs.vnops.addmap",
+ {PMDA_PMID(SCLR_FILESYS,4), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"naddmap"},
+ { "kernel.fs.vnops.close",
+ {PMDA_PMID(SCLR_FILESYS,5), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nclose"},
+ { "kernel.fs.vnops.cmp",
+ {PMDA_PMID(SCLR_FILESYS,6), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ncmp"},
+ { "kernel.fs.vnops.create",
+ {PMDA_PMID(SCLR_FILESYS,7), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ncreate"},
+ { "kernel.fs.vnops.delmap",
+ {PMDA_PMID(SCLR_FILESYS,8), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndelmap"},
+ { "kernel.fs.vnops.dispose",
+ {PMDA_PMID(SCLR_FILESYS,9), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndispose"},
+ { "kernel.fs.vnops.dump",
+ {PMDA_PMID(SCLR_FILESYS,10), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndump"},
+ { "kernel.fs.vnops.dumpctl",
+ {PMDA_PMID(SCLR_FILESYS,11), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndumpctl"},
+ { "kernel.fs.vnops.fid",
+ {PMDA_PMID(SCLR_FILESYS,12), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nfid"},
+ { "kernel.fs.vnops.frlock",
+ {PMDA_PMID(SCLR_FILESYS,13), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nfrlock"},
+ { "kernel.fs.vnops.fsync",
+ {PMDA_PMID(SCLR_FILESYS,14), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nfsync"},
+ { "kernel.fs.vnops.getattr",
+ {PMDA_PMID(SCLR_FILESYS,15), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ngetattr"},
+ { "kernel.fs.vnops.getpage",
+ {PMDA_PMID(SCLR_FILESYS,16), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ngetpage"},
+ { "kernel.fs.vnops.getsecattr",
+ {PMDA_PMID(SCLR_FILESYS,17), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ngetsecattr"},
+ { "kernel.fs.vnops.inactive",
+ {PMDA_PMID(SCLR_FILESYS,18), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ninactive"},
+ { "kernel.fs.vnops.ioctl",
+ {PMDA_PMID(SCLR_FILESYS,19), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nioctl"},
+ { "kernel.fs.vnops.link",
+ {PMDA_PMID(SCLR_FILESYS,20), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nlink"},
+ { "kernel.fs.vnops.lookup",
+ {PMDA_PMID(SCLR_FILESYS,21), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nlookup"},
+ { "kernel.fs.vnops.map",
+ {PMDA_PMID(SCLR_FILESYS,22), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nmap"},
+ { "kernel.fs.vnops.mkdir",
+ {PMDA_PMID(SCLR_FILESYS,23), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nmkdir"},
+ { "kernel.fs.vnops.open",
+ {PMDA_PMID(SCLR_FILESYS,24), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nopen"},
+ { "kernel.fs.vnops.pageio",
+ {PMDA_PMID(SCLR_FILESYS,25), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"npageio"},
+ { "kernel.fs.vnops.pathconf",
+ {PMDA_PMID(SCLR_FILESYS,26), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"npathconf"},
+ { "kernel.fs.vnops.poll",
+ {PMDA_PMID(SCLR_FILESYS,27), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"npoll"},
+ { "kernel.fs.vnops.putpage",
+ {PMDA_PMID(SCLR_FILESYS,28), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nputpage"},
+ { "kernel.fs.vnops.read",
+ {PMDA_PMID(SCLR_FILESYS,29), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nread"},
+ { "kernel.fs.vnops.readdir",
+ {PMDA_PMID(SCLR_FILESYS,30), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nreaddir"},
+ { "kernel.fs.vnops.readlink",
+ {PMDA_PMID(SCLR_FILESYS,31), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nreadlink"},
+ { "kernel.fs.vnops.realvp",
+ {PMDA_PMID(SCLR_FILESYS,32), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrealvp"},
+ { "kernel.fs.vnops.remove",
+ {PMDA_PMID(SCLR_FILESYS,33), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nremove"},
+ { "kernel.fs.vnops.rename",
+ {PMDA_PMID(SCLR_FILESYS,34), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrename"},
+ { "kernel.fs.vnops.rmdir",
+ {PMDA_PMID(SCLR_FILESYS,35), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrmdir"},
+ { "kernel.fs.vnops.rwlock",
+ {PMDA_PMID(SCLR_FILESYS,36), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrwlock"},
+ { "kernel.fs.vnops.rwunlock",
+ {PMDA_PMID(SCLR_FILESYS,37), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrwunlock"},
+ { "kernel.fs.vnops.seek",
+ {PMDA_PMID(SCLR_FILESYS,38), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nseek"},
+ { "kernel.fs.vnops.setattr",
+ {PMDA_PMID(SCLR_FILESYS,39), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsetattr"},
+ { "kernel.fs.vnops.setfl",
+ {PMDA_PMID(SCLR_FILESYS,40), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsetfl"},
+ { "kernel.fs.vnops.setsecattr",
+ {PMDA_PMID(SCLR_FILESYS,41), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsetsecattr"},
+ { "kernel.fs.vnops.shrlock",
+ {PMDA_PMID(SCLR_FILESYS,42), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nshrlock"},
+ { "kernel.fs.vnops.space",
+ {PMDA_PMID(SCLR_FILESYS,43), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nspace"},
+ { "kernel.fs.vnops.symlink",
+ {PMDA_PMID(SCLR_FILESYS,44), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsymlink"},
+ { "kernel.fs.vnops.vnevent",
+ {PMDA_PMID(SCLR_FILESYS,45), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nvnevent"},
+ { "kernel.fs.vnops.write",
+ {PMDA_PMID(SCLR_FILESYS,46), PM_TYPE_U64, FILESYS_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nwrite"},
+
+ { "kernel.fstype.read_bytes",
+ { PMDA_PMID(SCLR_FILESYS,47), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"read_bytes"},
+ { "kernel.fstype.readdir_bytes",
+ { PMDA_PMID(SCLR_FILESYS,48), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"readdir_bytes"},
+ { "kernel.fstype.write_bytes",
+ { PMDA_PMID(SCLR_FILESYS,49), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"write_bytes"},
+ { "kernel.fstype.vnops.access",
+ { PMDA_PMID(SCLR_FILESYS,50), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"naccess"},
+ { "kernel.fstype.vnops.addmap",
+ {PMDA_PMID(SCLR_FILESYS,51), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"naddmap"},
+ { "kernel.fstype.vnops.close",
+ {PMDA_PMID(SCLR_FILESYS,52), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nclose"},
+ { "kernel.fstype.vnops.cmp",
+ {PMDA_PMID(SCLR_FILESYS,53), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ncmp"},
+ { "kernel.fstype.vnops.create",
+ {PMDA_PMID(SCLR_FILESYS,54), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ncreate"},
+ { "kernel.fstype.vnops.delmap",
+ {PMDA_PMID(SCLR_FILESYS,55), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndelmap"},
+ { "kernel.fstype.vnops.dispose",
+ {PMDA_PMID(SCLR_FILESYS,56), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndispose"},
+ { "kernel.fstype.vnops.dump",
+ {PMDA_PMID(SCLR_FILESYS,57), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndump"},
+ { "kernel.fstype.vnops.dumpctl",
+ {PMDA_PMID(SCLR_FILESYS,58), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ndumpctl"},
+ { "kernel.fstype.vnops.fid",
+ {PMDA_PMID(SCLR_FILESYS,59), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nfid"},
+ { "kernel.fstype.vnops.frlock",
+ {PMDA_PMID(SCLR_FILESYS,60), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nfrlock"},
+ { "kernel.fstype.vnops.fsync",
+ {PMDA_PMID(SCLR_FILESYS,61), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nfsync"},
+ { "kernel.fstype.vnops.getattr",
+ {PMDA_PMID(SCLR_FILESYS,62), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ngetattr"},
+ { "kernel.fstype.vnops.getpage",
+ {PMDA_PMID(SCLR_FILESYS,63), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ngetpage"},
+ { "kernel.fstype.vnops.getsecattr",
+ {PMDA_PMID(SCLR_FILESYS,64), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ngetsecattr"},
+ { "kernel.fstype.vnops.inactive",
+ {PMDA_PMID(SCLR_FILESYS,65), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"ninactive"},
+ { "kernel.fstype.vnops.ioctl",
+ {PMDA_PMID(SCLR_FILESYS,66), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nioctl"},
+ { "kernel.fstype.vnops.link",
+ {PMDA_PMID(SCLR_FILESYS,67), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nlink"},
+ { "kernel.fstype.vnops.lookup",
+ {PMDA_PMID(SCLR_FILESYS,68), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nlookup"},
+ { "kernel.fstype.vnops.map",
+ {PMDA_PMID(SCLR_FILESYS,69), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nmap"},
+ { "kernel.fstype.vnops.mkdir",
+ {PMDA_PMID(SCLR_FILESYS,70), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nmkdir"},
+ { "kernel.fstype.vnops.open",
+ {PMDA_PMID(SCLR_FILESYS,71), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nopen"},
+ { "kernel.fstype.vnops.pageio",
+ {PMDA_PMID(SCLR_FILESYS,72), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"npageio"},
+ { "kernel.fstype.vnops.pathconf",
+ {PMDA_PMID(SCLR_FILESYS,73), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"npathconf"},
+ { "kernel.fstype.vnops.poll",
+ {PMDA_PMID(SCLR_FILESYS,74), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"npoll"},
+ { "kernel.fstype.vnops.putpage",
+ {PMDA_PMID(SCLR_FILESYS,75), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nputpage"},
+ { "kernel.fstype.vnops.read",
+ {PMDA_PMID(SCLR_FILESYS,76), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nread"},
+ { "kernel.fstype.vnops.readdir",
+ {PMDA_PMID(SCLR_FILESYS,77), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nreaddir"},
+ { "kernel.fstype.vnops.readlink",
+ {PMDA_PMID(SCLR_FILESYS,78), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nreadlink"},
+ { "kernel.fstype.vnops.realvp",
+ {PMDA_PMID(SCLR_FILESYS,79), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrealvp"},
+ { "kernel.fstype.vnops.remove",
+ {PMDA_PMID(SCLR_FILESYS,80), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nremove"},
+ { "kernel.fstype.vnops.rename",
+ {PMDA_PMID(SCLR_FILESYS,81), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrename"},
+ { "kernel.fstype.vnops.rmdir",
+ {PMDA_PMID(SCLR_FILESYS,82), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrmdir"},
+ { "kernel.fstype.vnops.rwlock",
+ {PMDA_PMID(SCLR_FILESYS,83), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrwlock"},
+ { "kernel.fstype.vnops.rwunlock",
+ {PMDA_PMID(SCLR_FILESYS,84), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nrwunlock"},
+ { "kernel.fstype.vnops.seek",
+ {PMDA_PMID(SCLR_FILESYS,85), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nseek"},
+ { "kernel.fstype.vnops.setattr",
+ {PMDA_PMID(SCLR_FILESYS,86), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsetattr"},
+ { "kernel.fstype.vnops.setfl",
+ {PMDA_PMID(SCLR_FILESYS,87), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsetfl"},
+ { "kernel.fstype.vnops.setsecattr",
+ {PMDA_PMID(SCLR_FILESYS,88), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsetsecattr"},
+ { "kernel.fstype.vnops.shrlock",
+ {PMDA_PMID(SCLR_FILESYS,89), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nshrlock"},
+ { "kernel.fstype.vnops.space",
+ {PMDA_PMID(SCLR_FILESYS,90), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nspace"},
+ { "kernel.fstype.vnops.symlink",
+ {PMDA_PMID(SCLR_FILESYS,91), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nsymlink"},
+ { "kernel.fstype.vnops.vnevent",
+ {PMDA_PMID(SCLR_FILESYS,92), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nvnevent"},
+ { "kernel.fstype.vnops.write",
+ {PMDA_PMID(SCLR_FILESYS,93), PM_TYPE_U64, FSTYPE_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE)
+ }, (ptrdiff_t)"nwrite"},
+
+ { "hinv.cpu.maxclock",
+ {PMDA_PMID(SCLR_SYSINFO,147), PM_TYPE_64, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, -1, 1, 0, PM_TIME_SEC, 6)
+ }, (ptrdiff_t)"clock_MHz"},
+ { "hinv.cpu.clock",
+ {PMDA_PMID(SCLR_SYSINFO,148), PM_TYPE_U64, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, -1, 1, 0, PM_TIME_SEC, 0)
+ }, (ptrdiff_t)"current_clock_Hz"},
+ { "hinv.cpu.brand",
+ {PMDA_PMID(SCLR_SYSINFO, 149), PM_TYPE_STRING, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"brand"},
+ { "hinv.cpu.frequencies",
+ {PMDA_PMID(SCLR_SYSINFO, 150), PM_TYPE_STRING, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"supported_frequencies_Hz"},
+ { "hinv.cpu.implementation",
+ {PMDA_PMID(SCLR_SYSINFO, 151), PM_TYPE_STRING, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"implementation"},
+ { "hinv.cpu.chip_id",
+ {PMDA_PMID(SCLR_SYSINFO, 152), PM_TYPE_64, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"chip_id"},
+ { "hinv.cpu.clog_id",
+ {PMDA_PMID(SCLR_SYSINFO, 153), PM_TYPE_32, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"clog_id"},
+ { "hinv.cpu.core_id",
+ {PMDA_PMID(SCLR_SYSINFO, 154), PM_TYPE_64, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"core_id"},
+ { "hinv.cpu.pkg_core_id",
+ {PMDA_PMID(SCLR_SYSINFO, 155), PM_TYPE_64, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"pkg_core_id"},
+ { "hinv.cpu.cstate",
+ {PMDA_PMID(SCLR_SYSINFO, 156), PM_TYPE_32, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"current_cstate"},
+ { "hinv.cpu.maxcstates",
+ {PMDA_PMID(SCLR_SYSINFO, 157), PM_TYPE_32, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"supported_max_cstates"},
+ { "hinv.cpu.ncores",
+ {PMDA_PMID(SCLR_SYSINFO, 158), PM_TYPE_32, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"ncore_per_chip"},
+ { "hinv.cpu.ncpus",
+ {PMDA_PMID(SCLR_SYSINFO, 159), PM_TYPE_32, CPU_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"ncpu_per_chip"},
+
+ { "disk.dev.errors.soft",
+ {PMDA_PMID(SCLR_DISK, 21), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Soft Errors"},
+ { "disk.dev.errors.hard",
+ {PMDA_PMID(SCLR_DISK, 22), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Hard Errors"},
+ { "disk.dev.errors.transport",
+ {PMDA_PMID(SCLR_DISK, 23), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Transport Errors"},
+ { "disk.dev.errors.media",
+ {PMDA_PMID(SCLR_DISK, 24), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Media Error"},
+ { "disk.dev.errors.recoverable",
+ {PMDA_PMID(SCLR_DISK, 25), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Recoverable"},
+ { "disk.dev.errors.notready",
+ {PMDA_PMID(SCLR_DISK, 26), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Device Not Ready"},
+ { "disk.dev.errors.nodevice",
+ {PMDA_PMID(SCLR_DISK, 27), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"No Device"},
+ { "disk.dev.errors.badrequest",
+ {PMDA_PMID(SCLR_DISK, 28), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Illegal Request"},
+ { "disk.dev.errors.pfa",
+ {PMDA_PMID(SCLR_DISK, 29), PM_TYPE_U32, DISK_INDOM, PM_SEM_COUNTER,
+ PMDA_PMUNITS(0, 0, 1, 0, 0, PM_COUNT_ONE),
+ }, (ptrdiff_t)"Predictive Failure Analysis"},
+ { "hinv.disk.vendor",
+ {PMDA_PMID(SCLR_DISK, 30), PM_TYPE_STRING, DISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"Vendor"},
+ { "hinv.disk.product",
+ {PMDA_PMID(SCLR_DISK, 31), PM_TYPE_STRING, DISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"Product"},
+ { "hinv.disk.revision",
+ {PMDA_PMID(SCLR_DISK, 32), PM_TYPE_STRING, DISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"Revision"},
+ { "hinv.disk.serial",
+ {PMDA_PMID(SCLR_DISK, 33), PM_TYPE_STRING, DISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, (ptrdiff_t)"Serial No"},
+ { "hinv.disk.capacity",
+ { PMDA_PMID(SCLR_DISK,34), PM_TYPE_U64, DISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(1, 0, 0, PM_SPACE_BYTE, 0, 0)
+ }, (ptrdiff_t)"Size" },
+ { "hinv.disk.devlink",
+ {PMDA_PMID(SCLR_DISK, 35), PM_TYPE_STRING, DISK_INDOM, PM_SEM_DISCRETE,
+ PMDA_PMUNITS(0, 0, 0, 0, 0, 0)
+ }, -1}
+
+ /* remember to add trailing comma before adding more entries ... */
+};
+int metrictab_sz = ARRAY_SIZE(metricdesc);
+
+pmdaInstid metric_insts[ARRAY_SIZE(metricdesc)];
+
+/*
+ * List of instance domains ... we expect the *_INDOM macros
+ * to index into this table.
+ */
+pmdaIndom indomtab[] = {
+ { DISK_INDOM, 0, NULL },
+ { CPU_INDOM, 0, NULL },
+ { NETIF_INDOM, 0, NULL },
+ { ZPOOL_INDOM, 0, NULL },
+ { ZFS_INDOM, 0, NULL },
+ { ZPOOL_PERDISK_INDOM, 0, NULL },
+ { NETLINK_INDOM},
+ { ZFS_SNAP_INDOM },
+ { LOADAVG_INDOM, ARRAY_SIZE(loadavg_insts), loadavg_insts},
+ { PREFETCH_INDOM, ARRAY_SIZE(prefetch_insts), prefetch_insts},
+ { METRIC_INDOM, ARRAY_SIZE(metric_insts), metric_insts},
+ { FILESYS_INDOM },
+ { FSTYPE_INDOM }
+};
+
+int indomtab_sz = sizeof(indomtab) / sizeof(indomtab[0]);
+
+static kstat_ctl_t *kc;
+static int kstat_chains_updated;
+
+kstat_ctl_t *
+kstat_ctl_update(void)
+{
+ if (!kstat_chains_updated) {
+ if (kstat_chain_update(kc) == -1) {
+ kstat_chains_updated = 0;
+ return NULL;
+ }
+ kstat_chains_updated = 1;
+ }
+ return kc;
+}
+
+void
+kstat_ctl_needs_update(void)
+{
+ kstat_chains_updated = 0;
+}
+
+void
+init_data(int domain)
+{
+ int i;
+ int serial;
+ __pmID_int *ip;
+
+ /*
+ * set up kstat() handle ... failure is fatal
+ */
+ if ((kc = kstat_open()) == NULL) {
+ fprintf(stderr, "init_data: kstat_open failed: %s\n", osstrerror());
+ exit(1);
+ }
+
+ /*
+ * Create the PMDA's metrictab[] version of the per-metric table.
+ *
+ * Also do domain initialization for each pmid and indom element of
+ * the metricdesc[] table ... the PMDA table is fixed up in
+ * libpcp_pmda
+ */
+ if ((metrictab = (pmdaMetric *)malloc(metrictab_sz * sizeof(pmdaMetric))) == NULL) {
+ fprintf(stderr, "init_data: Error: malloc metrictab [%d] failed: %s\n",
+ (int)(metrictab_sz * sizeof(pmdaMetric)), osstrerror());
+ exit(1);
+ }
+ for (i = 0; i < metrictab_sz; i++) {
+ metrictab[i].m_user = &metricdesc[i];
+ metrictab[i].m_desc = metricdesc[i].md_desc;
+ ip = (__pmID_int *)&metricdesc[i].md_desc.pmid;
+ ip->domain = domain;
+
+ if (metricdesc[i].md_desc.indom != PM_INDOM_NULL) {
+ serial = metricdesc[i].md_desc.indom;
+ metricdesc[i].md_desc.indom = pmInDom_build(domain, serial);
+ }
+ metric_insts[i].i_inst = i+1;
+ metric_insts[i].i_name = (char *)metricdesc[i].md_name;
+ }
+
+ /* Bless indoms with our own domain - usually pmdaInit will do it for
+ * us but we need properly setup indoms for pmdaCache which means that
+ * we have to do it ourselves */
+ for (i = 0; i < indomtab_sz; i++) {
+ __pmindom_int(&indomtab[i].it_indom)->domain = domain;
+ }
+
+ /*
+ * initialize each of the methods
+ */
+ for (i = 0; i < methodtab_sz; i++) {
+ if (methodtab[i].m_init) {
+ methodtab[i].m_init(1);
+ }
+
+ prefetch_insts[i].i_inst = i + 1;
+ prefetch_insts[i].i_name = (char *)methodtab[i].m_name;
+ }
+}