4 * Copyright (c) 2012-2017 Red Hat.
5 * Copyright (c) 2016-2017 Fujitsu.
6 * Copyright (c) 2007-2011 Aconex. All Rights Reserved.
7 * Copyright (c) 2002 International Business Machines Corp.
8 * Copyright (c) 2000,2004,2007-2008 Silicon Graphics, Inc. All Rights Reserved.
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
15 * This program is distributed in the hope that it will be useful, but
16 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 #undef LINUX /* defined in NSS/NSPR headers as something different, which we do not need. */
27 #include <sys/times.h>
28 #include <sys/utsname.h>
37 #include "interrupts.h"
38 #include "linux_table.h"
39 #include "namespaces.h"
40 #include "sysfs_kernel.h"
41 #include "proc_cpuinfo.h"
42 #include "proc_stat.h"
43 #include "proc_meminfo.h"
44 #include "proc_loadavg.h"
45 #include "proc_net_dev.h"
46 #include "proc_net_rpc.h"
47 #include "proc_net_sockstat.h"
48 #include "proc_net_tcp.h"
49 #include "proc_partitions.h"
50 #include "proc_net_netstat.h"
51 #include "proc_net_snmp6.h"
52 #include "proc_net_snmp.h"
53 #include "proc_scsi.h"
54 #include "proc_slabinfo.h"
55 #include "proc_uptime.h"
56 #include "proc_sys_fs.h"
57 #include "proc_vmstat.h"
58 #include "proc_net_softnet.h"
59 #include "proc_buddyinfo.h"
60 #include "proc_zoneinfo.h"
61 #include "numa_meminfo.h"
63 #include "sysfs_tapestats.h"
65 static proc_stat_t proc_stat
;
66 static proc_meminfo_t proc_meminfo
;
67 static proc_loadavg_t proc_loadavg
;
68 static proc_net_rpc_t proc_net_rpc
;
69 static proc_net_tcp_t proc_net_tcp
;
70 static proc_net_sockstat_t proc_net_sockstat
;
71 static struct utsname kernel_uname
;
72 static char uname_string
[sizeof(kernel_uname
)];
73 static proc_slabinfo_t proc_slabinfo
;
74 static sem_limits_t sem_limits
;
75 static msg_limits_t msg_limits
;
76 static shm_limits_t shm_limits
;
77 static proc_uptime_t proc_uptime
;
78 static proc_sys_fs_t proc_sys_fs
;
79 static sysfs_kernel_t sysfs_kernel
;
80 static shm_info_t _shm_info
;
81 static sem_info_t _sem_info
;
82 static msg_info_t _msg_info
;
83 static proc_net_softnet_t proc_net_softnet
;
84 static proc_buddyinfo_t proc_buddyinfo
;
85 static ksm_info_t ksm_info
;
87 static int _isDSO
= 1; /* =0 I am a daemon */
88 static int rootfd
= -1; /* af_unix pmdaroot */
89 static char *username
;
93 int _pm_pageshift
; /* for hinv.pagesize and for pages -> bytes */
94 int _pm_ncpus
; /* maximum number of processors configurable */
95 int _pm_have_proc_vmstat
; /* if /proc/vmstat is available */
96 int _pm_intr_size
; /* size in bytes of interrupt sum count metric */
97 int _pm_ctxt_size
; /* size in bytes of context switch count metric */
98 int _pm_cputime_size
; /* size in bytes of most of the cputime metrics */
99 int _pm_idletime_size
; /* size in bytes of the idle cputime metric */
100 proc_vmstat_t _pm_proc_vmstat
;
101 proc_net_snmp_t _pm_proc_net_snmp
;
102 pmdaInstid _pm_proc_net_snmp_indom_id
[NR_ICMPMSG_COUNTERS
];
103 proc_net_netstat_t _pm_proc_net_netstat
;
106 * Metric Instance Domains (statically initialized ones only)
108 static pmdaInstid loadavg_indom_id
[] = {
109 { 1, "1 minute" }, { 5, "5 minute" }, { 15, "15 minute" }
112 static pmdaInstid nfs_indom_id
[NR_RPC_COUNTERS
] = {
133 static pmdaInstid nfs3_indom_id
[NR_RPC3_COUNTERS
] = {
158 static pmdaInstid nfs4_cli_indom_id
[NR_RPC4_CLI_COUNTERS
] = {
179 { 20, "lookup_root" },
189 { 30, "server_caps" },
190 { 31, "delegreturn" },
193 { 34, "fs_locations" },
194 { 35, "rel_lkowner" },
196 { 37, "fsid_present" },
197 /* nfsv4.1 client ops */
198 { 38, "exchange_id" },
199 { 39, "create_ses" },
200 { 40, "destroy_ses" },
202 { 42, "get_lease_t" },
203 { 43, "reclaim_comp" },
205 { 45, "getdevinfo" },
206 { 46, "layoutcommit" },
207 { 47, "secinfononam" },
208 { 48, "test_stateid" },
209 { 49, "free_stateid" },
210 { 50, "getdevlist" },
212 { 52, "destroy_clntid" },
213 /* nfsv4.2 client ops */
216 { 55, "deallocate" },
219 static pmdaInstid nfs4_svr_indom_id
[NR_RPC4_SVR_COUNTERS
] = {
221 * { 0, "null" } - the kernel actually only exports from "access"
222 * The first three values in the net/rpc/nfsd file are always zero
223 * In particular, see the nfs_opnum4 enum in <linux/nfs4.h>, these
224 * values are used as array indices in the kernel.
228 { 3, "op2-future"}, /* name matching the nfsstat convention */
234 { 9, "delegreturn" },
242 { 17, "lookup_root" },
262 { 37, "setcltidconf" },
265 { 40, "rellockowner" },
266 /* nfsv4.1 server ops */
269 { 43, "exchange_id" },
270 { 44, "create_ses" },
271 { 45, "destroy_ses" },
272 { 46, "free_stateid" },
273 { 47, "getdirdeleg" },
274 { 48, "getdevinfo" },
275 { 49, "getdevlist" },
276 { 50, "layoutcommit" },
278 { 52, "layoutreturn" },
279 { 53, "secinfononam" },
282 { 56, "test_stateid" },
283 { 57, "want_deleg" },
284 { 58, "destroy_clid" },
285 { 59, "reclaim_comp" },
286 /* nfsv4.2 server ops */
289 { 62, "copy_notify" },
290 { 63, "deallocate" },
292 { 65, "layouterror" },
293 { 66, "layoutstats" },
294 { 67, "offload_cancel" },
295 { 68, "offload_status" },
298 { 71, "write_same" },
301 static pmdaIndom indomtab
[] = {
302 { CPU_INDOM
, 0, NULL
}, /* cached */
303 { DISK_INDOM
, 0, NULL
}, /* cached */
304 { LOADAVG_INDOM
, 3, loadavg_indom_id
},
305 { NET_DEV_INDOM
, 0, NULL
},
306 { PROC_INTERRUPTS_INDOM
, 0, NULL
}, /* deprecated */
307 { FILESYS_INDOM
, 0, NULL
},
308 { SWAPDEV_INDOM
, 0, NULL
},
309 { NFS_INDOM
, NR_RPC_COUNTERS
, nfs_indom_id
},
310 { NFS3_INDOM
, NR_RPC3_COUNTERS
, nfs3_indom_id
},
311 { PROC_PROC_INDOM
, 0, NULL
}, /* migrated to the proc PMDA */
312 { PARTITIONS_INDOM
, 0, NULL
}, /* cached */
313 { SCSI_INDOM
, 0, NULL
},
314 { SLAB_INDOM
, 0, NULL
},
315 { STRINGS_INDOM
, 0, NULL
},
316 { NFS4_CLI_INDOM
, NR_RPC4_CLI_COUNTERS
, nfs4_cli_indom_id
},
317 { NFS4_SVR_INDOM
, NR_RPC4_SVR_COUNTERS
, nfs4_svr_indom_id
},
318 { QUOTA_PRJ_INDOM
, 0, NULL
}, /* migrated to the xfs PMDA */
319 { NET_ADDR_INDOM
, 0, NULL
},
320 { TMPFS_INDOM
, 0, NULL
},
321 { NODE_INDOM
, 0, NULL
}, /* cached */
322 { PROC_CGROUP_SUBSYS_INDOM
, 0, NULL
},
323 { PROC_CGROUP_MOUNTS_INDOM
, 0, NULL
},
324 { 0 }, /* deprecated LV_INDOM */
325 { ICMPMSG_INDOM
, NR_ICMPMSG_COUNTERS
, _pm_proc_net_snmp_indom_id
},
326 { DM_INDOM
, 0, NULL
}, /* cached */
327 { MD_INDOM
, 0, NULL
}, /* cached */
328 { INTERRUPT_NAMES_INDOM
, 0, NULL
},
329 { SOFTIRQS_NAMES_INDOM
, 0, NULL
},
330 { IPC_STAT_INDOM
, 0, NULL
},
331 { IPC_MSG_INDOM
, 0, NULL
},
332 { IPC_SEM_INDOM
, 0, NULL
},
333 { BUDDYINFO_INDOM
, 0, NULL
},
334 { ZONEINFO_INDOM
, 0, NULL
},
335 { ZONEINFO_PROTECTION_INDOM
, 0, NULL
},
336 { TAPEDEV_INDOM
, 0, NULL
}
341 * all metrics supported in this PMDA - one table entry for each
344 static pmdaMetric metrictab
[] = {
350 /* kernel.percpu.cpu.user */
352 { PMDA_PMID(CLUSTER_STAT
,0), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
353 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
355 /* kernel.percpu.cpu.nice */
357 { PMDA_PMID(CLUSTER_STAT
,1), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
358 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
360 /* kernel.percpu.cpu.sys */
362 { PMDA_PMID(CLUSTER_STAT
,2), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
363 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
365 /* kernel.percpu.cpu.idle */
367 { PMDA_PMID(CLUSTER_STAT
,3), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
368 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
370 /* kernel.percpu.cpu.wait.total */
372 { PMDA_PMID(CLUSTER_STAT
,30), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
373 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
375 /* kernel.percpu.cpu.intr */
377 { PMDA_PMID(CLUSTER_STAT
,31), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
378 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
380 /* kernel.percpu.cpu.irq.soft */
382 { PMDA_PMID(CLUSTER_STAT
,56), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
383 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
385 /* kernel.percpu.cpu.irq.hard */
387 { PMDA_PMID(CLUSTER_STAT
,57), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
388 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
390 /* kernel.percpu.cpu.steal */
392 { PMDA_PMID(CLUSTER_STAT
,58), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
393 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
395 /* kernel.percpu.cpu.guest */
397 { PMDA_PMID(CLUSTER_STAT
,61), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
398 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
400 /* kernel.percpu.cpu.vuser */
402 { PMDA_PMID(CLUSTER_STAT
,76), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
403 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
405 /* kernel.percpu.cpu.guest_nice */
407 { PMDA_PMID(CLUSTER_STAT
,83), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
408 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
410 /* kernel.percpu.cpu.vnice */
412 { PMDA_PMID(CLUSTER_STAT
,84), KERNEL_UTYPE
, CPU_INDOM
, PM_SEM_COUNTER
,
413 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
416 /* kernel.pernode.cpu.user */
418 { PMDA_PMID(CLUSTER_STAT
,62), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
419 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
421 /* kernel.pernode.cpu.nice */
423 { PMDA_PMID(CLUSTER_STAT
,63), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
424 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
426 /* kernel.pernode.cpu.sys */
428 { PMDA_PMID(CLUSTER_STAT
,64), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
429 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
431 /* kernel.pernode.cpu.idle */
433 { PMDA_PMID(CLUSTER_STAT
,65), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
434 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
436 /* kernel.pernode.cpu.wait.total */
438 { PMDA_PMID(CLUSTER_STAT
,69), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
439 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
441 /* kernel.pernode.cpu.intr */
443 { PMDA_PMID(CLUSTER_STAT
,66), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
444 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
446 /* kernel.pernode.cpu.irq.soft */
448 { PMDA_PMID(CLUSTER_STAT
,70), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
449 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
451 /* kernel.pernode.cpu.irq.hard */
453 { PMDA_PMID(CLUSTER_STAT
,71), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
454 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
456 /* kernel.pernode.cpu.steal */
458 { PMDA_PMID(CLUSTER_STAT
,67), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
459 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
461 /* kernel.pernode.cpu.guest */
463 { PMDA_PMID(CLUSTER_STAT
,68), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
464 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
466 /* kernel.pernode.cpu.vuser */
468 { PMDA_PMID(CLUSTER_STAT
,77), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
469 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
471 /* kernel.pernode.cpu.guest_nice */
473 { PMDA_PMID(CLUSTER_STAT
,85), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
474 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
476 /* kernel.pernode.cpu.vnice */
478 { PMDA_PMID(CLUSTER_STAT
,86), KERNEL_UTYPE
, NODE_INDOM
, PM_SEM_COUNTER
,
479 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
483 { PMDA_PMID(CLUSTER_STAT
,4), KERNEL_ULONG
, DISK_INDOM
, PM_SEM_COUNTER
,
484 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
488 { PMDA_PMID(CLUSTER_STAT
,5), KERNEL_ULONG
, DISK_INDOM
, PM_SEM_COUNTER
,
489 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
491 /* disk.dev.blkread */
493 { PMDA_PMID(CLUSTER_STAT
,6), KERNEL_ULONG
, DISK_INDOM
, PM_SEM_COUNTER
,
494 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
496 /* disk.dev.blkwrite */
498 { PMDA_PMID(CLUSTER_STAT
,7), KERNEL_ULONG
, DISK_INDOM
, PM_SEM_COUNTER
,
499 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
501 /* disk.dev.avactive */
503 { PMDA_PMID(CLUSTER_STAT
,46), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
504 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
508 { PMDA_PMID(CLUSTER_STAT
,47), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
509 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
511 /* disk.dev.read_merge */
513 { PMDA_PMID(CLUSTER_STAT
,49), KERNEL_ULONG
, DISK_INDOM
, PM_SEM_COUNTER
,
514 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
516 /* disk.dev.write_merge */
518 { PMDA_PMID(CLUSTER_STAT
,50), KERNEL_ULONG
, DISK_INDOM
, PM_SEM_COUNTER
,
519 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
521 /* disk.dev.scheduler */
523 { PMDA_PMID(CLUSTER_STAT
,59), PM_TYPE_STRING
, DISK_INDOM
,
524 PM_SEM_INSTANT
, PMDA_PMUNITS(0,0,0,0,0,0) }, },
526 /* disk.dev.read_rawactive */
528 { PMDA_PMID(CLUSTER_STAT
,72), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
529 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
531 /* disk.dev.write_rawactive */
533 { PMDA_PMID(CLUSTER_STAT
,73), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
534 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
536 /* disk.dev.total_rawactive */
538 { PMDA_PMID(CLUSTER_STAT
,79), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
539 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
541 /* disk.all.avactive */
543 { PMDA_PMID(CLUSTER_STAT
,44), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
544 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
548 { PMDA_PMID(CLUSTER_STAT
,45), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
549 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
551 /* disk.all.read_merge */
553 { PMDA_PMID(CLUSTER_STAT
,51), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
554 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
556 /* disk.all.write_merge */
558 { PMDA_PMID(CLUSTER_STAT
,52), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
559 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
561 /* disk.all.read_rawactive */
563 { PMDA_PMID(CLUSTER_STAT
,74), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
564 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
566 /* disk.all.write_rawactive */
568 { PMDA_PMID(CLUSTER_STAT
,75), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
569 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
571 /* disk.all.total_rawactive */
573 { PMDA_PMID(CLUSTER_STAT
,80), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
574 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
578 { PMDA_PMID(CLUSTER_STAT
,8), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
579 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
583 { PMDA_PMID(CLUSTER_STAT
,9), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
584 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
588 { PMDA_PMID(CLUSTER_STAT
,10), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
589 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
593 { PMDA_PMID(CLUSTER_STAT
,11), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
594 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
596 /* kernel.all.intr */
598 { PMDA_PMID(CLUSTER_STAT
,12), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
599 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
601 /* kernel.all.pswitch */
603 { PMDA_PMID(CLUSTER_STAT
,13), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
604 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
606 /* kernel.all.sysfork */
608 { PMDA_PMID(CLUSTER_STAT
,14), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
609 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
611 /* kernel.all.running */
613 { PMDA_PMID(CLUSTER_STAT
,15), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
614 PMDA_PMUNITS(0,0,0,0,0,0) }, },
616 /* kernel.all.blocked */
618 { PMDA_PMID(CLUSTER_STAT
,16), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
619 PMDA_PMUNITS(0,0,0,0,0,0) }, },
621 /* kernel.all.cpu.user */
623 { PMDA_PMID(CLUSTER_STAT
,20), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
624 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
626 /* kernel.all.cpu.nice */
628 { PMDA_PMID(CLUSTER_STAT
,21), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
629 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
631 /* kernel.all.cpu.sys */
633 { PMDA_PMID(CLUSTER_STAT
,22), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
634 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
636 /* kernel.all.cpu.idle */
638 { PMDA_PMID(CLUSTER_STAT
,23), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
639 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
641 /* kernel.all.cpu.intr */
643 { PMDA_PMID(CLUSTER_STAT
,34), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
644 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
646 /* kernel.all.cpu.wait.total */
648 { PMDA_PMID(CLUSTER_STAT
,35), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
649 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
651 /* kernel.all.cpu.irq.soft */
653 { PMDA_PMID(CLUSTER_STAT
,53), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
654 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
656 /* kernel.all.cpu.irq.hard */
658 { PMDA_PMID(CLUSTER_STAT
,54), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
659 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
661 /* kernel.all.cpu.steal */
663 { PMDA_PMID(CLUSTER_STAT
,55), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
664 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
666 /* kernel.all.cpu.guest */
668 { PMDA_PMID(CLUSTER_STAT
,60), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
669 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
671 /* kernel.all.cpu.vuser */
673 { PMDA_PMID(CLUSTER_STAT
,78), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
674 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
676 /* kernel.all.cpu.guest_nice */
678 { PMDA_PMID(CLUSTER_STAT
,81), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
679 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
681 /* kernel.all.cpu.vnice */
683 { PMDA_PMID(CLUSTER_STAT
,82), KERNEL_UTYPE
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
684 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
688 { PMDA_PMID(CLUSTER_STAT
,24), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
689 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
693 { PMDA_PMID(CLUSTER_STAT
,25), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
694 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
696 /* disk.all.blkread */
698 { PMDA_PMID(CLUSTER_STAT
,26), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
699 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
701 /* disk.all.blkwrite */
703 { PMDA_PMID(CLUSTER_STAT
,27), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
704 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
708 { PMDA_PMID(CLUSTER_STAT
,28), PM_TYPE_U64
, DISK_INDOM
, PM_SEM_COUNTER
,
709 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
711 /* disk.dev.blktotal */
713 { PMDA_PMID(CLUSTER_STAT
,36), PM_TYPE_U64
, DISK_INDOM
, PM_SEM_COUNTER
,
714 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
718 { PMDA_PMID(CLUSTER_STAT
,29), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
719 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
721 /* disk.all.blktotal */
723 { PMDA_PMID(CLUSTER_STAT
,37), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
724 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
728 { PMDA_PMID(CLUSTER_STAT
,32), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
729 PMDA_PMUNITS(0,0,0,0,0,0) }, },
733 { PMDA_PMID(CLUSTER_STAT
,33), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
734 PMDA_PMUNITS(0,0,0,0,0,0) }, },
738 { PMDA_PMID(CLUSTER_STAT
,19), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
739 PMDA_PMUNITS(0,0,0,0,0,0) }, },
743 { PMDA_PMID(CLUSTER_STAT
,48), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
744 PMDA_PMUNITS(0,-1,1,0,PM_TIME_SEC
,PM_COUNT_ONE
) }, },
747 * /proc/uptime cluster
748 * Uptime modified and idletime added by Mike Mason <mmlnx@us.ibm.com>
751 /* kernel.all.uptime */
753 { PMDA_PMID(CLUSTER_UPTIME
,0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
754 PMDA_PMUNITS(0,1,0,0,PM_TIME_SEC
,0) }, },
756 /* kernel.all.idletime */
758 { PMDA_PMID(CLUSTER_UPTIME
,1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
759 PMDA_PMUNITS(0,1,0,0,PM_TIME_SEC
,0) }, },
762 * /proc/meminfo cluster
767 { PMDA_PMID(CLUSTER_MEMINFO
,0), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
768 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
772 { PMDA_PMID(CLUSTER_MEMINFO
,1), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
773 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
777 { PMDA_PMID(CLUSTER_MEMINFO
,2), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
778 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
780 /* mem.util.shared */
782 { PMDA_PMID(CLUSTER_MEMINFO
,3), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
783 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
785 /* mem.util.bufmem */
787 { PMDA_PMID(CLUSTER_MEMINFO
,4), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
788 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
790 /* mem.util.cached */
792 { PMDA_PMID(CLUSTER_MEMINFO
,5), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
793 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
795 /* mem.util.active */
797 { PMDA_PMID(CLUSTER_MEMINFO
,14), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
798 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
800 /* mem.util.inactive */
802 { PMDA_PMID(CLUSTER_MEMINFO
,15), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
803 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
805 /* mem.util.swapCached */
807 { PMDA_PMID(CLUSTER_MEMINFO
,13), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
808 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
810 /* mem.util.highTotal */
812 { PMDA_PMID(CLUSTER_MEMINFO
,16), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
813 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
815 /* mem.util.highFree */
817 { PMDA_PMID(CLUSTER_MEMINFO
,17), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
818 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
820 /* mem.util.lowTotal */
822 { PMDA_PMID(CLUSTER_MEMINFO
,18), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
823 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
825 /* mem.util.lowFree */
827 { PMDA_PMID(CLUSTER_MEMINFO
,19), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
828 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
830 /* mem.util.swapTotal */
832 { PMDA_PMID(CLUSTER_MEMINFO
,20), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
833 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
835 /* mem.util.swapFree */
837 { PMDA_PMID(CLUSTER_MEMINFO
,21), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
838 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
842 { PMDA_PMID(CLUSTER_MEMINFO
,22), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
843 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
845 /* mem.util.writeback */
847 { PMDA_PMID(CLUSTER_MEMINFO
,23), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
848 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
850 /* mem.util.mapped */
852 { PMDA_PMID(CLUSTER_MEMINFO
,24), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
853 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
857 { PMDA_PMID(CLUSTER_MEMINFO
,25), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
858 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
860 /* mem.util.committed_AS */
862 { PMDA_PMID(CLUSTER_MEMINFO
,26), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
863 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
865 /* mem.util.pageTables */
867 { PMDA_PMID(CLUSTER_MEMINFO
,27), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
868 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
870 /* mem.util.reverseMaps */
872 { PMDA_PMID(CLUSTER_MEMINFO
,28), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
873 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
875 /* mem.util.cache_clean */
877 { PMDA_PMID(CLUSTER_MEMINFO
,29), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
878 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
880 /* mem.util.anonpages */
882 { PMDA_PMID(CLUSTER_MEMINFO
,30), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
883 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
885 /* mem.util.commitLimit */
887 { PMDA_PMID(CLUSTER_MEMINFO
,31), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
888 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
890 /* mem.util.bounce */
892 { PMDA_PMID(CLUSTER_MEMINFO
,32), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
893 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
895 /* mem.util.NFS_Unstable */
897 { PMDA_PMID(CLUSTER_MEMINFO
,33), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
898 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
900 /* mem.util.slabReclaimable */
902 { PMDA_PMID(CLUSTER_MEMINFO
,34), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
903 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
905 /* mem.util.slabUnreclaimable */
907 { PMDA_PMID(CLUSTER_MEMINFO
,35), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
908 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
910 /* mem.util.active_anon */
912 { PMDA_PMID(CLUSTER_MEMINFO
,36), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
913 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
915 /* mem.util.inactive_anon */
917 { PMDA_PMID(CLUSTER_MEMINFO
,37), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
918 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
920 /* mem.util.active_file */
922 { PMDA_PMID(CLUSTER_MEMINFO
,38), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
923 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
925 /* mem.util.inactive_file */
927 { PMDA_PMID(CLUSTER_MEMINFO
,39), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
928 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
930 /* mem.util.unevictable */
932 { PMDA_PMID(CLUSTER_MEMINFO
,40), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
933 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
935 /* mem.util.mlocked */
937 { PMDA_PMID(CLUSTER_MEMINFO
,41), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
938 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
942 { PMDA_PMID(CLUSTER_MEMINFO
,42), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
943 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
945 /* mem.util.kernelStack */
947 { PMDA_PMID(CLUSTER_MEMINFO
,43), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
948 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
950 /* mem.util.hugepagesTotal */
952 { PMDA_PMID(CLUSTER_MEMINFO
,44), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
953 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
955 /* mem.util.hugepagesFree */
957 { PMDA_PMID(CLUSTER_MEMINFO
,45), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
958 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
960 /* mem.util.hugepagesRsvd */
962 { PMDA_PMID(CLUSTER_MEMINFO
,46), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
963 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
965 /* mem.util.hugepagesSurp */
967 { PMDA_PMID(CLUSTER_MEMINFO
,47), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
968 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
970 /* mem.util.directMap4k */
972 { PMDA_PMID(CLUSTER_MEMINFO
,48), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
973 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
975 /* mem.util.directMap2M */
977 { PMDA_PMID(CLUSTER_MEMINFO
,49), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
978 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
980 /* mem.util.vmallocTotal */
982 { PMDA_PMID(CLUSTER_MEMINFO
,50), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
983 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
985 /* mem.util.vmallocUsed */
987 { PMDA_PMID(CLUSTER_MEMINFO
,51), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
988 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
990 /* mem.util.vmallocChunk */
992 { PMDA_PMID(CLUSTER_MEMINFO
,52), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
993 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
995 /* mem.util.mmap_copy */
997 { PMDA_PMID(CLUSTER_MEMINFO
,53), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
998 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1000 /* mem.util.quicklists */
1002 { PMDA_PMID(CLUSTER_MEMINFO
,54), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1003 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1005 /* mem.util.corrupthardware */
1007 { PMDA_PMID(CLUSTER_MEMINFO
,55), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1008 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1010 /* mem.util.mmap_copy */
1012 { PMDA_PMID(CLUSTER_MEMINFO
,56), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1013 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1015 /* mem.util.directMap1G */
1017 { PMDA_PMID(CLUSTER_MEMINFO
,57), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1018 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1020 /* mem.util.available */
1022 { PMDA_PMID(CLUSTER_MEMINFO
,58), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1023 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1025 /* hinv.hugepagesize */
1027 { PMDA_PMID(CLUSTER_MEMINFO
,59), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
1028 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1030 /* mem.util.hugepagesTotalBytes */
1032 { PMDA_PMID(CLUSTER_MEMINFO
,60), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1033 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1035 /* mem.util.hugepagesFreeBytes */
1037 { PMDA_PMID(CLUSTER_MEMINFO
,61), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1038 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1040 /* mem.util.hugepagesRsvdBytes */
1042 { PMDA_PMID(CLUSTER_MEMINFO
,62), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1043 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1045 /* mem.util.hugepagesSurpBytes */
1047 { PMDA_PMID(CLUSTER_MEMINFO
,63), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1048 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1050 /* mem.numa.util.total */
1052 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,0), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1053 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1055 /* mem.numa.util.free */
1057 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,1), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1058 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1060 /* mem.numa.util.used */
1062 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,2), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1063 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1065 /* mem.numa.util.active */
1067 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,3), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1068 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1070 /* mem.numa.util.inactive */
1072 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,4), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1073 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1075 /* mem.numa.util.active_anon */
1077 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,5), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1078 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1080 /* mem.numa.util.inactive_anon */
1082 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,6), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1083 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1085 /* mem.numa.util.active_file */
1087 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,7), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1088 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1090 /* mem.numa.util.inactive_file */
1092 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,8), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1093 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1095 /* mem.numa.util.highTotal */
1097 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,9), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1098 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1100 /* mem.numa.util.highFree */
1102 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,10), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1103 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1105 /* mem.numa.util.lowTotal */
1107 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,11), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1108 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1110 /* mem.numa.util.lowFree */
1112 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,12), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1113 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1115 /* mem.numa.util.unevictable */
1117 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,13), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1118 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1120 /* mem.numa.util.mlocked */
1122 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,14), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1123 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1125 /* mem.numa.util.dirty */
1127 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,15), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1128 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1130 /* mem.numa.util.writeback */
1132 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,16), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1133 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1135 /* mem.numa.util.filePages */
1137 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,17), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1138 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1140 /* mem.numa.util.mapped */
1142 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,18), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1143 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1145 /* mem.numa.util.anonpages */
1147 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,19), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1148 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1150 /* mem.numa.util.shmem */
1152 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,20), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1153 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1155 /* mem.numa.util.kernelStack */
1157 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,21), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1158 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1160 /* mem.numa.util.pageTables */
1162 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,22), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1163 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1165 /* mem.numa.util.NFS_Unstable */
1167 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,23), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1168 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1170 /* mem.numa.util.bounce */
1172 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,24), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1173 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1175 /* mem.numa.util.writebackTmp */
1177 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,25), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1178 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1180 /* mem.numa.util.slab */
1182 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,26), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1183 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1185 /* mem.numa.util.slabReclaimable */
1187 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,27), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1188 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1190 /* mem.numa.util.slabUnreclaimable */
1192 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,28), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1193 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1195 /* mem.numa.util.hugepagesTotal */
1197 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,29), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1198 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1200 /* mem.numa.util.hugepagesFree */
1202 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,30), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1203 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1205 /* mem.numa.util.hugepagesSurp */
1207 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,31), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1208 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1210 /* mem.numa.alloc.hit */
1212 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,32), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_COUNTER
,
1213 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1215 /* mem.numa.alloc.miss */
1217 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,33), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_COUNTER
,
1218 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1220 /* mem.numa.alloc.foreign */
1222 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,34), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_COUNTER
,
1223 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1225 /* mem.numa.alloc.interleave_hit */
1227 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,35), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_COUNTER
,
1228 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1230 /* mem.numa.alloc.local_node */
1232 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,36), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_COUNTER
,
1233 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1235 /* mem.numa.alloc.other_node */
1237 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,37), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_COUNTER
,
1238 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1240 /* mem.numa.max_bandwidth */
1242 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,38), PM_TYPE_DOUBLE
, NODE_INDOM
, PM_SEM_DISCRETE
,
1243 PMDA_PMUNITS(1,-1,0,PM_SPACE_MBYTE
,PM_TIME_SEC
,0) }, },
1245 /* mem.numa.util.hugepagesTotalBytes */
1247 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,39), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1248 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1250 /* mem.numa.util.hugepagesFreeBytes */
1252 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,40), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1253 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1255 /* mem.numa.util.hugepagesSurpBytes */
1257 { PMDA_PMID(CLUSTER_NUMA_MEMINFO
,41), PM_TYPE_U64
, NODE_INDOM
, PM_SEM_INSTANT
,
1258 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1262 { PMDA_PMID(CLUSTER_MEMINFO
,6), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1263 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1267 { PMDA_PMID(CLUSTER_MEMINFO
,7), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1268 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1272 { PMDA_PMID(CLUSTER_MEMINFO
,8), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1273 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1277 { PMDA_PMID(CLUSTER_MEMINFO
,9), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
1278 PMDA_PMUNITS(1,0,0,PM_SPACE_MBYTE
,0,0) }, },
1282 { PMDA_PMID(CLUSTER_MEMINFO
,10), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1283 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1287 { PMDA_PMID(CLUSTER_MEMINFO
,11), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
1288 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1290 /* mem.util.other */
1292 { PMDA_PMID(CLUSTER_MEMINFO
,12), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1293 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1296 * /proc/slabinfo cluster
1299 /* mem.slabinfo.objects.active */
1301 { PMDA_PMID(CLUSTER_SLAB
,0), PM_TYPE_U64
, SLAB_INDOM
, PM_SEM_INSTANT
,
1302 PMDA_PMUNITS(0,0,0,0,0,0) } },
1304 /* mem.slabinfo.objects.total */
1306 { PMDA_PMID(CLUSTER_SLAB
,1), PM_TYPE_U64
, SLAB_INDOM
, PM_SEM_INSTANT
,
1307 PMDA_PMUNITS(0,0,0,0,0,0) } },
1309 /* mem.slabinfo.objects.size */
1311 { PMDA_PMID(CLUSTER_SLAB
,2), PM_TYPE_U32
, SLAB_INDOM
, PM_SEM_INSTANT
,
1312 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1314 /* mem.slabinfo.slabs.active */
1316 { PMDA_PMID(CLUSTER_SLAB
,3), PM_TYPE_U32
, SLAB_INDOM
, PM_SEM_INSTANT
,
1317 PMDA_PMUNITS(0,0,0,0,0,0) } },
1319 /* mem.slabinfo.slabs.total */
1321 { PMDA_PMID(CLUSTER_SLAB
,4), PM_TYPE_U32
, SLAB_INDOM
, PM_SEM_INSTANT
,
1322 PMDA_PMUNITS(0,0,0,0,0,0) } },
1324 /* mem.slabinfo.slabs.pages_per_slab */
1326 { PMDA_PMID(CLUSTER_SLAB
,5), PM_TYPE_U32
, SLAB_INDOM
, PM_SEM_INSTANT
,
1327 PMDA_PMUNITS(0,0,0,0,0,0) } },
1329 /* mem.slabinfo.slabs.objects_per_slab */
1331 { PMDA_PMID(CLUSTER_SLAB
,6), PM_TYPE_U32
, SLAB_INDOM
, PM_SEM_INSTANT
,
1332 PMDA_PMUNITS(0,0,0,0,0,0) } },
1334 /* mem.slabinfo.slabs.total_size */
1336 { PMDA_PMID(CLUSTER_SLAB
,7), PM_TYPE_U64
, SLAB_INDOM
, PM_SEM_INSTANT
,
1337 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1340 * /proc/buddyinfo cluster
1343 /* mem.buddyinfo.pages */
1345 { PMDA_PMID(CLUSTER_BUDDYINFO
,0), KERNEL_ULONG
, BUDDYINFO_INDOM
,
1346 PM_SEM_INSTANT
, PMDA_PMUNITS(0,0,0,0,0,0) }, },
1347 /* mem.buddyinfo.bytes */
1349 { PMDA_PMID(CLUSTER_BUDDYINFO
,1), PM_TYPE_U64
, BUDDYINFO_INDOM
,
1350 PM_SEM_INSTANT
, PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1353 * /proc/loadavg cluster
1356 /* kernel.all.load */
1358 { PMDA_PMID(CLUSTER_LOADAVG
,0), PM_TYPE_FLOAT
, LOADAVG_INDOM
, PM_SEM_INSTANT
,
1359 PMDA_PMUNITS(0,0,0,0,0,0) } },
1361 /* kernel.all.lastpid -- added by Mike Mason <mmlnx@us.ibm.com> */
1363 { PMDA_PMID(CLUSTER_LOADAVG
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1364 PMDA_PMUNITS(0,0,0,0,0,0) } },
1366 /* kernel.all.runnable */
1368 { PMDA_PMID(CLUSTER_LOADAVG
, 2), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1369 PMDA_PMUNITS(0,0,0,0,0,0) } },
1371 /* kernel.all.nprocs */
1373 { PMDA_PMID(CLUSTER_LOADAVG
, 3), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1374 PMDA_PMUNITS(0,0,0,0,0,0) } },
1377 * /proc/net/dev cluster
1380 /* network.interface.in.bytes */
1382 { PMDA_PMID(CLUSTER_NET_DEV
,0), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1383 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1385 /* network.interface.in.packets */
1387 { PMDA_PMID(CLUSTER_NET_DEV
,1), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1388 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1390 /* network.interface.in.errors */
1392 { PMDA_PMID(CLUSTER_NET_DEV
,2), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1393 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1395 /* network.interface.in.drops */
1397 { PMDA_PMID(CLUSTER_NET_DEV
,3), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1398 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1400 /* network.interface.in.fifo */
1402 { PMDA_PMID(CLUSTER_NET_DEV
,4), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1403 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1405 /* network.interface.in.frame */
1407 { PMDA_PMID(CLUSTER_NET_DEV
,5), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1408 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1410 /* network.interface.in.compressed */
1412 { PMDA_PMID(CLUSTER_NET_DEV
,6), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1413 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1415 /* network.interface.in.mcasts */
1417 { PMDA_PMID(CLUSTER_NET_DEV
,7), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1418 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1420 /* network.interface.out.bytes */
1422 { PMDA_PMID(CLUSTER_NET_DEV
,8), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1423 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
1425 /* network.interface.out.packets */
1427 { PMDA_PMID(CLUSTER_NET_DEV
,9), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1428 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1430 /* network.interface.out.errors */
1432 { PMDA_PMID(CLUSTER_NET_DEV
,10), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1433 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1435 /* network.interface.out.drops */
1437 { PMDA_PMID(CLUSTER_NET_DEV
,11), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1438 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1440 /* network.interface.out.fifo */
1442 { PMDA_PMID(CLUSTER_NET_DEV
,12), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1443 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1445 /* network.interface.collisions */
1447 { PMDA_PMID(CLUSTER_NET_DEV
,13), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1448 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1450 /* network.interface.out.carrier */
1452 { PMDA_PMID(CLUSTER_NET_DEV
,14), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1453 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1455 /* network.interface.out.compressed */
1457 { PMDA_PMID(CLUSTER_NET_DEV
,15), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1458 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1460 /* network.interface.total.bytes */
1462 { PMDA_PMID(CLUSTER_NET_DEV
,16), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1463 PMDA_PMUNITS(1,0,0,0,PM_SPACE_BYTE
,0) }, },
1465 /* network.interface.total.packets */
1467 { PMDA_PMID(CLUSTER_NET_DEV
,17), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1468 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1470 /* network.interface.total.errors */
1472 { PMDA_PMID(CLUSTER_NET_DEV
,18), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1473 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1475 /* network.interface.total.drops */
1477 { PMDA_PMID(CLUSTER_NET_DEV
,19), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1478 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1480 /* network.interface.total.mcasts */
1482 { PMDA_PMID(CLUSTER_NET_DEV
,20), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_COUNTER
,
1483 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1485 /* network.interface.mtu */
1487 { PMDA_PMID(CLUSTER_NET_DEV
,21), PM_TYPE_U32
, NET_DEV_INDOM
, PM_SEM_INSTANT
,
1488 PMDA_PMUNITS(1,0,0,0,PM_SPACE_BYTE
,0) }, },
1490 /* network.interface.speed */
1492 { PMDA_PMID(CLUSTER_NET_DEV
,22), PM_TYPE_FLOAT
, NET_DEV_INDOM
, PM_SEM_DISCRETE
,
1493 PMDA_PMUNITS(1,-1,0,PM_SPACE_MBYTE
,PM_TIME_SEC
,0) }, },
1495 /* network.interface.baudrate */
1497 { PMDA_PMID(CLUSTER_NET_DEV
,23), PM_TYPE_U64
, NET_DEV_INDOM
, PM_SEM_DISCRETE
,
1498 PMDA_PMUNITS(1,-1,0,PM_SPACE_BYTE
,PM_TIME_SEC
,0) }, },
1500 /* network.interface.duplex */
1502 { PMDA_PMID(CLUSTER_NET_DEV
,24), PM_TYPE_U32
, NET_DEV_INDOM
, PM_SEM_DISCRETE
,
1503 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1505 /* network.interface.up */
1507 { PMDA_PMID(CLUSTER_NET_DEV
,25), PM_TYPE_U32
, NET_DEV_INDOM
, PM_SEM_INSTANT
,
1508 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1510 /* network.interface.running */
1512 { PMDA_PMID(CLUSTER_NET_DEV
,26), PM_TYPE_U32
, NET_DEV_INDOM
, PM_SEM_INSTANT
,
1513 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1515 /* hinv.ninterface */
1517 { PMDA_PMID(CLUSTER_NET_DEV
,27), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
1518 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1520 /* network.interface.inet_addr */
1522 { PMDA_PMID(CLUSTER_NET_ADDR
,0), PM_TYPE_STRING
, NET_ADDR_INDOM
, PM_SEM_INSTANT
,
1523 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1525 /* network.interface.ipv6_addr */
1527 { PMDA_PMID(CLUSTER_NET_ADDR
,1), PM_TYPE_STRING
, NET_ADDR_INDOM
, PM_SEM_INSTANT
,
1528 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1530 /* network.interface.ipv6_scope */
1532 { PMDA_PMID(CLUSTER_NET_ADDR
,2), PM_TYPE_STRING
, NET_ADDR_INDOM
, PM_SEM_INSTANT
,
1533 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1535 /* network.interface.hw_addr */
1537 { PMDA_PMID(CLUSTER_NET_ADDR
,3), PM_TYPE_STRING
, NET_ADDR_INDOM
, PM_SEM_INSTANT
,
1538 PMDA_PMUNITS(0,0,0,0,0,0) }, },
1546 { PMDA_PMID(CLUSTER_FILESYS
,0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
1547 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1549 /* filesys.capacity */
1551 { PMDA_PMID(CLUSTER_FILESYS
,1), PM_TYPE_U64
, FILESYS_INDOM
, PM_SEM_DISCRETE
,
1552 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1556 { PMDA_PMID(CLUSTER_FILESYS
,2), PM_TYPE_U64
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1557 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1561 { PMDA_PMID(CLUSTER_FILESYS
,3), PM_TYPE_U64
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1562 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1564 /* filesys.maxfiles */
1566 { PMDA_PMID(CLUSTER_FILESYS
,4), PM_TYPE_U32
, FILESYS_INDOM
, PM_SEM_DISCRETE
,
1567 PMDA_PMUNITS(0,0,0,0,0,0) } },
1569 /* filesys.usedfiles */
1571 { PMDA_PMID(CLUSTER_FILESYS
,5), PM_TYPE_U32
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1572 PMDA_PMUNITS(0,0,0,0,0,0) } },
1574 /* filesys.freefiles */
1576 { PMDA_PMID(CLUSTER_FILESYS
,6), PM_TYPE_U32
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1577 PMDA_PMUNITS(0,0,0,0,0,0) } },
1579 /* filesys.mountdir */
1581 { PMDA_PMID(CLUSTER_FILESYS
,7), PM_TYPE_STRING
, FILESYS_INDOM
, PM_SEM_DISCRETE
,
1582 PMDA_PMUNITS(0,0,0,0,0,0) } },
1586 { PMDA_PMID(CLUSTER_FILESYS
,8), PM_TYPE_DOUBLE
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1587 PMDA_PMUNITS(0,0,0,0,0,0) } },
1589 /* filesys.blocksize */
1591 { PMDA_PMID(CLUSTER_FILESYS
,9), PM_TYPE_U32
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1592 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) } },
1596 { PMDA_PMID(CLUSTER_FILESYS
,10), PM_TYPE_U64
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1597 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1599 /* filesys.readonly */
1601 { PMDA_PMID(CLUSTER_FILESYS
,11), PM_TYPE_U32
, FILESYS_INDOM
, PM_SEM_INSTANT
,
1602 PMDA_PMUNITS(0,0,0,0,0,0) } },
1605 * tmpfs filesystem cluster
1608 /* tmpfs.capacity */
1610 { PMDA_PMID(CLUSTER_TMPFS
,1), PM_TYPE_U64
, TMPFS_INDOM
, PM_SEM_DISCRETE
,
1611 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1615 { PMDA_PMID(CLUSTER_TMPFS
,2), PM_TYPE_U64
, TMPFS_INDOM
, PM_SEM_INSTANT
,
1616 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1620 { PMDA_PMID(CLUSTER_TMPFS
,3), PM_TYPE_U64
, TMPFS_INDOM
, PM_SEM_INSTANT
,
1621 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1623 /* tmpfs.maxfiles */
1625 { PMDA_PMID(CLUSTER_TMPFS
,4), PM_TYPE_U32
, TMPFS_INDOM
, PM_SEM_DISCRETE
,
1626 PMDA_PMUNITS(0,0,0,0,0,0) } },
1628 /* tmpfs.usedfiles */
1630 { PMDA_PMID(CLUSTER_TMPFS
,5), PM_TYPE_U32
, TMPFS_INDOM
, PM_SEM_INSTANT
,
1631 PMDA_PMUNITS(0,0,0,0,0,0) } },
1633 /* tmpfs.freefiles */
1635 { PMDA_PMID(CLUSTER_TMPFS
,6), PM_TYPE_U32
, TMPFS_INDOM
, PM_SEM_INSTANT
,
1636 PMDA_PMUNITS(0,0,0,0,0,0) } },
1640 { PMDA_PMID(CLUSTER_TMPFS
,7), PM_TYPE_DOUBLE
, TMPFS_INDOM
, PM_SEM_INSTANT
,
1641 PMDA_PMUNITS(0,0,0,0,0,0) } },
1649 { PMDA_PMID(CLUSTER_SWAPDEV
,0), PM_TYPE_U32
, SWAPDEV_INDOM
, PM_SEM_INSTANT
,
1650 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1652 /* swapdev.length */
1654 { PMDA_PMID(CLUSTER_SWAPDEV
,1), PM_TYPE_U32
, SWAPDEV_INDOM
, PM_SEM_DISCRETE
,
1655 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1657 /* swapdev.maxswap */
1659 { PMDA_PMID(CLUSTER_SWAPDEV
,2), PM_TYPE_U32
, SWAPDEV_INDOM
, PM_SEM_DISCRETE
,
1660 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1662 /* swapdev.vlength */
1664 { PMDA_PMID(CLUSTER_SWAPDEV
,3), PM_TYPE_U32
, SWAPDEV_INDOM
, PM_SEM_DISCRETE
,
1665 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) } },
1667 /* swapdev.priority */
1669 { PMDA_PMID(CLUSTER_SWAPDEV
,4), PM_TYPE_32
, SWAPDEV_INDOM
, PM_SEM_INSTANT
,
1670 PMDA_PMUNITS(0,0,0,0,0,0) } },
1673 * socket stat cluster
1676 /* network.sockstat.tcp.inuse */
1677 { &proc_net_sockstat
.tcp
[_PM_SOCKSTAT_INUSE
],
1678 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,0), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1679 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1681 /* network.sockstat.tcp.highest */
1682 { &proc_net_sockstat
.tcp
[_PM_SOCKSTAT_HIGHEST
],
1683 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,1), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1684 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1686 /* network.sockstat.tcp.util */
1687 { &proc_net_sockstat
.tcp
[_PM_SOCKSTAT_UTIL
],
1688 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,2), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1689 PMDA_PMUNITS(0,0,0,0,0,0) } },
1691 /* network.sockstat.udp.inuse */
1692 { &proc_net_sockstat
.udp
[_PM_SOCKSTAT_INUSE
],
1693 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,3), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1694 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1696 /* network.sockstat.udp.highest */
1697 { &proc_net_sockstat
.udp
[_PM_SOCKSTAT_HIGHEST
],
1698 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,4), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1699 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1701 /* network.sockstat.udp.util */
1702 { &proc_net_sockstat
.udp
[_PM_SOCKSTAT_UTIL
],
1703 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,5), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1704 PMDA_PMUNITS(0,0,0,0,0,0) } },
1706 /* network.sockstat.raw.inuse */
1707 { &proc_net_sockstat
.raw
[_PM_SOCKSTAT_INUSE
],
1708 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,6), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1709 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1711 /* network.sockstat.raw.highest */
1712 { &proc_net_sockstat
.raw
[_PM_SOCKSTAT_HIGHEST
],
1713 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,7), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1714 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1716 /* network.sockstat.raw.util */
1717 { &proc_net_sockstat
.raw
[_PM_SOCKSTAT_UTIL
],
1718 { PMDA_PMID(CLUSTER_NET_SOCKSTAT
,8), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1719 PMDA_PMUNITS(0,0,0,0,0,0) } },
1725 /* nfs.client.calls */
1727 { PMDA_PMID(CLUSTER_NET_NFS
,1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1728 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1730 /* nfs.client.reqs */
1732 { PMDA_PMID(CLUSTER_NET_NFS
,4), PM_TYPE_U32
, NFS_INDOM
, PM_SEM_COUNTER
,
1733 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1735 /* nfs.server.calls */
1737 { PMDA_PMID(CLUSTER_NET_NFS
,50), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1738 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1740 /* nfs.server.reqs */
1742 { PMDA_PMID(CLUSTER_NET_NFS
,12), PM_TYPE_U32
, NFS_INDOM
, PM_SEM_COUNTER
,
1743 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1745 /* nfs3.client.calls */
1747 { PMDA_PMID(CLUSTER_NET_NFS
,60), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1748 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1750 /* nfs3.client.reqs */
1752 { PMDA_PMID(CLUSTER_NET_NFS
,61), PM_TYPE_U32
, NFS3_INDOM
, PM_SEM_COUNTER
,
1753 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1755 /* nfs3.server.calls */
1757 { PMDA_PMID(CLUSTER_NET_NFS
,62), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1758 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1760 /* nfs3.server.reqs */
1762 { PMDA_PMID(CLUSTER_NET_NFS
,63), PM_TYPE_U32
, NFS3_INDOM
, PM_SEM_COUNTER
,
1763 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1765 /* nfs4.client.calls */
1767 { PMDA_PMID(CLUSTER_NET_NFS
,64), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1768 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1770 /* nfs4.client.reqs */
1772 { PMDA_PMID(CLUSTER_NET_NFS
,65), PM_TYPE_U32
, NFS4_CLI_INDOM
, PM_SEM_COUNTER
,
1773 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1775 /* nfs4.server.calls */
1777 { PMDA_PMID(CLUSTER_NET_NFS
,66), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1778 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1780 /* nfs4.server.reqs */
1782 { PMDA_PMID(CLUSTER_NET_NFS
,67), PM_TYPE_U32
, NFS4_SVR_INDOM
, PM_SEM_COUNTER
,
1783 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1785 /* rpc.client.rpccnt */
1786 { &proc_net_rpc
.client
.rpccnt
,
1787 { PMDA_PMID(CLUSTER_NET_NFS
,20), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1788 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1790 /* rpc.client.rpcretrans */
1791 { &proc_net_rpc
.client
.rpcretrans
,
1792 { PMDA_PMID(CLUSTER_NET_NFS
,21), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1793 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1795 /* rpc.client.rpcauthrefresh */
1796 { &proc_net_rpc
.client
.rpcauthrefresh
,
1797 { PMDA_PMID(CLUSTER_NET_NFS
,22), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1798 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1800 /* rpc.client.netcnt */
1801 { &proc_net_rpc
.client
.netcnt
,
1802 { PMDA_PMID(CLUSTER_NET_NFS
,24), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1803 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1805 /* rpc.client.netudpcnt */
1806 { &proc_net_rpc
.client
.netudpcnt
,
1807 { PMDA_PMID(CLUSTER_NET_NFS
,25), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1808 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1810 /* rpc.client.nettcpcnt */
1811 { &proc_net_rpc
.client
.nettcpcnt
,
1812 { PMDA_PMID(CLUSTER_NET_NFS
,26), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1813 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1815 /* rpc.client.nettcpconn */
1816 { &proc_net_rpc
.client
.nettcpconn
,
1817 { PMDA_PMID(CLUSTER_NET_NFS
,27), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1818 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1820 /* rpc.server.rpccnt */
1821 { &proc_net_rpc
.server
.rpccnt
,
1822 { PMDA_PMID(CLUSTER_NET_NFS
,30), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1823 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1825 /* rpc.server.rpcerr */
1826 { &proc_net_rpc
.server
.rpcerr
,
1827 { PMDA_PMID(CLUSTER_NET_NFS
,31), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1828 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1830 /* rpc.server.rpcbadfmt */
1831 { &proc_net_rpc
.server
.rpcbadfmt
,
1832 { PMDA_PMID(CLUSTER_NET_NFS
,32), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1833 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1835 /* rpc.server.rpcbadauth */
1836 { &proc_net_rpc
.server
.rpcbadauth
,
1837 { PMDA_PMID(CLUSTER_NET_NFS
,33), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1838 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1840 /* rpc.server.rpcbadclnt */
1841 { &proc_net_rpc
.server
.rpcbadclnt
,
1842 { PMDA_PMID(CLUSTER_NET_NFS
,34), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1843 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1845 /* rpc.server.rchits */
1846 { &proc_net_rpc
.server
.rchits
,
1847 { PMDA_PMID(CLUSTER_NET_NFS
,35), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1848 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1850 /* rpc.server.rcmisses */
1851 { &proc_net_rpc
.server
.rcmisses
,
1852 { PMDA_PMID(CLUSTER_NET_NFS
,36), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1853 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1855 /* rpc.server.rcnocache */
1856 { &proc_net_rpc
.server
.rcnocache
,
1857 { PMDA_PMID(CLUSTER_NET_NFS
,37), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1858 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1860 /* rpc.server.fh_cached */
1861 { &proc_net_rpc
.server
.fh_cached
,
1862 { PMDA_PMID(CLUSTER_NET_NFS
,38), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1863 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1865 /* rpc.server.fh_valid */
1866 { &proc_net_rpc
.server
.fh_valid
,
1867 { PMDA_PMID(CLUSTER_NET_NFS
,39), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1868 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1870 /* rpc.server.fh_fixup */
1871 { &proc_net_rpc
.server
.fh_fixup
,
1872 { PMDA_PMID(CLUSTER_NET_NFS
,40), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1873 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1875 /* rpc.server.fh_lookup */
1876 { &proc_net_rpc
.server
.fh_lookup
,
1877 { PMDA_PMID(CLUSTER_NET_NFS
,41), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1878 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1880 /* rpc.server.fh_stale */
1881 { &proc_net_rpc
.server
.fh_stale
,
1882 { PMDA_PMID(CLUSTER_NET_NFS
,42), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1883 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1885 /* rpc.server.fh_concurrent */
1886 { &proc_net_rpc
.server
.fh_concurrent
,
1887 { PMDA_PMID(CLUSTER_NET_NFS
,43), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1888 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1890 /* rpc.server.netcnt */
1891 { &proc_net_rpc
.server
.netcnt
,
1892 { PMDA_PMID(CLUSTER_NET_NFS
,44), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1893 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1895 /* rpc.server.netudpcnt */
1896 { &proc_net_rpc
.server
.netudpcnt
,
1897 { PMDA_PMID(CLUSTER_NET_NFS
,45), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1898 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1900 /* rpc.server.nettcpcnt */
1901 { &proc_net_rpc
.server
.nettcpcnt
,
1902 { PMDA_PMID(CLUSTER_NET_NFS
,46), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1903 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1905 /* rpc.server.nettcpconn */
1906 { &proc_net_rpc
.server
.nettcpcnt
,
1907 { PMDA_PMID(CLUSTER_NET_NFS
,47), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1908 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1910 /* rpc.server.fh_anon */
1911 { &proc_net_rpc
.server
.fh_anon
,
1912 { PMDA_PMID(CLUSTER_NET_NFS
,51), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1913 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1915 /* rpc.server.fh_nocache_dir */
1916 { &proc_net_rpc
.server
.fh_nocache_dir
,
1917 { PMDA_PMID(CLUSTER_NET_NFS
,52), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1918 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1920 /* rpc.server.fh_nocache_nondir */
1921 { &proc_net_rpc
.server
.fh_nocache_nondir
,
1922 { PMDA_PMID(CLUSTER_NET_NFS
,53), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1923 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1925 /* rpc.server.io_read */
1926 { &proc_net_rpc
.server
.io_read
,
1927 { PMDA_PMID(CLUSTER_NET_NFS
,54), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1928 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) } },
1930 /* rpc.server.io_write */
1931 { &proc_net_rpc
.server
.io_write
,
1932 { PMDA_PMID(CLUSTER_NET_NFS
,55), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1933 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) } },
1935 /* rpc.server.th_cnt */
1936 { &proc_net_rpc
.server
.th_cnt
,
1937 { PMDA_PMID(CLUSTER_NET_NFS
,56), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
1938 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1940 /* rpc.server.th_fullcnt */
1941 { &proc_net_rpc
.server
.th_fullcnt
,
1942 { PMDA_PMID(CLUSTER_NET_NFS
,57), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1943 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1945 /* rpc.server.ra_size */
1946 { &proc_net_rpc
.server
.ra_size
,
1947 { PMDA_PMID(CLUSTER_NET_NFS
,68), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1948 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1950 /* rpc.server.ra_hits */
1951 { &proc_net_rpc
.server
.ra_hits
,
1952 { PMDA_PMID(CLUSTER_NET_NFS
,69), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1953 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1955 /* rpc.server.ra_misses */
1956 { &proc_net_rpc
.server
.ra_misses
,
1957 { PMDA_PMID(CLUSTER_NET_NFS
,70), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
1958 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
1961 * /proc/partitions cluster
1964 /* disk.partitions.read */
1966 { PMDA_PMID(CLUSTER_PARTITIONS
,0), KERNEL_ULONG
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
1967 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1969 /* disk.partitions.write */
1971 { PMDA_PMID(CLUSTER_PARTITIONS
,1), KERNEL_ULONG
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
1972 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1974 /* disk.partitions.total */
1976 { PMDA_PMID(CLUSTER_PARTITIONS
,2), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
1977 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1979 /* disk.partitions.blkread */
1981 { PMDA_PMID(CLUSTER_PARTITIONS
,3), KERNEL_ULONG
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
1982 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1984 /* disk.partitions.blkwrite */
1986 { PMDA_PMID(CLUSTER_PARTITIONS
,4), KERNEL_ULONG
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
1987 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1989 /* disk.partitions.blktotal */
1991 { PMDA_PMID(CLUSTER_PARTITIONS
,5), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
1992 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
1994 /* disk.partitions.read_bytes */
1996 { PMDA_PMID(CLUSTER_PARTITIONS
,6), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
1997 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
1999 /* disk.partitions.write_bytes */
2001 { PMDA_PMID(CLUSTER_PARTITIONS
,7), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2002 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2004 /* disk.partitions.total_bytes */
2006 { PMDA_PMID(CLUSTER_PARTITIONS
,8), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2007 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2009 /* disk.partitions.read_merge*/
2011 { PMDA_PMID(CLUSTER_PARTITIONS
,9), KERNEL_ULONG
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2012 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
2014 /* disk.partitions.write_merge */
2016 { PMDA_PMID(CLUSTER_PARTITIONS
,10), KERNEL_ULONG
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2017 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
2019 /* disk.partitions.avactive */
2021 { PMDA_PMID(CLUSTER_PARTITIONS
,11), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2022 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
2024 /* disk.partitions.aveq */
2026 { PMDA_PMID(CLUSTER_PARTITIONS
,12), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2027 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
2029 /* disk.partitions.read_rawactive */
2031 { PMDA_PMID(CLUSTER_PARTITIONS
,13), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2032 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
2034 /* disk.partitions.write_rawactive */
2036 { PMDA_PMID(CLUSTER_PARTITIONS
,14), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2037 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
2039 /* disk.partitions.total_rawactive */
2041 { PMDA_PMID(CLUSTER_PARTITIONS
,15), PM_TYPE_U32
, PARTITIONS_INDOM
, PM_SEM_COUNTER
,
2042 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
2044 /* disk.dev.read_bytes */
2046 { PMDA_PMID(CLUSTER_STAT
,38), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
2047 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2049 /* disk.dev.write_bytes */
2051 { PMDA_PMID(CLUSTER_STAT
,39), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
2052 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2054 /* disk.dev.total_bytes */
2056 { PMDA_PMID(CLUSTER_STAT
,40), PM_TYPE_U32
, DISK_INDOM
, PM_SEM_COUNTER
,
2057 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2059 /* disk.all.read_bytes */
2061 { PMDA_PMID(CLUSTER_STAT
,41), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2062 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2064 /* disk.all.write_bytes */
2066 { PMDA_PMID(CLUSTER_STAT
,42), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2067 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2069 /* disk.all.total_bytes */
2071 { PMDA_PMID(CLUSTER_STAT
,43), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2072 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
2075 * kernel_uname cluster
2078 /* kernel.uname.release */
2079 { kernel_uname
.release
,
2080 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 0), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2081 PMDA_PMUNITS(0,0,0,0,0,0) } },
2083 /* kernel.uname.version */
2084 { kernel_uname
.version
,
2085 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 1), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2086 PMDA_PMUNITS(0,0,0,0,0,0) } },
2088 /* kernel.uname.sysname */
2089 { kernel_uname
.sysname
,
2090 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 2), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2091 PMDA_PMUNITS(0,0,0,0,0,0) } },
2093 /* kernel.uname.machine */
2094 { kernel_uname
.machine
,
2095 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 3), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
2096 PMDA_PMUNITS(0,0,0,0,0,0) } },
2098 /* kernel.uname.nodename */
2099 { kernel_uname
.nodename
,
2100 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 4), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2101 PMDA_PMUNITS(0,0,0,0,0,0) } },
2105 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 5), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2106 PMDA_PMUNITS(0,0,0,0,0,0) } },
2110 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 6), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2111 PMDA_PMUNITS(0,0,0,0,0,0) } },
2113 /* kernel.uname.distro */
2115 { PMDA_PMID(CLUSTER_KERNEL_UNAME
, 7), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2116 PMDA_PMUNITS(0,0,0,0,0,0) } },
2119 * network snmp cluster
2122 /* network.ip.forwarding */
2123 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_FORWARDING
],
2124 { PMDA_PMID(CLUSTER_NET_SNMP
,0), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2125 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2127 /* network.ip.defaultttl */
2128 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_DEFAULTTTL
],
2129 { PMDA_PMID(CLUSTER_NET_SNMP
,1), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2130 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2132 /* network.ip.inreceives */
2133 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_INRECEIVES
],
2134 { PMDA_PMID(CLUSTER_NET_SNMP
,2), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2135 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2137 /* network.ip.inhdrerrors */
2138 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_INHDRERRORS
],
2139 { PMDA_PMID(CLUSTER_NET_SNMP
,3), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2140 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2142 /* network.ip.inaddrerrors */
2143 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_INADDRERRORS
],
2144 { PMDA_PMID(CLUSTER_NET_SNMP
,4), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2145 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2147 /* network.ip.forwdatagrams */
2148 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_FORWDATAGRAMS
],
2149 { PMDA_PMID(CLUSTER_NET_SNMP
,5), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2150 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2152 /* network.ip.inunknownprotos */
2153 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_INUNKNOWNPROTOS
],
2154 { PMDA_PMID(CLUSTER_NET_SNMP
,6), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2155 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2157 /* network.ip.indiscards */
2158 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_INDISCARDS
],
2159 { PMDA_PMID(CLUSTER_NET_SNMP
,7), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2160 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2162 /* network.ip.indelivers */
2163 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_INDELIVERS
],
2164 { PMDA_PMID(CLUSTER_NET_SNMP
,8), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2165 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2167 /* network.ip.outrequests */
2168 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_OUTREQUESTS
],
2169 { PMDA_PMID(CLUSTER_NET_SNMP
,9), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2170 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2172 /* network.ip.outdiscards */
2173 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_OUTDISCARDS
],
2174 { PMDA_PMID(CLUSTER_NET_SNMP
,10), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2175 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2177 /* network.ip.outnoroutes */
2178 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_OUTNOROUTES
],
2179 { PMDA_PMID(CLUSTER_NET_SNMP
,11), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2180 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2182 /* network.ip.reasmtimeout */
2183 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_REASMTIMEOUT
],
2184 { PMDA_PMID(CLUSTER_NET_SNMP
,12), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2185 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2187 /* network.ip.reasmreqds */
2188 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_REASMREQDS
],
2189 { PMDA_PMID(CLUSTER_NET_SNMP
,13), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2190 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2192 /* network.ip.reasmoks */
2193 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_REASMOKS
],
2194 { PMDA_PMID(CLUSTER_NET_SNMP
,14), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2195 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2197 /* network.ip.reasmfails */
2198 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_REASMFAILS
],
2199 { PMDA_PMID(CLUSTER_NET_SNMP
,15), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2200 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2202 /* network.ip.fragoks */
2203 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_FRAGOKS
],
2204 { PMDA_PMID(CLUSTER_NET_SNMP
,16), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2205 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2207 /* network.ip.fragfails */
2208 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_FRAGFAILS
],
2209 { PMDA_PMID(CLUSTER_NET_SNMP
,17), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2210 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2212 /* network.ip.fragcreates */
2213 { &_pm_proc_net_snmp
.ip
[_PM_SNMP_IP_FRAGCREATES
],
2214 { PMDA_PMID(CLUSTER_NET_SNMP
,18), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2215 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2218 /* network.icmp.inmsgs */
2219 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INMSGS
],
2220 { PMDA_PMID(CLUSTER_NET_SNMP
,20), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2221 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2223 /* network.icmp.inerrors */
2224 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INERRORS
],
2225 { PMDA_PMID(CLUSTER_NET_SNMP
,21), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2226 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2228 /* network.icmp.indestunreachs */
2229 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INDESTUNREACHS
],
2230 { PMDA_PMID(CLUSTER_NET_SNMP
,22), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2231 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2233 /* network.icmp.intimeexcds */
2234 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INTIMEEXCDS
],
2235 { PMDA_PMID(CLUSTER_NET_SNMP
,23), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2236 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2238 /* network.icmp.inparmprobs */
2239 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INPARMPROBS
],
2240 { PMDA_PMID(CLUSTER_NET_SNMP
,24), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2241 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2243 /* network.icmp.insrcquenchs */
2244 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INSRCQUENCHS
],
2245 { PMDA_PMID(CLUSTER_NET_SNMP
,25), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2246 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2248 /* network.icmp.inredirects */
2249 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INREDIRECTS
],
2250 { PMDA_PMID(CLUSTER_NET_SNMP
,26), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2251 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2253 /* network.icmp.inechos */
2254 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INECHOS
],
2255 { PMDA_PMID(CLUSTER_NET_SNMP
,27), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2256 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2258 /* network.icmp.inechoreps */
2259 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INECHOREPS
],
2260 { PMDA_PMID(CLUSTER_NET_SNMP
,28), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2261 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2263 /* network.icmp.intimestamps */
2264 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INTIMESTAMPS
],
2265 { PMDA_PMID(CLUSTER_NET_SNMP
,29), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2266 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2268 /* network.icmp.intimestampreps */
2269 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INTIMESTAMPREPS
],
2270 { PMDA_PMID(CLUSTER_NET_SNMP
,30), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2271 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2273 /* network.icmp.inaddrmasks */
2274 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INADDRMASKS
],
2275 { PMDA_PMID(CLUSTER_NET_SNMP
,31), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2276 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2278 /* network.icmp.inaddrmaskreps */
2279 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INADDRMASKREPS
],
2280 { PMDA_PMID(CLUSTER_NET_SNMP
,32), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2281 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2283 /* network.icmp.outmsgs */
2284 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTMSGS
],
2285 { PMDA_PMID(CLUSTER_NET_SNMP
,33), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2286 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2288 /* network.icmp.outerrors */
2289 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTERRORS
],
2290 { PMDA_PMID(CLUSTER_NET_SNMP
,34), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2291 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2293 /* network.icmp.outdestunreachs */
2294 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTDESTUNREACHS
],
2295 { PMDA_PMID(CLUSTER_NET_SNMP
,35), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2296 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2298 /* network.icmp.outtimeexcds */
2299 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTTIMEEXCDS
],
2300 { PMDA_PMID(CLUSTER_NET_SNMP
,36), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2301 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2303 /* network.icmp.outparmprobs */
2304 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTPARMPROBS
],
2305 { PMDA_PMID(CLUSTER_NET_SNMP
,37), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2306 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2308 /* network.icmp.outsrcquenchs */
2309 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTSRCQUENCHS
],
2310 { PMDA_PMID(CLUSTER_NET_SNMP
,38), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2311 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2313 /* network.icmp.outredirects */
2314 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTREDIRECTS
],
2315 { PMDA_PMID(CLUSTER_NET_SNMP
,39), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2316 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2318 /* network.icmp.outechos */
2319 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTECHOS
],
2320 { PMDA_PMID(CLUSTER_NET_SNMP
,40), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2321 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2323 /* network.icmp.outechoreps */
2324 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTECHOREPS
],
2325 { PMDA_PMID(CLUSTER_NET_SNMP
,41), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2326 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2328 /* network.icmp.outtimestamps */
2329 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTTIMESTAMPS
],
2330 { PMDA_PMID(CLUSTER_NET_SNMP
,42), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2331 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2333 /* network.icmp.outtimestampreps */
2334 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTTIMESTAMPREPS
],
2335 { PMDA_PMID(CLUSTER_NET_SNMP
,43), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2336 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2338 /* network.icmp.outaddrmasks */
2339 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTADDRMASKS
],
2340 { PMDA_PMID(CLUSTER_NET_SNMP
,44), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2341 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2343 /* network.icmp.outaddrmaskreps */
2344 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_OUTADDRMASKREPS
],
2345 { PMDA_PMID(CLUSTER_NET_SNMP
,45), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2346 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2348 /* network.icmp.incsumerrors */
2349 { &_pm_proc_net_snmp
.icmp
[_PM_SNMP_ICMP_INCSUMERRORS
],
2350 { PMDA_PMID(CLUSTER_NET_SNMP
,46), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2351 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2354 /* network.tcp.rtoalgorithm */
2355 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_RTOALGORITHM
],
2356 { PMDA_PMID(CLUSTER_NET_SNMP
,50), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2357 PMDA_PMUNITS(0,0,0,0,0,0) } },
2359 /* network.tcp.rtomin */
2360 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_RTOMIN
],
2361 { PMDA_PMID(CLUSTER_NET_SNMP
,51), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2362 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) } },
2364 /* network.tcp.rtomax */
2365 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_RTOMAX
],
2366 { PMDA_PMID(CLUSTER_NET_SNMP
,52), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2367 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) } },
2369 /* network.tcp.maxconn */
2370 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_MAXCONN
],
2371 { PMDA_PMID(CLUSTER_NET_SNMP
,53), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2372 PMDA_PMUNITS(0,0,0,0,0,0) } },
2374 /* network.tcpconn.established */
2375 { &proc_net_tcp
.stat
[_PM_TCP_ESTABLISHED
],
2376 { PMDA_PMID(CLUSTER_NET_TCP
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2377 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2379 /* network.tcpconn.syn_sent */
2380 { &proc_net_tcp
.stat
[_PM_TCP_SYN_SENT
],
2381 { PMDA_PMID(CLUSTER_NET_TCP
, 2), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2382 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2384 /* network.tcpconn.syn_recv */
2385 { &proc_net_tcp
.stat
[_PM_TCP_SYN_RECV
],
2386 { PMDA_PMID(CLUSTER_NET_TCP
, 3), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2387 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2389 /* network.tcpconn.fin_wait1 */
2390 { &proc_net_tcp
.stat
[_PM_TCP_FIN_WAIT1
],
2391 { PMDA_PMID(CLUSTER_NET_TCP
, 4), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2392 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2394 /* network.tcpconn.fin_wait2 */
2395 { &proc_net_tcp
.stat
[_PM_TCP_FIN_WAIT2
],
2396 { PMDA_PMID(CLUSTER_NET_TCP
, 5), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2397 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2399 /* network.tcpconn.time_wait */
2400 { &proc_net_tcp
.stat
[_PM_TCP_TIME_WAIT
],
2401 { PMDA_PMID(CLUSTER_NET_TCP
, 6), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2402 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2404 /* network.tcpconn.close */
2405 { &proc_net_tcp
.stat
[_PM_TCP_CLOSE
],
2406 { PMDA_PMID(CLUSTER_NET_TCP
, 7), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2407 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2409 /* network.tcpconn.close_wait */
2410 { &proc_net_tcp
.stat
[_PM_TCP_CLOSE_WAIT
],
2411 { PMDA_PMID(CLUSTER_NET_TCP
, 8), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2412 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2414 /* network.tcpconn.last_ack */
2415 { &proc_net_tcp
.stat
[_PM_TCP_LAST_ACK
],
2416 { PMDA_PMID(CLUSTER_NET_TCP
, 9), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2417 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2419 /* network.tcpconn.listen */
2420 { &proc_net_tcp
.stat
[_PM_TCP_LISTEN
],
2421 { PMDA_PMID(CLUSTER_NET_TCP
, 10), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2422 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2424 /* network.tcpconn.closing */
2425 { &proc_net_tcp
.stat
[_PM_TCP_CLOSING
],
2426 { PMDA_PMID(CLUSTER_NET_TCP
, 11), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2427 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2429 /* network.tcp.activeopens */
2430 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_ACTIVEOPENS
],
2431 { PMDA_PMID(CLUSTER_NET_SNMP
,54), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2432 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2434 /* network.tcp.passiveopens */
2435 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_PASSIVEOPENS
],
2436 { PMDA_PMID(CLUSTER_NET_SNMP
,55), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2437 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2439 /* network.tcp.attemptfails */
2440 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_ATTEMPTFAILS
],
2441 { PMDA_PMID(CLUSTER_NET_SNMP
,56), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2442 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2444 /* network.tcp.estabresets */
2445 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_ESTABRESETS
],
2446 { PMDA_PMID(CLUSTER_NET_SNMP
,57), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2447 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2449 /* network.tcp.currestab */
2450 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_CURRESTAB
],
2451 { PMDA_PMID(CLUSTER_NET_SNMP
,58), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
2452 PMDA_PMUNITS(0,0,0,0,0,0) } },
2454 /* network.tcp.insegs */
2455 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_INSEGS
],
2456 { PMDA_PMID(CLUSTER_NET_SNMP
,59), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2457 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2459 /* network.tcp.outsegs */
2460 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_OUTSEGS
],
2461 { PMDA_PMID(CLUSTER_NET_SNMP
,60), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2462 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2464 /* network.tcp.retranssegs */
2465 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_RETRANSSEGS
],
2466 { PMDA_PMID(CLUSTER_NET_SNMP
,61), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2467 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2469 /* network.tcp.inerrs */
2470 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_INERRS
],
2471 { PMDA_PMID(CLUSTER_NET_SNMP
,62), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2472 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2474 /* network.tcp.outrsts */
2475 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_OUTRSTS
],
2476 { PMDA_PMID(CLUSTER_NET_SNMP
,63), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2477 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2479 /* network.tcp.incsumerrors */
2480 { &_pm_proc_net_snmp
.tcp
[_PM_SNMP_TCP_INCSUMERRORS
],
2481 { PMDA_PMID(CLUSTER_NET_SNMP
,64), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2482 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2484 /* network.udp.indatagrams */
2485 { &_pm_proc_net_snmp
.udp
[_PM_SNMP_UDP_INDATAGRAMS
],
2486 { PMDA_PMID(CLUSTER_NET_SNMP
,70), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2487 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2489 /* network.udp.noports */
2490 { &_pm_proc_net_snmp
.udp
[_PM_SNMP_UDP_NOPORTS
],
2491 { PMDA_PMID(CLUSTER_NET_SNMP
,71), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2492 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2494 /* network.udp.inerrors */
2495 { &_pm_proc_net_snmp
.udp
[_PM_SNMP_UDP_INERRORS
],
2496 { PMDA_PMID(CLUSTER_NET_SNMP
,72), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2497 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2499 /* network.udp.outdatagrams */
2500 { &_pm_proc_net_snmp
.udp
[_PM_SNMP_UDP_OUTDATAGRAMS
],
2501 { PMDA_PMID(CLUSTER_NET_SNMP
,74), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2502 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2504 /* network.udp.recvbuferrors */
2505 { &_pm_proc_net_snmp
.udp
[_PM_SNMP_UDP_RECVBUFERRORS
],
2506 { PMDA_PMID(CLUSTER_NET_SNMP
,75), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2507 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2509 /* network.udp.sndbuferrors */
2510 { &_pm_proc_net_snmp
.udp
[_PM_SNMP_UDP_SNDBUFERRORS
],
2511 { PMDA_PMID(CLUSTER_NET_SNMP
,76), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2512 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2514 /* network.udp.incsumerrors */
2515 { &_pm_proc_net_snmp
.udp
[_PM_SNMP_UDP_INCSUMERRORS
],
2516 { PMDA_PMID(CLUSTER_NET_SNMP
,83), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2517 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2519 /* network.udplite.indatagrams */
2520 { &_pm_proc_net_snmp
.udplite
[_PM_SNMP_UDPLITE_INDATAGRAMS
],
2521 { PMDA_PMID(CLUSTER_NET_SNMP
,77), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2522 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2524 /* network.udplite.noports */
2525 { &_pm_proc_net_snmp
.udplite
[_PM_SNMP_UDPLITE_NOPORTS
],
2526 { PMDA_PMID(CLUSTER_NET_SNMP
,78), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2527 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2529 /* network.udplite.inerrors */
2530 { &_pm_proc_net_snmp
.udplite
[_PM_SNMP_UDPLITE_INERRORS
],
2531 { PMDA_PMID(CLUSTER_NET_SNMP
,79), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2532 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2534 /* network.udplite.outdatagrams */
2535 { &_pm_proc_net_snmp
.udplite
[_PM_SNMP_UDPLITE_OUTDATAGRAMS
],
2536 { PMDA_PMID(CLUSTER_NET_SNMP
,80), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2537 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2539 /* network.udplite.recvbuferrors */
2540 { &_pm_proc_net_snmp
.udplite
[_PM_SNMP_UDPLITE_RECVBUFERRORS
],
2541 { PMDA_PMID(CLUSTER_NET_SNMP
,81), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2542 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2544 /* network.udplite.sndbuferrors */
2545 { &_pm_proc_net_snmp
.udplite
[_PM_SNMP_UDPLITE_SNDBUFERRORS
],
2546 { PMDA_PMID(CLUSTER_NET_SNMP
,82), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2547 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2549 /* network.udplite.incsumerrors */
2550 { &_pm_proc_net_snmp
.udplite
[_PM_SNMP_UDPLITE_INCSUMERRORS
],
2551 { PMDA_PMID(CLUSTER_NET_SNMP
,84), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2552 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2554 /* network.icmpmsg.intype */
2555 { &_pm_proc_net_snmp
.icmpmsg
[_PM_SNMP_ICMPMSG_INTYPE
],
2556 { PMDA_PMID(CLUSTER_NET_SNMP
,88), PM_TYPE_U64
, ICMPMSG_INDOM
, PM_SEM_COUNTER
,
2557 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2559 /* network.icmpmsg.outtype */
2560 { &_pm_proc_net_snmp
.icmpmsg
[_PM_SNMP_ICMPMSG_OUTTYPE
],
2561 { PMDA_PMID(CLUSTER_NET_SNMP
,89), PM_TYPE_U64
, ICMPMSG_INDOM
, PM_SEM_COUNTER
,
2562 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2565 * network IPv6 cluster
2568 /* network.ip6.inreceives */
2569 { &_pm_proc_net_snmp6
[_PM_IP6_INRECEIVES
].val
,
2570 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INRECEIVES
), PM_TYPE_U64
,
2571 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2573 /* network.ip6.inhdrerrors */
2574 { &_pm_proc_net_snmp6
[_PM_IP6_INHDRERRORS
].val
,
2575 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INHDRERRORS
), PM_TYPE_U64
,
2576 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2578 /* network.ip6.intoobigerrors */
2579 { &_pm_proc_net_snmp6
[_PM_IP6_INTOOBIGERRORS
].val
,
2580 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INTOOBIGERRORS
), PM_TYPE_U64
,
2581 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2583 /* network.ip6.innoroutes */
2584 { &_pm_proc_net_snmp6
[_PM_IP6_INNOROUTES
].val
,
2585 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INNOROUTES
), PM_TYPE_U64
,
2586 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2588 /* network.ip6.inaddrerrors */
2589 { &_pm_proc_net_snmp6
[_PM_IP6_INADDRERRORS
].val
,
2590 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INADDRERRORS
), PM_TYPE_U64
,
2591 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2593 /* network.ip6.inunknownprotos */
2594 { &_pm_proc_net_snmp6
[_PM_IP6_INUNKNOWNPROTOS
].val
,
2595 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INUNKNOWNPROTOS
), PM_TYPE_U64
,
2596 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2598 /* network.ip6.intruncatedpkts */
2599 { &_pm_proc_net_snmp6
[_PM_IP6_INTRUNCATEDPKTS
].val
,
2600 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INTRUNCATEDPKTS
), PM_TYPE_U64
,
2601 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2603 /* network.ip6.indiscards */
2604 { &_pm_proc_net_snmp6
[_PM_IP6_INDISCARDS
].val
,
2605 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INDISCARDS
), PM_TYPE_U64
,
2606 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2608 /* network.ip6.indelivers */
2609 { &_pm_proc_net_snmp6
[_PM_IP6_INDELIVERS
].val
,
2610 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INDELIVERS
), PM_TYPE_U64
,
2611 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2613 /* network.ip6.outforwdatagrams */
2614 { &_pm_proc_net_snmp6
[_PM_IP6_OUTFORWDATAGRAMS
].val
,
2615 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTFORWDATAGRAMS
), PM_TYPE_U64
,
2616 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2618 /* network.ip6.outrequests */
2619 { &_pm_proc_net_snmp6
[_PM_IP6_OUTREQUESTS
].val
,
2620 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTREQUESTS
), PM_TYPE_U64
,
2621 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2623 /* network.ip6.outdiscards */
2624 { &_pm_proc_net_snmp6
[_PM_IP6_OUTDISCARDS
].val
,
2625 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTDISCARDS
), PM_TYPE_U64
,
2626 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2628 /* network.ip6.outnoroutes */
2629 { &_pm_proc_net_snmp6
[_PM_IP6_OUTNOROUTES
].val
,
2630 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTNOROUTES
), PM_TYPE_U64
,
2631 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2633 /* network.ip6.reasmtimeout */
2634 { &_pm_proc_net_snmp6
[_PM_IP6_REASMTIMEOUT
].val
,
2635 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_REASMTIMEOUT
), PM_TYPE_U64
,
2636 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2638 /* network.ip6.reasmreqds */
2639 { &_pm_proc_net_snmp6
[_PM_IP6_REASMREQDS
].val
,
2640 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_REASMREQDS
), PM_TYPE_U64
,
2641 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2643 /* network.ip6.reasmoks */
2644 { &_pm_proc_net_snmp6
[_PM_IP6_REASMOKS
].val
,
2645 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_REASMOKS
), PM_TYPE_U64
,
2646 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2648 /* network.ip6.reasmfails */
2649 { &_pm_proc_net_snmp6
[_PM_IP6_REASMFAILS
].val
,
2650 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_REASMFAILS
), PM_TYPE_U64
,
2651 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2653 /* network.ip6.fragoks */
2654 { &_pm_proc_net_snmp6
[_PM_IP6_FRAGOKS
].val
,
2655 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_FRAGOKS
), PM_TYPE_U64
,
2656 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2658 /* network.ip6.fragfails */
2659 { &_pm_proc_net_snmp6
[_PM_IP6_FRAGFAILS
].val
,
2660 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_FRAGFAILS
), PM_TYPE_U64
,
2661 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2663 /* network.ip6.fragcreates */
2664 { &_pm_proc_net_snmp6
[_PM_IP6_FRAGCREATES
].val
,
2665 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_FRAGCREATES
), PM_TYPE_U64
,
2666 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2668 /* network.ip6.inmcastpkts */
2669 { &_pm_proc_net_snmp6
[_PM_IP6_INMCASTPKTS
].val
,
2670 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INMCASTPKTS
), PM_TYPE_U64
,
2671 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2673 /* network.ip6.outmcastpkts */
2674 { &_pm_proc_net_snmp6
[_PM_IP6_OUTMCASTPKTS
].val
,
2675 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTMCASTPKTS
), PM_TYPE_U64
,
2676 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2678 /* network.ip6.inoctets */
2679 { &_pm_proc_net_snmp6
[_PM_IP6_INOCTETS
].val
,
2680 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INOCTETS
), PM_TYPE_U64
,
2681 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2683 /* network.ip6.outoctets */
2684 { &_pm_proc_net_snmp6
[_PM_IP6_OUTOCTETS
].val
,
2685 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTOCTETS
), PM_TYPE_U64
,
2686 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2688 /* network.ip6.inmcastoctets */
2689 { &_pm_proc_net_snmp6
[_PM_IP6_INMCASTOCTETS
].val
,
2690 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INMCASTOCTETS
), PM_TYPE_U64
,
2691 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2693 /* network.ip6.outmcastoctets */
2694 { &_pm_proc_net_snmp6
[_PM_IP6_OUTMCASTOCTETS
].val
,
2695 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTMCASTOCTETS
), PM_TYPE_U64
,
2696 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2698 /* network.ip6.inbcastoctets */
2699 { &_pm_proc_net_snmp6
[_PM_IP6_INBCASTOCTETS
].val
,
2700 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INBCASTOCTETS
), PM_TYPE_U64
,
2701 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2703 /* network.ip6.outbcastoctets */
2704 { &_pm_proc_net_snmp6
[_PM_IP6_OUTBCASTOCTETS
].val
,
2705 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_OUTBCASTOCTETS
), PM_TYPE_U64
,
2706 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2708 /* network.ip6.innoectpkts */
2709 { &_pm_proc_net_snmp6
[_PM_IP6_INNOECTPKTS
].val
,
2710 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INNOECTPKTS
), PM_TYPE_U64
,
2711 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2713 /* network.ip6.inect1pkts */
2714 { &_pm_proc_net_snmp6
[_PM_IP6_INECT1PKTS
].val
,
2715 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INECT1PKTS
), PM_TYPE_U64
,
2716 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2718 /* network.ip6.inect0pkts */
2719 { &_pm_proc_net_snmp6
[_PM_IP6_INECT0PKTS
].val
,
2720 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INECT0PKTS
), PM_TYPE_U64
,
2721 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2723 /* network.ip6.incepkts */
2724 { &_pm_proc_net_snmp6
[_PM_IP6_INCEPKTS
].val
,
2725 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_IP6_INCEPKTS
), PM_TYPE_U64
,
2726 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2728 /* network.icmp6.inmsgs */
2729 { &_pm_proc_net_snmp6
[_PM_ICMP6_INMSGS
].val
,
2730 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INMSGS
), PM_TYPE_U64
,
2731 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2733 /* network.icmp6.inerrors */
2734 { &_pm_proc_net_snmp6
[_PM_ICMP6_INERRORS
].val
,
2735 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INERRORS
), PM_TYPE_U64
,
2736 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2738 /* network.icmp6.outmsgs */
2739 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTMSGS
].val
,
2740 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTMSGS
), PM_TYPE_U64
,
2741 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2743 /* network.icmp6.outerrors */
2744 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTERRORS
].val
,
2745 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTERRORS
), PM_TYPE_U64
,
2746 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2748 /* network.icmp6.incsumerrors */
2749 { &_pm_proc_net_snmp6
[_PM_ICMP6_INCSUMERRORS
].val
,
2750 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INCSUMERRORS
), PM_TYPE_U64
,
2751 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2753 /* network.icmp6.indestunreachs */
2754 { &_pm_proc_net_snmp6
[_PM_ICMP6_INDESTUNREACHS
].val
,
2755 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INDESTUNREACHS
), PM_TYPE_U64
,
2756 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2758 /* network.icmp6.inpkttoobigs */
2759 { &_pm_proc_net_snmp6
[_PM_ICMP6_INPKTTOOBIGS
].val
,
2760 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INPKTTOOBIGS
), PM_TYPE_U64
,
2761 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2763 /* network.icmp6.intimeexcds */
2764 { &_pm_proc_net_snmp6
[_PM_ICMP6_INTIMEEXCDS
].val
,
2765 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INTIMEEXCDS
), PM_TYPE_U64
,
2766 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2768 /* network.icmp6.inparmproblems */
2769 { &_pm_proc_net_snmp6
[_PM_ICMP6_INPARMPROBLEMS
].val
,
2770 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INPARMPROBLEMS
), PM_TYPE_U64
,
2771 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2773 /* network.icmp6.inechos */
2774 { &_pm_proc_net_snmp6
[_PM_ICMP6_INECHOS
].val
,
2775 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INECHOS
), PM_TYPE_U64
,
2776 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2778 /* network.icmp6.inechoreplies */
2779 { &_pm_proc_net_snmp6
[_PM_ICMP6_INECHOREPLIES
].val
,
2780 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INECHOREPLIES
), PM_TYPE_U64
,
2781 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2783 /* network.icmp6.ingroupmembqueries */
2784 { &_pm_proc_net_snmp6
[_PM_ICMP6_INGROUPMEMBQUERIES
].val
,
2785 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INGROUPMEMBQUERIES
), PM_TYPE_U64
,
2786 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2788 /* network.icmp6.ingroupmembresponses */
2789 { &_pm_proc_net_snmp6
[_PM_ICMP6_INGROUPMEMBRESPONSES
].val
,
2790 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INGROUPMEMBRESPONSES
), PM_TYPE_U64
,
2791 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2793 /* network.icmp6.ingroupmembreductions */
2794 { &_pm_proc_net_snmp6
[_PM_ICMP6_INGROUPMEMBREDUCTIONS
].val
,
2795 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INGROUPMEMBREDUCTIONS
), PM_TYPE_U64
,
2796 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2798 /* network.icmp6.inroutersolicits */
2799 { &_pm_proc_net_snmp6
[_PM_ICMP6_INROUTERSOLICITS
].val
,
2800 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INROUTERSOLICITS
), PM_TYPE_U64
,
2801 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2803 /* network.icmp6.inrouteradvertisements */
2804 { &_pm_proc_net_snmp6
[_PM_ICMP6_INROUTERADVERTISEMENTS
].val
,
2805 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INROUTERADVERTISEMENTS
), PM_TYPE_U64
,
2806 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2808 /* network.icmp6.inneighborsolicits */
2809 { &_pm_proc_net_snmp6
[_PM_ICMP6_INNEIGHBORSOLICITS
].val
,
2810 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INNEIGHBORSOLICITS
), PM_TYPE_U64
,
2811 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2813 /* network.icmp6.inneighboradvertisements */
2814 { &_pm_proc_net_snmp6
[_PM_ICMP6_INNEIGHBORADVERTISEMENTS
].val
,
2815 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INNEIGHBORADVERTISEMENTS
), PM_TYPE_U64
,
2816 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2818 /* network.icmp6.inredirects */
2819 { &_pm_proc_net_snmp6
[_PM_ICMP6_INREDIRECTS
].val
,
2820 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INREDIRECTS
), PM_TYPE_U64
,
2821 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2823 /* network.icmp6.inmldv2reports */
2824 { &_pm_proc_net_snmp6
[_PM_ICMP6_INMLDV2REPORTS
].val
,
2825 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_INMLDV2REPORTS
), PM_TYPE_U64
,
2826 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2828 /* network.icmp6.outdestunreachs */
2829 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTDESTUNREACHS
].val
,
2830 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTDESTUNREACHS
), PM_TYPE_U64
,
2831 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2833 /* network.icmp6.outpkttoobigs */
2834 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTPKTTOOBIGS
].val
,
2835 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTPKTTOOBIGS
), PM_TYPE_U64
,
2836 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2838 /* network.icmp6.outtimeexcds */
2839 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTTIMEEXCDS
].val
,
2840 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTTIMEEXCDS
), PM_TYPE_U64
,
2841 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2843 /* network.icmp6.outparmproblems */
2844 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTPARMPROBLEMS
].val
,
2845 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTPARMPROBLEMS
), PM_TYPE_U64
,
2846 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2848 /* network.icmp6.outechos */
2849 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTECHOS
].val
,
2850 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTECHOS
), PM_TYPE_U64
,
2851 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2853 /* network.icmp6.outechoreplies */
2854 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTECHOREPLIES
].val
,
2855 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTECHOREPLIES
), PM_TYPE_U64
,
2856 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2858 /* network.icmp6.outgroupmembqueries */
2859 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTGROUPMEMBQUERIES
].val
,
2860 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTGROUPMEMBQUERIES
), PM_TYPE_U64
,
2861 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2863 /* network.icmp6.outgroupmembresponses */
2864 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTGROUPMEMBRESPONSES
].val
,
2865 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTGROUPMEMBRESPONSES
), PM_TYPE_U64
,
2866 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2868 /* network.icmp6.outgroupmembreductions */
2869 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTGROUPMEMBREDUCTIONS
].val
,
2870 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTGROUPMEMBREDUCTIONS
), PM_TYPE_U64
,
2871 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2873 /* network.icmp6.outroutersolicits */
2874 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTROUTERSOLICITS
].val
,
2875 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTROUTERSOLICITS
), PM_TYPE_U64
,
2876 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2878 /* network.icmp6.outrouteradvertisements */
2879 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTROUTERADVERTISEMENTS
].val
,
2880 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTROUTERADVERTISEMENTS
), PM_TYPE_U64
,
2881 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2883 /* network.icmp6.outneighborsolicits */
2884 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTNEIGHBORSOLICITS
].val
,
2885 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTNEIGHBORSOLICITS
), PM_TYPE_U64
,
2886 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2888 /* network.icmp6.outneighboradvertisements */
2889 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTNEIGHBORADVERTISEMENTS
].val
,
2890 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTNEIGHBORADVERTISEMENTS
), PM_TYPE_U64
,
2891 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2893 /* network.icmp6.outredirects */
2894 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTREDIRECTS
].val
,
2895 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTREDIRECTS
), PM_TYPE_U64
,
2896 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2898 /* network.icmp6.outmldv2reports */
2899 { &_pm_proc_net_snmp6
[_PM_ICMP6_OUTMLDV2REPORTS
].val
,
2900 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_ICMP6_OUTMLDV2REPORTS
), PM_TYPE_U64
,
2901 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2903 /* network.udp6.indatagrams */
2904 { &_pm_proc_net_snmp6
[_PM_UDP6_INDATAGRAMS
].val
,
2905 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_INDATAGRAMS
), PM_TYPE_U64
,
2906 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2908 /* network.udp6.noports */
2909 { &_pm_proc_net_snmp6
[_PM_UDP6_NOPORTS
].val
,
2910 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_NOPORTS
), PM_TYPE_U64
,
2911 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2913 /* network.udp6.inerrors */
2914 { &_pm_proc_net_snmp6
[_PM_UDP6_INERRORS
].val
,
2915 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_INERRORS
), PM_TYPE_U64
,
2916 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2918 /* network.udp6.outdatagrams */
2919 { &_pm_proc_net_snmp6
[_PM_UDP6_OUTDATAGRAMS
].val
,
2920 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_OUTDATAGRAMS
), PM_TYPE_U64
,
2921 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2923 /* network.udp6.rcvbuferrors */
2924 { &_pm_proc_net_snmp6
[_PM_UDP6_RCVBUFERRORS
].val
,
2925 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_RCVBUFERRORS
), PM_TYPE_U64
,
2926 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2928 /* network.udp6.sndbuferrors */
2929 { &_pm_proc_net_snmp6
[_PM_UDP6_SNDBUFERRORS
].val
,
2930 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_SNDBUFERRORS
), PM_TYPE_U64
,
2931 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2933 /* network.udp6.incsumerrors */
2934 { &_pm_proc_net_snmp6
[_PM_UDP6_INCSUMERRORS
].val
,
2935 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_INCSUMERRORS
), PM_TYPE_U64
,
2936 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2938 /* network.udp6.ignoredmulti */
2939 { &_pm_proc_net_snmp6
[_PM_UDP6_IGNOREDMULTI
].val
,
2940 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDP6_IGNOREDMULTI
), PM_TYPE_U64
,
2941 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2943 /* network.udplite6.indatagrams */
2944 { &_pm_proc_net_snmp6
[_PM_UDPLITE6_INDATAGRAMS
].val
,
2945 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDPLITE6_INDATAGRAMS
), PM_TYPE_U64
,
2946 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2948 /* network.udplite6.noports */
2949 { &_pm_proc_net_snmp6
[_PM_UDPLITE6_NOPORTS
].val
,
2950 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDPLITE6_NOPORTS
), PM_TYPE_U64
,
2951 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2953 /* network.udplite6.inerrors */
2954 { &_pm_proc_net_snmp6
[_PM_UDPLITE6_INERRORS
].val
,
2955 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDPLITE6_INERRORS
), PM_TYPE_U64
,
2956 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2958 /* network.udplite6.outdatagrams */
2959 { &_pm_proc_net_snmp6
[_PM_UDPLITE6_OUTDATAGRAMS
].val
,
2960 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDPLITE6_OUTDATAGRAMS
), PM_TYPE_U64
,
2961 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2963 /* network.udplite6.rcvbuferrors */
2964 { &_pm_proc_net_snmp6
[_PM_UDPLITE6_RCVBUFERRORS
].val
,
2965 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDPLITE6_RCVBUFERRORS
), PM_TYPE_U64
,
2966 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2968 /* network.udplite6.sndbuferrors */
2969 { &_pm_proc_net_snmp6
[_PM_UDPLITE6_SNDBUFERRORS
].val
,
2970 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDPLITE6_SNDBUFERRORS
), PM_TYPE_U64
,
2971 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2973 /* network.udplite6.incsumerrors */
2974 { &_pm_proc_net_snmp6
[_PM_UDPLITE6_INCSUMERRORS
].val
,
2975 { PMDA_PMID(CLUSTER_NET_SNMP6
, _PM_UDPLITE6_INCSUMERRORS
), PM_TYPE_U64
,
2976 PM_INDOM_NULL
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2979 * network netstat cluster
2982 /* network.ip.innoroutes */
2983 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_INNOROUTES
],
2984 { PMDA_PMID(CLUSTER_NET_NETSTAT
,0), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2985 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2987 /* network.ip.intruncatedpkts */
2988 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_INTRUNCATEDPKTS
],
2989 { PMDA_PMID(CLUSTER_NET_NETSTAT
,1), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2990 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2992 /* network.ip.inmcastpkts */
2993 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_INMCASTPKTS
],
2994 { PMDA_PMID(CLUSTER_NET_NETSTAT
,2), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
2995 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
2997 /* network.ip.outmcastpkts */
2998 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_OUTMCASTPKTS
],
2999 { PMDA_PMID(CLUSTER_NET_NETSTAT
,3), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3000 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3002 /* network.ip.inbcastpkts */
3003 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_INBCASTPKTS
],
3004 { PMDA_PMID(CLUSTER_NET_NETSTAT
,4), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3005 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3007 /* network.ip.outbcastpkts */
3008 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_OUTBCASTPKTS
],
3009 { PMDA_PMID(CLUSTER_NET_NETSTAT
,5), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3010 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3012 /* network.ip.inoctets */
3013 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_INOCTETS
],
3014 { PMDA_PMID(CLUSTER_NET_NETSTAT
,6), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3015 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3017 /* network.ip.outoctets */
3018 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_OUTOCTETS
],
3019 { PMDA_PMID(CLUSTER_NET_NETSTAT
,7), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3020 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3022 /* network.ip.inmcastoctets */
3023 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_INMCASTOCTETS
],
3024 { PMDA_PMID(CLUSTER_NET_NETSTAT
,8), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3025 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3027 /* network.ip.outmcastoctets */
3028 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_OUTMCASTOCTETS
],
3029 { PMDA_PMID(CLUSTER_NET_NETSTAT
,9), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3030 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3032 /* network.ip.inbcastoctets */
3033 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_INBCASTOCTETS
],
3034 { PMDA_PMID(CLUSTER_NET_NETSTAT
,10), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3035 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3037 /* network.ip.outbcastoctets */
3038 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_OUTBCASTOCTETS
],
3039 { PMDA_PMID(CLUSTER_NET_NETSTAT
,11), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3040 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3042 /* network.ip.csumerrors */
3043 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_CSUMERRORS
],
3044 { PMDA_PMID(CLUSTER_NET_NETSTAT
,12), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3045 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3047 /* network.ip.noectpkts */
3048 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_NOECTPKTS
],
3049 { PMDA_PMID(CLUSTER_NET_NETSTAT
,13), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3050 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3052 /* network.ip.ect1pkts */
3053 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_ECT1PKTS
],
3054 { PMDA_PMID(CLUSTER_NET_NETSTAT
,14), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3055 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3057 /* network.ip.ect0pkts */
3058 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_ECT0PKTS
],
3059 { PMDA_PMID(CLUSTER_NET_NETSTAT
,15), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3060 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3062 /* network.ip.cepkts */
3063 { &_pm_proc_net_netstat
.ip
[_PM_NETSTAT_IPEXT_CEPKTS
],
3064 { PMDA_PMID(CLUSTER_NET_NETSTAT
,16), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3065 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3067 /* network.tcp.syncookiessent */
3068 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_SYNCOOKIESSENT
],
3069 { PMDA_PMID(CLUSTER_NET_NETSTAT
,17), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3070 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3072 /* network.tcp.syncookiesrecv */
3073 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_SYNCOOKIESRECV
],
3074 { PMDA_PMID(CLUSTER_NET_NETSTAT
,18), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3075 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3077 /* network.tcp.syncookiesfailed */
3078 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_SYNCOOKIESFAILED
],
3079 { PMDA_PMID(CLUSTER_NET_NETSTAT
,19), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3080 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3082 /* network.tcp.embryonicrsts */
3083 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_EMBRYONICRSTS
],
3084 { PMDA_PMID(CLUSTER_NET_NETSTAT
,20), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3085 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3087 /* network.tcp.prunecalled */
3088 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_PRUNECALLED
],
3089 { PMDA_PMID(CLUSTER_NET_NETSTAT
,21), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3090 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3092 /* network.tcp.rcvpruned */
3093 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_RCVPRUNED
],
3094 { PMDA_PMID(CLUSTER_NET_NETSTAT
,22), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3095 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3097 /* network.tcp.ofopruned */
3098 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_OFOPRUNED
],
3099 { PMDA_PMID(CLUSTER_NET_NETSTAT
,23), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3100 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3102 /* network.tcp.outofwindowicmps */
3103 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_OUTOFWINDOWICMPS
],
3104 { PMDA_PMID(CLUSTER_NET_NETSTAT
,24), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3105 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3107 /* network.tcp.lockdroppedicmps */
3108 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_LOCKDROPPEDICMPS
],
3109 { PMDA_PMID(CLUSTER_NET_NETSTAT
,25), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3110 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3112 /* network.tcp.arpfilter */
3113 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_ARPFILTER
],
3114 { PMDA_PMID(CLUSTER_NET_NETSTAT
,26), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3115 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3117 /* network.tcp.timewaited */
3118 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TIMEWAITED
],
3119 { PMDA_PMID(CLUSTER_NET_NETSTAT
,27), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3120 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3122 /* network.tcp.timewaitrecycled */
3123 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TIMEWAITRECYCLED
],
3124 { PMDA_PMID(CLUSTER_NET_NETSTAT
,28), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3125 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3127 /* network.tcp.timewaitkilled */
3128 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TIMEWAITKILLED
],
3129 { PMDA_PMID(CLUSTER_NET_NETSTAT
,29), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3130 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3132 /* network.tcp.pawspassiverejected */
3133 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_PAWSPASSIVEREJECTED
],
3134 { PMDA_PMID(CLUSTER_NET_NETSTAT
,30), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3135 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3137 /* network.tcp.pawsactiverejected */
3138 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_PAWSACTIVEREJECTED
],
3139 { PMDA_PMID(CLUSTER_NET_NETSTAT
,31), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3140 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3142 /* network.tcp.pawsestabrejected */
3143 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_PAWSESTABREJECTED
],
3144 { PMDA_PMID(CLUSTER_NET_NETSTAT
,32), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3145 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3147 /* network.tcp.delayedacks */
3148 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_DELAYEDACKS
],
3149 { PMDA_PMID(CLUSTER_NET_NETSTAT
,33), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3150 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3152 /* network.tcp.delayedacklocked */
3153 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_DELAYEDACKLOCKED
],
3154 { PMDA_PMID(CLUSTER_NET_NETSTAT
,34), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3155 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3157 /* network.tcp.delayedacklost */
3158 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_DELAYEDACKLOST
],
3159 { PMDA_PMID(CLUSTER_NET_NETSTAT
,35), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3160 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3162 /* network.tcp.listenoverflows */
3163 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_LISTENOVERFLOWS
],
3164 { PMDA_PMID(CLUSTER_NET_NETSTAT
,36), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3165 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3167 /* network.tcp.listendrops */
3168 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_LISTENDROPS
],
3169 { PMDA_PMID(CLUSTER_NET_NETSTAT
,37), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3170 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3172 /* network.tcp.prequeued */
3173 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPPREQUEUED
],
3174 { PMDA_PMID(CLUSTER_NET_NETSTAT
,38), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3175 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3177 /* network.tcp.directcopyfrombacklog */
3178 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDIRECTCOPYFROMBACKLOG
],
3179 { PMDA_PMID(CLUSTER_NET_NETSTAT
,39), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3180 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3182 /* network.tcp.directcopyfromprequeue */
3183 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDIRECTCOPYFROMPREQUEUE
],
3184 { PMDA_PMID(CLUSTER_NET_NETSTAT
,40), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3185 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3187 /* network.tcp.prequeuedropped */
3188 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPPREQUEUEDROPPED
],
3189 { PMDA_PMID(CLUSTER_NET_NETSTAT
,41), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3190 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3192 /* network.tcp.hphits*/
3193 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPHPHITS
],
3194 { PMDA_PMID(CLUSTER_NET_NETSTAT
,42), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3195 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3197 /* network.tcp.hphitstouser */
3198 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPHPHITSTOUSER
],
3199 { PMDA_PMID(CLUSTER_NET_NETSTAT
,43), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3200 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3202 /* network.tcp.pureacks */
3203 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPPUREACKS
],
3204 { PMDA_PMID(CLUSTER_NET_NETSTAT
,44), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3205 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3207 /* network.tcp.hpacks */
3208 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPHPACKS
],
3209 { PMDA_PMID(CLUSTER_NET_NETSTAT
,45), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3210 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3212 /* network.tcp.renorecovery */
3213 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPRENORECOVERY
],
3214 { PMDA_PMID(CLUSTER_NET_NETSTAT
,46), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3215 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3217 /* network.tcp.sackrecovery */
3218 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSACKRECOVERY
],
3219 { PMDA_PMID(CLUSTER_NET_NETSTAT
,47), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3220 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3222 /* network.tcp.sackreneging */
3223 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSACKRENEGING
],
3224 { PMDA_PMID(CLUSTER_NET_NETSTAT
,48), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3225 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3227 /* network.tcp.fackreorder */
3228 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFACKREORDER
],
3229 { PMDA_PMID(CLUSTER_NET_NETSTAT
,49), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3230 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3232 /* network.tcp.sackreorder */
3233 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSACKREORDER
],
3234 { PMDA_PMID(CLUSTER_NET_NETSTAT
,50), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3235 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3237 /* network.tcp.renoreorder */
3238 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPRENOREORDER
],
3239 { PMDA_PMID(CLUSTER_NET_NETSTAT
,51), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3240 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3242 /* network.tcp.tsreorder */
3243 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPTSREORDER
],
3244 { PMDA_PMID(CLUSTER_NET_NETSTAT
,52), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3245 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3247 /* network.tcp.fullundo */
3248 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFULLUNDO
],
3249 { PMDA_PMID(CLUSTER_NET_NETSTAT
,53), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3250 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3252 /* network.tcp.partialundo */
3253 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPPARTIALUNDO
],
3254 { PMDA_PMID(CLUSTER_NET_NETSTAT
,54), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3255 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3257 /* network.tcp.dsackundo */
3258 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDSACKUNDO
],
3259 { PMDA_PMID(CLUSTER_NET_NETSTAT
,55), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3260 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3262 /* network.tcp.lossundo */
3263 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPLOSSUNDO
],
3264 { PMDA_PMID(CLUSTER_NET_NETSTAT
,56), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3265 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3267 /* network.tcp.lostretransmit */
3268 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPLOSTRETRANSMIT
],
3269 { PMDA_PMID(CLUSTER_NET_NETSTAT
,57), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3270 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3272 /* network.tcp.renofailures */
3273 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPRENOFAILURES
],
3274 { PMDA_PMID(CLUSTER_NET_NETSTAT
,58), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3275 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3277 /* network.tcp.sackfailures */
3278 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSACKFAILURES
],
3279 { PMDA_PMID(CLUSTER_NET_NETSTAT
,59), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3280 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3282 /* network.tcp.lossfailures */
3283 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPLOSSFAILURES
],
3284 { PMDA_PMID(CLUSTER_NET_NETSTAT
,60), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3285 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3287 /* network.tcp.fastretrans */
3288 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFASTRETRANS
],
3289 { PMDA_PMID(CLUSTER_NET_NETSTAT
,61), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3290 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3292 /* network.tcp.forwardretrans */
3293 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFORWARDRETRANS
],
3294 { PMDA_PMID(CLUSTER_NET_NETSTAT
,62), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3295 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3297 /* network.tcp.slowstartretrans */
3298 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSLOWSTARTRETRANS
],
3299 { PMDA_PMID(CLUSTER_NET_NETSTAT
,63), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3300 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3302 /* network.tcp.timeouts */
3303 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPTIMEOUTS
],
3304 { PMDA_PMID(CLUSTER_NET_NETSTAT
,64), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3305 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3307 /* network.tcp.lossprobes */
3308 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPLOSSPROBES
],
3309 { PMDA_PMID(CLUSTER_NET_NETSTAT
,65), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3310 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3312 /* network.tcp.lossproberecovery */
3313 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPLOSSPROBERECOVERY
],
3314 { PMDA_PMID(CLUSTER_NET_NETSTAT
,66), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3315 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3317 /* network.tcp.renorecoveryfail */
3318 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPRENORECOVERYFAIL
],
3319 { PMDA_PMID(CLUSTER_NET_NETSTAT
,67), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3320 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3322 /* network.tcp.sackrecoveryfail */
3323 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSACKRECOVERYFAIL
],
3324 { PMDA_PMID(CLUSTER_NET_NETSTAT
,68), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3325 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3327 /* network.tcp.schedulerfailed */
3328 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSCHEDULERFAILED
],
3329 { PMDA_PMID(CLUSTER_NET_NETSTAT
,69), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3330 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3332 /* network.tcp.rcvcollapsed */
3333 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPRCVCOLLAPSED
],
3334 { PMDA_PMID(CLUSTER_NET_NETSTAT
,70), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3335 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3337 /* network.tcp.dsackoldsent */
3338 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDSACKOLDSENT
],
3339 { PMDA_PMID(CLUSTER_NET_NETSTAT
,71), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3340 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3342 /* network.tcp.dsackofosent */
3343 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDSACKOFOSENT
],
3344 { PMDA_PMID(CLUSTER_NET_NETSTAT
,72), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3345 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3347 /* network.tcp.dsackrecv */
3348 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDSACKRECV
],
3349 { PMDA_PMID(CLUSTER_NET_NETSTAT
,73), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3350 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3352 /* network.tcp.dsackoforecv */
3353 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDSACKOFORECV
],
3354 { PMDA_PMID(CLUSTER_NET_NETSTAT
,74), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3355 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3357 /* network.tcp.abortondata */
3358 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPABORTONDATA
],
3359 { PMDA_PMID(CLUSTER_NET_NETSTAT
,75), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3360 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3362 /* network.tcp.abortonclose */
3363 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPABORTONCLOSE
],
3364 { PMDA_PMID(CLUSTER_NET_NETSTAT
,76), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3365 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3367 /* network.tcp.abortonmemory */
3368 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPABORTONMEMORY
],
3369 { PMDA_PMID(CLUSTER_NET_NETSTAT
,77), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3370 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3372 /* network.tcp.abortontimeout */
3373 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPABORTONTIMEOUT
],
3374 { PMDA_PMID(CLUSTER_NET_NETSTAT
,78), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3375 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3377 /* network.tcp.abortonlinger */
3378 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPABORTONLINGER
],
3379 { PMDA_PMID(CLUSTER_NET_NETSTAT
,79), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3380 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3382 /* network.tcp.abortfailed */
3383 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPABORTFAILED
],
3384 { PMDA_PMID(CLUSTER_NET_NETSTAT
,80), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3385 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3387 /* network.tcp.memorypressures */
3388 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPMEMORYPRESSURES
],
3389 { PMDA_PMID(CLUSTER_NET_NETSTAT
,81), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3390 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3392 /* network.tcp.sackdiscard */
3393 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSACKDISCARD
],
3394 { PMDA_PMID(CLUSTER_NET_NETSTAT
,82), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3395 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3397 /* network.tcp.dsackignoredold */
3398 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDSACKIGNOREDOLD
],
3399 { PMDA_PMID(CLUSTER_NET_NETSTAT
,83), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3400 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3402 /* network.tcp.dsackignorednoundo */
3403 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDSACKIGNOREDNOUNDO
],
3404 { PMDA_PMID(CLUSTER_NET_NETSTAT
,84), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3405 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3407 /* network.tcp.spuriousrtos */
3408 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSPURIOUSRTOS
],
3409 { PMDA_PMID(CLUSTER_NET_NETSTAT
,85), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3410 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3412 /* network.tcp.md5notfound */
3413 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPMD5NOTFOUND
],
3414 { PMDA_PMID(CLUSTER_NET_NETSTAT
,86), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3415 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3417 /* network.tcp.md5unexpected */
3418 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPMD5UNEXPECTED
],
3419 { PMDA_PMID(CLUSTER_NET_NETSTAT
,87), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3420 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3422 /* network.tcp.sackshifted */
3423 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_SACKSHIFTED
],
3424 { PMDA_PMID(CLUSTER_NET_NETSTAT
,88), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3425 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3427 /* network.tcp.sackmerged */
3428 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_SACKMERGED
],
3429 { PMDA_PMID(CLUSTER_NET_NETSTAT
,89), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3430 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3432 /* network.tcp.sackshiftfallback */
3433 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_SACKSHIFTFALLBACK
],
3434 { PMDA_PMID(CLUSTER_NET_NETSTAT
,90), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3435 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3437 /* network.tcp.backlogdrop */
3438 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPBACKLOGDROP
],
3439 { PMDA_PMID(CLUSTER_NET_NETSTAT
,91), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3440 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3442 /* network.tcp.minttldrop */
3443 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPMINTTLDROP
],
3444 { PMDA_PMID(CLUSTER_NET_NETSTAT
,92), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3445 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3447 /* network.tcp.deferacceptdrop */
3448 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPDEFERACCEPTDROP
],
3449 { PMDA_PMID(CLUSTER_NET_NETSTAT
,93), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3450 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3452 /* network.tcp.iprpfilter */
3453 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_IPRPFILTER
],
3454 { PMDA_PMID(CLUSTER_NET_NETSTAT
,94), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3455 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3457 /* network.tcp.timewaitoverflow */
3458 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPTIMEWAITOVERFLOW
],
3459 { PMDA_PMID(CLUSTER_NET_NETSTAT
,95), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3460 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3462 /* network.tcp.reqqfulldocookies */
3463 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPREQQFULLDOCOOKIES
],
3464 { PMDA_PMID(CLUSTER_NET_NETSTAT
,96), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3465 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3467 /* network.tcp.reqqfulldrop */
3468 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPREQQFULLDROP
],
3469 { PMDA_PMID(CLUSTER_NET_NETSTAT
,97), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3470 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3472 /* network.tcp.retransfail */
3473 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPRETRANSFAIL
],
3474 { PMDA_PMID(CLUSTER_NET_NETSTAT
,98), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3475 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3477 /* network.tcp.rcvcoalesce */
3478 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPRCVCOALESCE
],
3479 { PMDA_PMID(CLUSTER_NET_NETSTAT
,99), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3480 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3482 /* network.tcp.ofoqueue */
3483 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPOFOQUEUE
],
3484 { PMDA_PMID(CLUSTER_NET_NETSTAT
,100), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3485 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3487 /* network.tcp.ofodrop */
3488 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPOFODROP
],
3489 { PMDA_PMID(CLUSTER_NET_NETSTAT
,101), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3490 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3492 /* network.tcp.ofomerge */
3493 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPOFOMERGE
],
3494 { PMDA_PMID(CLUSTER_NET_NETSTAT
,102), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3495 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3497 /* network.tcp.challengeack */
3498 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPCHALLENGEACK
],
3499 { PMDA_PMID(CLUSTER_NET_NETSTAT
,103), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3500 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3502 /* network.tcp.synchallenge */
3503 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSYNCHALLENGE
],
3504 { PMDA_PMID(CLUSTER_NET_NETSTAT
,104), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3505 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3507 /* network.tcp.fastopenactive */
3508 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFASTOPENACTIVE
],
3509 { PMDA_PMID(CLUSTER_NET_NETSTAT
,105), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3510 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3512 /* network.tcp.fastopenactivefail */
3513 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFASTOPENACTIVEFAIL
],
3514 { PMDA_PMID(CLUSTER_NET_NETSTAT
,106), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3515 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3517 /* network.tcp.fastopenpassive */
3518 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFASTOPENPASSIVE
],
3519 { PMDA_PMID(CLUSTER_NET_NETSTAT
,107), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3520 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3522 /* network.tcp.fastopenpassivefail */
3523 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFASTOPENPASSIVEFAIL
],
3524 { PMDA_PMID(CLUSTER_NET_NETSTAT
,108), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3525 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3527 /* network.tcp.fastopenlistenoverflow */
3528 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFASTOPENLISTENOVERFLOW
],
3529 { PMDA_PMID(CLUSTER_NET_NETSTAT
,109), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3530 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3532 /* network.tcp.fastopencookiereqd */
3533 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFASTOPENCOOKIEREQD
],
3534 { PMDA_PMID(CLUSTER_NET_NETSTAT
,110), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3535 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3537 /* network.tcp.spuriousrtxhostqueues */
3538 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSPURIOUS_RTX_HOSTQUEUES
],
3539 { PMDA_PMID(CLUSTER_NET_NETSTAT
,111), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3540 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3542 /* network.tcp.busypollrxpackets */
3543 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_BUSYPOLLRXPACKETS
],
3544 { PMDA_PMID(CLUSTER_NET_NETSTAT
,112), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3545 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3547 /* network.tcp.autocorking */
3548 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPAUTOCORKING
],
3549 { PMDA_PMID(CLUSTER_NET_NETSTAT
,113), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3550 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3552 /* network.tcp.fromzerowindowadv */
3553 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPFROMZEROWINDOWADV
],
3554 { PMDA_PMID(CLUSTER_NET_NETSTAT
,114), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3555 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3557 /* network.tcp.tozerowindowadv */
3558 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPTOZEROWINDOWADV
],
3559 { PMDA_PMID(CLUSTER_NET_NETSTAT
,115), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3560 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3562 /* network.tcp.wantzerowindowadv */
3563 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPWANTZEROWINDOWADV
],
3564 { PMDA_PMID(CLUSTER_NET_NETSTAT
,116), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3565 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3567 /* network.tcp.synretrans */
3568 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPSYNRETRANS
],
3569 { PMDA_PMID(CLUSTER_NET_NETSTAT
,117), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3570 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3572 /* network.tcp.origdatasent */
3573 { &_pm_proc_net_netstat
.tcp
[_PM_NETSTAT_TCPEXT_TCPORIGDATASENT
],
3574 { PMDA_PMID(CLUSTER_NET_NETSTAT
,118), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
3575 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3579 { PMDA_PMID(CLUSTER_SCSI
,0), PM_TYPE_STRING
, SCSI_INDOM
, PM_SEM_DISCRETE
,
3580 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3583 * /proc/zoneinfo cluster
3586 /* mem.zoneinfo.free */
3588 { PMDA_PMID(CLUSTER_ZONEINFO
,0), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3589 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3591 /* mem.zoneinfo.min */
3593 { PMDA_PMID(CLUSTER_ZONEINFO
,1), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3594 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3596 /* mem.zoneinfo.low */
3598 { PMDA_PMID(CLUSTER_ZONEINFO
,2), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3599 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3601 /* mem.zoneinfo.high */
3603 { PMDA_PMID(CLUSTER_ZONEINFO
,3), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3604 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3606 /* mem.zoneinfo.scanned */
3608 { PMDA_PMID(CLUSTER_ZONEINFO
,4), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3609 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3611 /* mem.zoneinfo.spanned */
3613 { PMDA_PMID(CLUSTER_ZONEINFO
,5), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3614 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3616 /* mem.zoneinfo.present */
3618 { PMDA_PMID(CLUSTER_ZONEINFO
,6), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3619 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3621 /* mem.zoneinfo.managed */
3623 { PMDA_PMID(CLUSTER_ZONEINFO
,7), PM_TYPE_U64
, ZONEINFO_INDOM
, PM_SEM_INSTANT
,
3624 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3626 /* mem.zoneinfo.protection */
3628 { PMDA_PMID(CLUSTER_ZONEINFO_PROTECTION
,0), PM_TYPE_U64
, ZONEINFO_PROTECTION_INDOM
, PM_SEM_INSTANT
,
3629 PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
3632 * /proc/cpuinfo cluster (cpu indom)
3635 /* hinv.cpu.clock */
3637 { PMDA_PMID(CLUSTER_CPUINFO
, 0), PM_TYPE_FLOAT
, CPU_INDOM
, PM_SEM_DISCRETE
,
3638 PMDA_PMUNITS(0,0,1,0,-6,0) } },
3640 /* hinv.cpu.vendor */
3642 { PMDA_PMID(CLUSTER_CPUINFO
, 1), PM_TYPE_STRING
, CPU_INDOM
, PM_SEM_DISCRETE
,
3643 PMDA_PMUNITS(0,0,0,0,0,0) } },
3645 /* hinv.cpu.model */
3647 { PMDA_PMID(CLUSTER_CPUINFO
, 2), PM_TYPE_STRING
, CPU_INDOM
, PM_SEM_DISCRETE
,
3648 PMDA_PMUNITS(0,0,0,0,0,0) } },
3650 /* hinv.cpu.stepping */
3652 { PMDA_PMID(CLUSTER_CPUINFO
, 3), PM_TYPE_STRING
, CPU_INDOM
, PM_SEM_DISCRETE
,
3653 PMDA_PMUNITS(0,0,0,0,0,0) } },
3655 /* hinv.cpu.cache */
3657 { PMDA_PMID(CLUSTER_CPUINFO
, 4), PM_TYPE_U32
, CPU_INDOM
, PM_SEM_DISCRETE
,
3658 PMDA_PMUNITS(0,0,0,PM_SPACE_KBYTE
,0,0) } },
3660 /* hinv.cpu.bogomips */
3662 { PMDA_PMID(CLUSTER_CPUINFO
, 5), PM_TYPE_FLOAT
, CPU_INDOM
, PM_SEM_DISCRETE
,
3663 PMDA_PMUNITS(0,0,0,0,0,0) } },
3665 /* hinv.map.cpu_num */
3667 { PMDA_PMID(CLUSTER_CPUINFO
, 6), PM_TYPE_U32
, CPU_INDOM
, PM_SEM_DISCRETE
,
3668 PMDA_PMUNITS(0,0,0,0,0,0) } },
3672 { PMDA_PMID(CLUSTER_CPUINFO
, 7), PM_TYPE_STRING
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3673 PMDA_PMUNITS(0,0,0,0,0,0) } },
3675 /* hinv.map.cpu_node */
3677 { PMDA_PMID(CLUSTER_CPUINFO
, 8), PM_TYPE_U32
, CPU_INDOM
, PM_SEM_DISCRETE
,
3678 PMDA_PMUNITS(0,0,0,0,0,0) } },
3680 /* hinv.cpu.model_name */
3682 { PMDA_PMID(CLUSTER_CPUINFO
, 9), PM_TYPE_STRING
, CPU_INDOM
, PM_SEM_DISCRETE
,
3683 PMDA_PMUNITS(0,0,0,0,0,0) } },
3685 /* hinv.cpu.flags */
3687 { PMDA_PMID(CLUSTER_CPUINFO
, 10), PM_TYPE_STRING
, CPU_INDOM
, PM_SEM_DISCRETE
,
3688 PMDA_PMUNITS(0,0,0,0,0,0) } },
3690 /* hinv.cpu.cache_alignment */
3692 { PMDA_PMID(CLUSTER_CPUINFO
, 11), PM_TYPE_U32
, CPU_INDOM
, PM_SEM_DISCRETE
,
3693 PMDA_PMUNITS(0,0,0,PM_SPACE_BYTE
,0,0) } },
3696 * sysfs device state cluster
3699 /* hinv.cpu.online */
3701 { PMDA_PMID(CLUSTER_SYSFS_DEVICES
, 0), PM_TYPE_U32
, CPU_INDOM
, PM_SEM_INSTANT
,
3702 PMDA_PMUNITS(0,0,0,0,0,0) } },
3704 /* hinv.node.online */
3706 { PMDA_PMID(CLUSTER_SYSFS_DEVICES
, 1), PM_TYPE_U32
, NODE_INDOM
, PM_SEM_INSTANT
,
3707 PMDA_PMUNITS(0,0,0,0,0,0) } },
3710 * semaphore limits cluster
3711 * Cluster added by Mike Mason <mmlnx@us.ibm.com>
3714 /* ipc.sem.max_semmap */
3716 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3717 PMDA_PMUNITS(0,0,0,0,0,0)}},
3719 /* ipc.sem.max_semid */
3721 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3722 PMDA_PMUNITS(0,0,0,0,0,0)}},
3724 /* ipc.sem.max_sem */
3726 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 2), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3727 PMDA_PMUNITS(0,0,0,0,0,0)}},
3729 /* ipc.sem.num_undo */
3731 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 3), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3732 PMDA_PMUNITS(0,0,0,0,0,0)}},
3734 /* ipc.sem.max_perid */
3736 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 4), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3737 PMDA_PMUNITS(0,0,0,0,0,0)}},
3739 /* ipc.sem.max_ops */
3741 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 5), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3742 PMDA_PMUNITS(0,0,0,0,0,0)}},
3744 /* ipc.sem.max_undoent */
3746 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 6), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3747 PMDA_PMUNITS(0,0,0,0,0,0)}},
3749 /* ipc.sem.sz_semundo */
3751 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 7), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3752 PMDA_PMUNITS(0,0,0,0,0,0)}},
3754 /* ipc.sem.max_semval */
3756 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 8), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3757 PMDA_PMUNITS(0,0,0,0,0,0)}},
3759 /* ipc.sem.max_exit */
3761 { PMDA_PMID(CLUSTER_SEM_LIMITS
, 9), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3762 PMDA_PMUNITS(0,0,0,0,0,0)}},
3764 /* ipc.sem.used_sem */
3766 { PMDA_PMID(CLUSTER_SEM_INFO
, 0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3767 PMDA_PMUNITS(0,0,0,0,0,0)}},
3769 /* ipc.sem.tot_sem */
3771 { PMDA_PMID(CLUSTER_SEM_INFO
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3772 PMDA_PMUNITS(0,0,0,0,0,0)}},
3775 * message limits cluster
3776 * Cluster added by Mike Mason <mmlnx@us.ibm.com>
3779 /* ipc.msg.sz_pool */
3781 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3782 PMDA_PMUNITS(1,0,0, PM_SPACE_KBYTE
,0,0)}},
3784 /* ipc.msg.mapent */
3786 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3787 PMDA_PMUNITS(0,0,0,0,0,0)}},
3789 /* ipc.msg.max_msgsz */
3791 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 2), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3792 PMDA_PMUNITS(0,0,0,0,0,0)}},
3794 /* ipc.msg.max_defmsgq */
3796 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 3), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3797 PMDA_PMUNITS(0,0,0,0,0,0)}},
3799 /* ipc.msg.max_msgqid */
3801 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 4), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3802 PMDA_PMUNITS(0,0,0,0,0,0)}},
3804 /* ipc.msg.max_msgseg */
3806 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 5), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3807 PMDA_PMUNITS(0,0,0, 0,0,0)}},
3809 /* ipc.msg.max_smsghdr */
3811 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 6), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3812 PMDA_PMUNITS(0,0,0,0,0,0)}},
3814 /* ipc.msg.max_seg */
3816 { PMDA_PMID(CLUSTER_MSG_LIMITS
, 7), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3817 PMDA_PMUNITS(0,0,0,0,0,0)}},
3819 /* ipc.msg.used_queues */
3821 { PMDA_PMID(CLUSTER_MSG_INFO
, 0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3822 PMDA_PMUNITS(0,0,0,0,0,0)}},
3824 /* ipc.msg.tot_msg */
3826 { PMDA_PMID(CLUSTER_MSG_INFO
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3827 PMDA_PMUNITS(0,0,0,0,0,0)}},
3829 /* ipc.msg.tot_bytes */
3831 { PMDA_PMID(CLUSTER_MSG_INFO
, 2), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3832 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0)}},
3836 { PMDA_PMID(CLUSTER_SHM_INFO
, 0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3837 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0)}},
3841 { PMDA_PMID(CLUSTER_SHM_INFO
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3842 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0)}},
3846 { PMDA_PMID(CLUSTER_SHM_INFO
, 2), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3847 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0)}},
3849 /* ipc.shm.used_ids */
3851 { PMDA_PMID(CLUSTER_SHM_INFO
, 3), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3852 PMDA_PMUNITS(0,0,0,0,0,0)}},
3854 /* ipc.shm.swap_attempts */
3856 { PMDA_PMID(CLUSTER_SHM_INFO
, 4), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3857 PMDA_PMUNITS(0,0,0,0,0,0)}},
3859 /* ipc.shm.swap_successes */
3861 { PMDA_PMID(CLUSTER_SHM_INFO
, 5), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3862 PMDA_PMUNITS(0,0,0,0,0,0)}},
3865 * shared memory limits cluster
3866 * Cluster added by Mike Mason <mmlnx@us.ibm.com>
3869 /* ipc.shm.max_segsz */
3871 { PMDA_PMID(CLUSTER_SHM_LIMITS
, 0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3872 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0)}},
3874 /* ipc.shm.min_segsz */
3876 { PMDA_PMID(CLUSTER_SHM_LIMITS
, 1), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3877 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0)}},
3879 /* ipc.shm.max_seg */
3881 { PMDA_PMID(CLUSTER_SHM_LIMITS
, 2), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3882 PMDA_PMUNITS(0,0,0,0,0,0)}},
3884 /* ipc.shm.max_segproc */
3886 { PMDA_PMID(CLUSTER_SHM_LIMITS
, 3), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3887 PMDA_PMUNITS(0,0,0,0,0,0)}},
3889 /* ipc.shm.max_shmsys */
3891 { PMDA_PMID(CLUSTER_SHM_LIMITS
, 4), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_DISCRETE
,
3892 PMDA_PMUNITS(0,0,0,0,0,0)}},
3895 * shared memory stat cluster
3896 * Cluster added by wu liming <wulm.fnst@cn.fujitsu.com>
3901 { PMDA_PMID(CLUSTER_SHM_STAT
,0), PM_TYPE_STRING
, IPC_STAT_INDOM
, PM_SEM_DISCRETE
,
3902 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3906 { PMDA_PMID(CLUSTER_SHM_STAT
,1), PM_TYPE_STRING
, IPC_STAT_INDOM
, PM_SEM_DISCRETE
,
3907 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3911 { PMDA_PMID(CLUSTER_SHM_STAT
,2), PM_TYPE_U32
, IPC_STAT_INDOM
, PM_SEM_INSTANT
,
3912 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3916 { PMDA_PMID(CLUSTER_SHM_STAT
,3), PM_TYPE_U32
, IPC_STAT_INDOM
, PM_SEM_DISCRETE
,
3917 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
3919 /* ipc.shm.nattch */
3921 { PMDA_PMID(CLUSTER_SHM_STAT
,4), PM_TYPE_U32
, IPC_STAT_INDOM
, PM_SEM_INSTANT
,
3922 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3924 /* ipc.shm.status */
3926 { PMDA_PMID(CLUSTER_SHM_STAT
,5), PM_TYPE_STRING
, IPC_STAT_INDOM
, PM_SEM_INSTANT
,
3927 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3930 * message queues stat cluster
3935 { PMDA_PMID(CLUSTER_MSG_STAT
,0), PM_TYPE_STRING
, IPC_MSG_INDOM
, PM_SEM_DISCRETE
,
3936 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3940 { PMDA_PMID(CLUSTER_MSG_STAT
,1), PM_TYPE_STRING
, IPC_MSG_INDOM
, PM_SEM_DISCRETE
,
3941 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3945 { PMDA_PMID(CLUSTER_MSG_STAT
,2), PM_TYPE_U32
, IPC_MSG_INDOM
, PM_SEM_INSTANT
,
3946 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3950 { PMDA_PMID(CLUSTER_MSG_STAT
,3), PM_TYPE_U32
, IPC_MSG_INDOM
, PM_SEM_DISCRETE
,
3951 PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
3953 /* ipc.msg.messages */
3955 { PMDA_PMID(CLUSTER_MSG_STAT
,4), PM_TYPE_U32
, IPC_MSG_INDOM
, PM_SEM_INSTANT
,
3956 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3959 * semaphore arrays stat cluster
3964 { PMDA_PMID(CLUSTER_SEM_STAT
,0), PM_TYPE_STRING
, IPC_SEM_INDOM
, PM_SEM_DISCRETE
,
3965 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3969 { PMDA_PMID(CLUSTER_SEM_STAT
,1), PM_TYPE_STRING
, IPC_SEM_INDOM
, PM_SEM_DISCRETE
,
3970 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3974 { PMDA_PMID(CLUSTER_SEM_STAT
,2), PM_TYPE_U32
, IPC_SEM_INDOM
, PM_SEM_INSTANT
,
3975 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3979 { PMDA_PMID(CLUSTER_SEM_STAT
,3), PM_TYPE_U32
, IPC_SEM_INDOM
, PM_SEM_INSTANT
,
3980 PMDA_PMUNITS(0,0,0,0,0,0) }, },
3985 /* mem.ksm.full_scans */
3987 { PMDA_PMID(CLUSTER_KSM_INFO
, 0), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3988 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
3990 /* mem.ksm.merge_across_nodes */
3992 { PMDA_PMID(CLUSTER_KSM_INFO
, 1), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3993 PMDA_PMUNITS(0,0,0,0,0,0)}},
3995 /* mem.ksm.pages_shared */
3997 { PMDA_PMID(CLUSTER_KSM_INFO
, 2), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
3998 PMDA_PMUNITS(0,0,0,0,0,0)}},
4000 /* mem.ksm.pages_sharing */
4002 { PMDA_PMID(CLUSTER_KSM_INFO
, 3), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4003 PMDA_PMUNITS(0,0,0,0,0,0)}},
4005 /* mem.ksm.pages_to_scan */
4007 { PMDA_PMID(CLUSTER_KSM_INFO
, 4), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4008 PMDA_PMUNITS(0,0,0,0,0,0)}},
4010 /* mem.ksm.pages_unshared */
4012 { PMDA_PMID(CLUSTER_KSM_INFO
, 5), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4013 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) } },
4015 /* mem.ksm.pages_volatile */
4017 { PMDA_PMID(CLUSTER_KSM_INFO
, 6), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4018 PMDA_PMUNITS(0,0,0,0,0,0)}},
4020 /* mem.ksm.run_state */
4022 { PMDA_PMID(CLUSTER_KSM_INFO
, 7), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4023 PMDA_PMUNITS(0,0,0,0,0,0)}},
4025 /* mem.ksm.sleep_time */
4027 { PMDA_PMID(CLUSTER_KSM_INFO
, 8), KERNEL_ULONG
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4028 PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0)}},
4031 * number of users cluster
4034 /* kernel.all.nusers */
4036 { PMDA_PMID(CLUSTER_NUSERS
, 0), PM_TYPE_U32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4037 PMDA_PMUNITS(0,0,0,0,0,0)}},
4040 * /proc/sys/fs vfs cluster
4044 { &proc_sys_fs
.fs_files_count
,
4045 { PMDA_PMID(CLUSTER_VFS
,0), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4046 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4047 { &proc_sys_fs
.fs_files_free
,
4048 { PMDA_PMID(CLUSTER_VFS
,1), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4049 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4050 { &proc_sys_fs
.fs_files_max
,
4051 { PMDA_PMID(CLUSTER_VFS
,2), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4052 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4053 { &proc_sys_fs
.fs_inodes_count
,
4054 { PMDA_PMID(CLUSTER_VFS
,3), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4055 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4056 { &proc_sys_fs
.fs_inodes_free
,
4057 { PMDA_PMID(CLUSTER_VFS
,4), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4058 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4059 { &proc_sys_fs
.fs_dentry_count
,
4060 { PMDA_PMID(CLUSTER_VFS
,5), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4061 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4062 { &proc_sys_fs
.fs_dentry_free
,
4063 { PMDA_PMID(CLUSTER_VFS
,6), PM_TYPE_32
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4064 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4067 * mem.vmstat cluster
4070 /* mem.vmstat.nr_dirty */
4071 { &_pm_proc_vmstat
.nr_dirty
,
4072 {PMDA_PMID(28,0), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4073 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4075 /* mem.vmstat.nr_writeback */
4076 { &_pm_proc_vmstat
.nr_writeback
,
4077 {PMDA_PMID(28,1), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4078 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4080 /* mem.vmstat.nr_unstable */
4081 { &_pm_proc_vmstat
.nr_unstable
,
4082 {PMDA_PMID(28,2), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4083 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4085 /* mem.vmstat.nr_page_table_pages */
4086 { &_pm_proc_vmstat
.nr_page_table_pages
,
4087 {PMDA_PMID(28,3), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4088 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4090 /* mem.vmstat.nr_mapped */
4091 { &_pm_proc_vmstat
.nr_mapped
,
4092 {PMDA_PMID(28,4), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4093 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4095 /* mem.vmstat.nr_slab */
4096 { &_pm_proc_vmstat
.nr_slab
,
4097 {PMDA_PMID(28,5), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4098 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4100 /* mem.vmstat.pgpgin */
4101 { &_pm_proc_vmstat
.pgpgin
,
4102 {PMDA_PMID(28,6), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4103 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4105 /* mem.vmstat.pgpgout */
4106 { &_pm_proc_vmstat
.pgpgout
,
4107 {PMDA_PMID(28,7), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4108 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4110 /* mem.vmstat.pswpin */
4111 { &_pm_proc_vmstat
.pswpin
,
4112 {PMDA_PMID(28,8), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4113 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4115 /* mem.vmstat.pswpout */
4116 { &_pm_proc_vmstat
.pswpout
,
4117 {PMDA_PMID(28,9), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4118 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4120 /* mem.vmstat.pgalloc_high */
4121 { &_pm_proc_vmstat
.pgalloc_high
,
4122 {PMDA_PMID(28,10), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4123 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4125 /* mem.vmstat.pgalloc_normal */
4126 { &_pm_proc_vmstat
.pgalloc_normal
,
4127 {PMDA_PMID(28,11), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4128 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4130 /* mem.vmstat.pgalloc_dma */
4131 { &_pm_proc_vmstat
.pgalloc_dma
,
4132 {PMDA_PMID(28,12), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4133 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4135 /* mem.vmstat.pgfree */
4136 { &_pm_proc_vmstat
.pgfree
,
4137 {PMDA_PMID(28,13), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4138 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4140 /* mem.vmstat.pgactivate */
4141 { &_pm_proc_vmstat
.pgactivate
,
4142 {PMDA_PMID(28,14), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4143 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4145 /* mem.vmstat.pgdeactivate */
4146 { &_pm_proc_vmstat
.pgdeactivate
,
4147 {PMDA_PMID(28,15), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4148 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4150 /* mem.vmstat.pgfault */
4151 { &_pm_proc_vmstat
.pgfault
,
4152 {PMDA_PMID(28,16), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4153 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4155 /* mem.vmstat.pgmajfault */
4156 { &_pm_proc_vmstat
.pgmajfault
,
4157 {PMDA_PMID(28,17), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4158 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4160 /* mem.vmstat.pgrefill_high */
4161 { &_pm_proc_vmstat
.pgrefill_high
,
4162 {PMDA_PMID(28,18), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4163 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4165 /* mem.vmstat.pgrefill_normal */
4166 { &_pm_proc_vmstat
.pgrefill_normal
,
4167 {PMDA_PMID(28,19), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4168 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4170 /* mem.vmstat.pgrefill_dma */
4171 { &_pm_proc_vmstat
.pgrefill_dma
,
4172 {PMDA_PMID(28,20), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4173 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4175 /* mem.vmstat.pgsteal_high */
4176 { &_pm_proc_vmstat
.pgsteal_high
,
4177 {PMDA_PMID(28,21), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4178 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4180 /* mem.vmstat.pgsteal_normal */
4181 { &_pm_proc_vmstat
.pgsteal_normal
,
4182 {PMDA_PMID(28,22), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4183 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4185 /* mem.vmstat.pgsteal_dma */
4186 { &_pm_proc_vmstat
.pgsteal_dma
,
4187 {PMDA_PMID(28,23), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4188 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4190 /* mem.vmstat.pgscan_kswapd_high */
4191 { &_pm_proc_vmstat
.pgscan_kswapd_high
,
4192 {PMDA_PMID(28,24), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4193 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4195 /* mem.vmstat.pgscan_kswapd_normal */
4196 { &_pm_proc_vmstat
.pgscan_kswapd_normal
,
4197 {PMDA_PMID(28,25), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4198 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4200 /* mem.vmstat.pgscan_kswapd_dma */
4201 { &_pm_proc_vmstat
.pgscan_kswapd_dma
,
4202 {PMDA_PMID(28,26), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4203 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4205 /* mem.vmstat.pgscan_direct_high */
4206 { &_pm_proc_vmstat
.pgscan_direct_high
,
4207 {PMDA_PMID(28,27), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4208 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4210 /* mem.vmstat.pgscan_direct_normal */
4211 { &_pm_proc_vmstat
.pgscan_direct_normal
,
4212 {PMDA_PMID(28,28), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4213 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4215 /* mem.vmstat.pgscan_direct_dma */
4216 { &_pm_proc_vmstat
.pgscan_direct_dma
,
4217 {PMDA_PMID(28,29), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4218 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4220 /* mem.vmstat.pginodesteal */
4221 { &_pm_proc_vmstat
.pginodesteal
,
4222 {PMDA_PMID(28,30), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4223 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4225 /* mem.vmstat.slabs_scanned */
4226 { &_pm_proc_vmstat
.slabs_scanned
,
4227 {PMDA_PMID(28,31), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4228 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4230 /* mem.vmstat.kswapd_steal */
4231 { &_pm_proc_vmstat
.kswapd_steal
,
4232 {PMDA_PMID(28,32), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4233 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4235 /* mem.vmstat.kswapd_inodesteal */
4236 { &_pm_proc_vmstat
.kswapd_inodesteal
,
4237 {PMDA_PMID(28,33), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4238 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4240 /* mem.vmstat.pageoutrun */
4241 { &_pm_proc_vmstat
.pageoutrun
,
4242 {PMDA_PMID(28,34), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4243 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4245 /* mem.vmstat.allocstall */
4246 { &_pm_proc_vmstat
.allocstall
,
4247 {PMDA_PMID(28,35), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4248 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4250 /* mem.vmstat.pgrotated */
4251 { &_pm_proc_vmstat
.pgrotated
,
4252 {PMDA_PMID(28,36), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4253 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4255 /* mem.vmstat.nr_slab_reclaimable */
4256 { &_pm_proc_vmstat
.nr_slab_reclaimable
,
4257 {PMDA_PMID(28,37), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4258 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4260 /* mem.vmstat.nr_slab_unreclaimable */
4261 { &_pm_proc_vmstat
.nr_slab_unreclaimable
,
4262 {PMDA_PMID(28,38), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4263 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4265 /* mem.vmstat.nr_anon_pages */
4266 { &_pm_proc_vmstat
.nr_anon_pages
,
4267 {PMDA_PMID(28,39), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4268 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4270 /* mem.vmstat.nr_bounce */
4271 { &_pm_proc_vmstat
.nr_bounce
,
4272 {PMDA_PMID(28,40), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4273 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4275 /* mem.vmstat.nr_file_pages */
4276 { &_pm_proc_vmstat
.nr_file_pages
,
4277 {PMDA_PMID(28,41), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4278 PMDA_PMUNITS(0,0,0,0,0,0) }, },
4280 /* mem.vmstat.nr_vmscan_write */
4281 { &_pm_proc_vmstat
.nr_vmscan_write
,
4282 {PMDA_PMID(28,42), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4283 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4285 /* mem.vmstat.htlb_buddy_alloc_fail */
4286 { &_pm_proc_vmstat
.htlb_buddy_alloc_fail
,
4287 {PMDA_PMID(28,43), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4288 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4290 /* mem.vmstat.htlb_buddy_alloc_success */
4291 { &_pm_proc_vmstat
.htlb_buddy_alloc_success
,
4292 {PMDA_PMID(28,44), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4293 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4295 /* mem.vmstat.nr_active_anon */
4296 { &_pm_proc_vmstat
.nr_active_anon
,
4297 {PMDA_PMID(28,45), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4298 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4300 /* mem.vmstat.nr_active_file */
4301 { &_pm_proc_vmstat
.nr_active_file
,
4302 {PMDA_PMID(28,46), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4303 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4305 /* mem.vmstat.nr_free_pages */
4306 { &_pm_proc_vmstat
.nr_free_pages
,
4307 {PMDA_PMID(28,47), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4308 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4310 /* mem.vmstat.nr_inactive_anon */
4311 { &_pm_proc_vmstat
.nr_inactive_anon
,
4312 {PMDA_PMID(28,48), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4313 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4315 /* mem.vmstat.nr_inactive_file */
4316 { &_pm_proc_vmstat
.nr_inactive_file
,
4317 {PMDA_PMID(28,49), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4318 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4320 /* mem.vmstat.nr_isolated_anon */
4321 { &_pm_proc_vmstat
.nr_isolated_anon
,
4322 {PMDA_PMID(28,50), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4323 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4325 /* mem.vmstat.nr_isolated_file */
4326 { &_pm_proc_vmstat
.nr_isolated_file
,
4327 {PMDA_PMID(28,51), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4328 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4330 /* mem.vmstat.nr_kernel_stack */
4331 { &_pm_proc_vmstat
.nr_kernel_stack
,
4332 {PMDA_PMID(28,52), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4333 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4335 /* mem.vmstat.nr_mlock */
4336 { &_pm_proc_vmstat
.nr_mlock
,
4337 {PMDA_PMID(28,53), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4338 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4340 /* mem.vmstat.nr_shmem */
4341 { &_pm_proc_vmstat
.nr_shmem
,
4342 {PMDA_PMID(28,54), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4343 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4345 /* mem.vmstat.nr_unevictable */
4346 { &_pm_proc_vmstat
.nr_unevictable
,
4347 {PMDA_PMID(28,55), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4348 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4350 /* mem.vmstat.nr_writeback_temp */
4351 { &_pm_proc_vmstat
.nr_writeback_temp
,
4352 {PMDA_PMID(28,56), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4353 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4355 /* mem.vmstat.compact_blocks_moved */
4356 { &_pm_proc_vmstat
.compact_blocks_moved
,
4357 {PMDA_PMID(28,57), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4358 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4360 /* mem.vmstat.compact_fail */
4361 { &_pm_proc_vmstat
.compact_fail
,
4362 {PMDA_PMID(28,58), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4363 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4365 /* mem.vmstat.compact_pagemigrate_failed */
4366 { &_pm_proc_vmstat
.compact_pagemigrate_failed
,
4367 {PMDA_PMID(28,59), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4368 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4370 /* mem.vmstat.compact_pages_moved */
4371 { &_pm_proc_vmstat
.compact_pages_moved
,
4372 {PMDA_PMID(28,60), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4373 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4375 /* mem.vmstat.compact_stall */
4376 { &_pm_proc_vmstat
.compact_stall
,
4377 {PMDA_PMID(28,61), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4378 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4380 /* mem.vmstat.compact_success */
4381 { &_pm_proc_vmstat
.compact_success
,
4382 {PMDA_PMID(28,62), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4383 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4385 /* mem.vmstat.pgalloc_dma32 */
4386 { &_pm_proc_vmstat
.pgalloc_dma32
,
4387 {PMDA_PMID(28,63), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4388 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4390 /* mem.vmstat.pgalloc_movable */
4391 { &_pm_proc_vmstat
.pgalloc_movable
,
4392 {PMDA_PMID(28,64), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4393 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4395 /* mem.vmstat.pgrefill_dma32 */
4396 { &_pm_proc_vmstat
.pgrefill_dma32
,
4397 {PMDA_PMID(28,65), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4398 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4400 /* mem.vmstat.pgrefill_movable */
4401 { &_pm_proc_vmstat
.pgrefill_movable
,
4402 {PMDA_PMID(28,66), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4403 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4405 /* mem.vmstat.pgscan_direct_dma32 */
4406 { &_pm_proc_vmstat
.pgscan_direct_dma32
,
4407 {PMDA_PMID(28,67), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4408 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4410 /* mem.vmstat.pgscan_direct_movable */
4411 { &_pm_proc_vmstat
.pgscan_direct_movable
,
4412 {PMDA_PMID(28,68), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4413 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4415 /* mem.vmstat.pgscan_kswapd_dma32 */
4416 { &_pm_proc_vmstat
.pgscan_kswapd_dma32
,
4417 {PMDA_PMID(28,69), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4418 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4420 /* mem.vmstat.pgscan_kswapd_movable */
4421 { &_pm_proc_vmstat
.pgscan_kswapd_movable
,
4422 {PMDA_PMID(28,70), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4423 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4425 /* mem.vmstat.pgsteal_dma32 */
4426 { &_pm_proc_vmstat
.pgsteal_dma32
,
4427 {PMDA_PMID(28,71), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4428 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4430 /* mem.vmstat.pgsteal_movable */
4431 { &_pm_proc_vmstat
.pgsteal_movable
,
4432 {PMDA_PMID(28,72), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4433 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4435 /* mem.vmstat.thp_fault_alloc */
4436 { &_pm_proc_vmstat
.thp_fault_alloc
,
4437 {PMDA_PMID(28,73), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4438 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4440 /* mem.vmstat.thp_fault_fallback */
4441 { &_pm_proc_vmstat
.thp_fault_fallback
,
4442 {PMDA_PMID(28,74), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4443 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4445 /* mem.vmstat.thp_collapse_alloc */
4446 { &_pm_proc_vmstat
.thp_collapse_alloc
,
4447 {PMDA_PMID(28,75), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4448 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4450 /* mem.vmstat.thp_collapse_alloc_failed */
4451 { &_pm_proc_vmstat
.thp_collapse_alloc_failed
,
4452 {PMDA_PMID(28,76), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4453 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4455 /* mem.vmstat.thp_split */
4456 { &_pm_proc_vmstat
.thp_split
,
4457 {PMDA_PMID(28,77), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4458 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4460 /* mem.vmstat.unevictable_pgs_cleared */
4461 { &_pm_proc_vmstat
.unevictable_pgs_cleared
,
4462 {PMDA_PMID(28,78), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4463 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4465 /* mem.vmstat.unevictable_pgs_culled */
4466 { &_pm_proc_vmstat
.unevictable_pgs_culled
,
4467 {PMDA_PMID(28,79), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4468 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4470 /* mem.vmstat.unevictable_pgs_mlocked */
4471 { &_pm_proc_vmstat
.unevictable_pgs_mlocked
,
4472 {PMDA_PMID(28,80), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4473 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4475 /* mem.vmstat.unevictable_pgs_mlockfreed */
4476 { &_pm_proc_vmstat
.unevictable_pgs_mlockfreed
,
4477 {PMDA_PMID(28,81), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4478 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4480 /* mem.vmstat.unevictable_pgs_munlocked */
4481 { &_pm_proc_vmstat
.unevictable_pgs_munlocked
,
4482 {PMDA_PMID(28,82), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4483 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4485 /* mem.vmstat.unevictable_pgs_rescued */
4486 { &_pm_proc_vmstat
.unevictable_pgs_rescued
,
4487 {PMDA_PMID(28,83), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4488 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4490 /* mem.vmstat.unevictable_pgs_scanned */
4491 { &_pm_proc_vmstat
.unevictable_pgs_scanned
,
4492 {PMDA_PMID(28,84), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4493 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4495 /* mem.vmstat.unevictable_pgs_stranded */
4496 { &_pm_proc_vmstat
.unevictable_pgs_stranded
,
4497 {PMDA_PMID(28,85), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4498 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4500 /* mem.vmstat.zone_reclaim_failed */
4501 { &_pm_proc_vmstat
.zone_reclaim_failed
,
4502 {PMDA_PMID(28,86), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4503 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4505 /* mem.vmstat.kswapd_low_wmark_hit_quickly */
4506 { &_pm_proc_vmstat
.kswapd_low_wmark_hit_quickly
,
4507 {PMDA_PMID(28,87), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4508 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4510 /* mem.vmstat.kswapd_high_wmark_hit_quickly */
4511 { &_pm_proc_vmstat
.kswapd_high_wmark_hit_quickly
,
4512 {PMDA_PMID(28,88), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4513 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4515 /* mem.vmstat.kswapd_skip_congestion_wait */
4516 { &_pm_proc_vmstat
.kswapd_skip_congestion_wait
,
4517 {PMDA_PMID(28,89), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4518 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4520 /* mem.vmstat.nr_anon_transparent_hugepages */
4521 { &_pm_proc_vmstat
.nr_anon_transparent_hugepages
,
4522 {PMDA_PMID(28,90), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4523 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4525 /* mem.vmstat.nr_dirtied */
4526 { &_pm_proc_vmstat
.nr_dirtied
,
4527 {PMDA_PMID(28,91), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4528 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4530 /* mem.vmstat.nr_dirty_background_threshold */
4531 { &_pm_proc_vmstat
.nr_dirty_background_threshold
,
4532 {PMDA_PMID(28,92), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4533 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4535 /* mem.vmstat.nr_dirty_threshold */
4536 { &_pm_proc_vmstat
.nr_dirty_threshold
,
4537 {PMDA_PMID(28,93), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4538 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4540 /* mem.vmstat.nr_written */
4541 { &_pm_proc_vmstat
.nr_written
,
4542 {PMDA_PMID(28,94), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4543 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4545 /* mem.vmstat.numa_foreign */
4546 { &_pm_proc_vmstat
.numa_foreign
,
4547 {PMDA_PMID(28,95), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4548 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4550 /* mem.vmstat.numa_hit */
4551 { &_pm_proc_vmstat
.numa_hit
,
4552 {PMDA_PMID(28,96), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4553 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4555 /* mem.vmstat.numa_interleave */
4556 { &_pm_proc_vmstat
.numa_interleave
,
4557 {PMDA_PMID(28,97), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4558 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4560 /* mem.vmstat.numa_local */
4561 { &_pm_proc_vmstat
.numa_local
,
4562 {PMDA_PMID(28,98), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4563 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4565 /* mem.vmstat.numa_miss */
4566 { &_pm_proc_vmstat
.numa_miss
,
4567 {PMDA_PMID(28,99), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4568 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4570 /* mem.vmstat.numa_other */
4571 { &_pm_proc_vmstat
.numa_other
,
4572 {PMDA_PMID(28,100), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4573 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4575 /* mem.vmstat.thp_zero_page_alloc */
4576 { &_pm_proc_vmstat
.thp_zero_page_alloc
,
4577 {PMDA_PMID(28,101), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4578 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4580 /* mem.vmstat.thp_zero_page_alloc_failed */
4581 { &_pm_proc_vmstat
.thp_zero_page_alloc_failed
,
4582 {PMDA_PMID(28,102), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4583 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4585 /* mem.vmstat.balloon_inflate */
4586 { &_pm_proc_vmstat
.balloon_inflate
,
4587 {PMDA_PMID(28,103), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4588 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4590 /* mem.vmstat.balloon_deflate */
4591 { &_pm_proc_vmstat
.balloon_deflate
,
4592 {PMDA_PMID(28,104), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4593 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4595 /* mem.vmstat.balloon_migrate */
4596 { &_pm_proc_vmstat
.balloon_migrate
,
4597 {PMDA_PMID(28,105), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4598 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4600 /* mem.vmstat.compact_daemon_wake */
4601 { &_pm_proc_vmstat
.compact_daemon_wake
,
4602 {PMDA_PMID(28,106), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4603 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4605 /* mem.vmstat.compact_free_scanned */
4606 { &_pm_proc_vmstat
.compact_free_scanned
,
4607 {PMDA_PMID(28,107), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4608 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4610 /* mem.vmstat.compact_migrate_scanned */
4611 { &_pm_proc_vmstat
.compact_migrate_scanned
,
4612 {PMDA_PMID(28,108), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4613 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4615 /* mem.vmstat.drop_pagecache */
4616 { &_pm_proc_vmstat
.drop_pagecache
,
4617 {PMDA_PMID(28,109), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4618 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4620 /* mem.vmstat.drop_slab */
4621 { &_pm_proc_vmstat
.drop_slab
,
4622 {PMDA_PMID(28,110), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4623 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4625 /* mem.vmstat.nr_free_cma */
4626 { &_pm_proc_vmstat
.nr_free_cma
,
4627 {PMDA_PMID(28,111), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4628 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4630 /* mem.vmstat.nr_pages_scanned */
4631 { &_pm_proc_vmstat
.nr_pages_scanned
,
4632 {PMDA_PMID(28,112), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4633 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4635 /* mem.vmstat.nr_vmscan_immediate_reclaim */
4636 { &_pm_proc_vmstat
.nr_vmscan_immediate_reclaim
,
4637 {PMDA_PMID(28,113), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4638 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4640 /* mem.vmstat.numa_pages_migrated */
4641 { &_pm_proc_vmstat
.numa_pages_migrated
,
4642 {PMDA_PMID(28,114), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4643 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4645 /* mem.vmstat.numa_pte_updates */
4646 { &_pm_proc_vmstat
.numa_pte_updates
,
4647 {PMDA_PMID(28,115), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4648 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4650 /* mem.vmstat.pglazyfreed */
4651 { &_pm_proc_vmstat
.pglazyfreed
,
4652 {PMDA_PMID(28,116), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4653 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4655 /* mem.vmstat.pgmigrate_fail */
4656 { &_pm_proc_vmstat
.pgmigrate_fail
,
4657 {PMDA_PMID(28,117), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4658 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4660 /* mem.vmstat.pgmigrate_success */
4661 { &_pm_proc_vmstat
.pgmigrate_success
,
4662 {PMDA_PMID(28,118), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4663 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4665 /* mem.vmstat.thp_deferred_split_page */
4666 { &_pm_proc_vmstat
.thp_deferred_split_page
,
4667 {PMDA_PMID(28,119), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4668 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4670 /* mem.vmstat.thp_split_page */
4671 { &_pm_proc_vmstat
.thp_split_page
,
4672 {PMDA_PMID(28,120), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4673 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4675 /* mem.vmstat.thp_split_page_failed */
4676 { &_pm_proc_vmstat
.thp_split_page_failed
,
4677 {PMDA_PMID(28,121), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4678 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4680 /* mem.vmstat.thp_split_pmd */
4681 { &_pm_proc_vmstat
.thp_split_pmd
,
4682 {PMDA_PMID(28,122), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4683 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4685 /* mem.vmstat.workingset_activate */
4686 { &_pm_proc_vmstat
.workingset_activate
,
4687 {PMDA_PMID(28,123), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4688 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4690 /* mem.vmstat.workingset_nodereclaim */
4691 { &_pm_proc_vmstat
.workingset_nodereclaim
,
4692 {PMDA_PMID(28,124), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4693 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4695 /* mem.vmstat.workingset_refault */
4696 { &_pm_proc_vmstat
.workingset_refault
,
4697 {PMDA_PMID(28,125), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4698 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4700 /* mem.vmstat.compact_isolated */
4701 { &_pm_proc_vmstat
.compact_isolated
,
4702 {PMDA_PMID(28,126), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4703 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4705 /* mem.vmstat.nr_shmem_hugepages */
4706 { &_pm_proc_vmstat
.nr_shmem_hugepages
,
4707 {PMDA_PMID(28,127), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4708 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4710 /* mem.vmstat.nr_shmem_pmdmapped */
4711 { &_pm_proc_vmstat
.nr_shmem_pmdmapped
,
4712 {PMDA_PMID(28,128), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4713 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4715 /* mem.vmstat.nr_zone_inactive_anon */
4716 { &_pm_proc_vmstat
.nr_zone_inactive_anon
,
4717 {PMDA_PMID(28,129), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4718 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4720 /* mem.vmstat.nr_zone_active_anon */
4721 { &_pm_proc_vmstat
.nr_zone_active_anon
,
4722 {PMDA_PMID(28,130), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4723 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4725 /* mem.vmstat.nr_zone_inactive_file */
4726 { &_pm_proc_vmstat
.nr_zone_inactive_file
,
4727 {PMDA_PMID(28,131), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4728 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4730 /* mem.vmstat.nr_zone_active_file */
4731 { &_pm_proc_vmstat
.nr_zone_active_file
,
4732 {PMDA_PMID(28,132), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4733 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4735 /* mem.vmstat.nr_zone_unevictable */
4736 { &_pm_proc_vmstat
.nr_zone_unevictable
,
4737 {PMDA_PMID(28,133), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4738 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4740 /* mem.vmstat.nr_zone_write_pending */
4741 { &_pm_proc_vmstat
.nr_zone_write_pending
,
4742 {PMDA_PMID(28,134), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4743 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4745 /* mem.vmstat.nr_zspages */
4746 { &_pm_proc_vmstat
.nr_zspages
,
4747 {PMDA_PMID(28,135), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_INSTANT
,
4748 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4750 /* mem.vmstat.thp_file_alloc */
4751 { &_pm_proc_vmstat
.thp_file_alloc
,
4752 {PMDA_PMID(28,136), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4753 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4755 /* mem.vmstat.thp_file_mapped */
4756 { &_pm_proc_vmstat
.thp_file_mapped
,
4757 {PMDA_PMID(28,137), PM_TYPE_U64
, PM_INDOM_NULL
, PM_SEM_COUNTER
,
4758 PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4761 * sysfs_kernel cluster
4763 /* sysfs.kernel.uevent_seqnum */
4764 { &sysfs_kernel
.uevent_seqnum
,
4765 { PMDA_PMID(CLUSTER_SYSFS_KERNEL
,0), PM_TYPE_U64
, PM_INDOM_NULL
,
4766 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4769 * /proc/interrupts clusters
4771 /* kernel.all.interrupts.errors */
4773 { PMDA_PMID(CLUSTER_INTERRUPTS
, 3), PM_TYPE_U32
, PM_INDOM_NULL
,
4774 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4776 /* kernel.percpu.intr */
4777 { NULL
, { PMDA_PMID(CLUSTER_INTERRUPTS
,4), PM_TYPE_U64
,
4778 CPU_INDOM
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4780 /* kernel.percpu.interrupts.line[<N>] */
4781 { NULL
, { PMDA_PMID(CLUSTER_INTERRUPT_LINES
, 0), PM_TYPE_U32
,
4782 CPU_INDOM
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4784 /* kernel.percpu.interrupts.[<other>] */
4785 { NULL
, { PMDA_PMID(CLUSTER_INTERRUPT_OTHER
, 0), PM_TYPE_U32
,
4786 CPU_INDOM
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4789 * /proc/softirqs cluster
4792 /* kernel.percpu.softirqs.[<name>] */
4793 { NULL
, { PMDA_PMID(CLUSTER_SOFTIRQS
, 0), PM_TYPE_U32
,
4794 CPU_INDOM
, PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4800 { NULL
, { PMDA_PMID(CLUSTER_DM
,0), KERNEL_ULONG
, DM_INDOM
,
4801 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4804 { NULL
, { PMDA_PMID(CLUSTER_DM
,1), KERNEL_ULONG
, DM_INDOM
,
4805 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4808 { NULL
, { PMDA_PMID(CLUSTER_DM
,2), PM_TYPE_U64
, DM_INDOM
,
4809 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4811 /* disk.dm.blkread */
4812 { NULL
, { PMDA_PMID(CLUSTER_DM
,3), KERNEL_ULONG
, DM_INDOM
,
4813 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4815 /* disk.dm.blkwrite */
4816 { NULL
, { PMDA_PMID(CLUSTER_DM
,4), KERNEL_ULONG
, DM_INDOM
,
4817 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4819 /* disk.dm.blktotal */
4820 { NULL
, { PMDA_PMID(CLUSTER_DM
,5), PM_TYPE_U64
, DM_INDOM
,
4821 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4823 /* disk.dm.read_bytes */
4824 { NULL
, { PMDA_PMID(CLUSTER_DM
,6), PM_TYPE_U32
, DM_INDOM
,
4825 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
4827 /* disk.dm.write_bytes */
4828 { NULL
, { PMDA_PMID(CLUSTER_DM
,7), PM_TYPE_U32
, DM_INDOM
,
4829 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
4831 /* disk.dm.total_bytes */
4832 { NULL
, { PMDA_PMID(CLUSTER_DM
,8), PM_TYPE_U32
, DM_INDOM
,
4833 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
4835 /* disk.dm.read_merge */
4836 { NULL
, { PMDA_PMID(CLUSTER_DM
,9), KERNEL_ULONG
, DM_INDOM
,
4837 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4839 /* disk.dm.write_merge */
4840 { NULL
, { PMDA_PMID(CLUSTER_DM
,10), KERNEL_ULONG
, DM_INDOM
,
4841 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4843 /* disk.dm.avactive */
4844 { NULL
, { PMDA_PMID(CLUSTER_DM
,11), PM_TYPE_U32
, DM_INDOM
,
4845 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4848 { NULL
, { PMDA_PMID(CLUSTER_DM
,12), PM_TYPE_U32
, DM_INDOM
,
4849 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4851 /* hinv.map.dmname */
4852 { NULL
, { PMDA_PMID(CLUSTER_DM
,13), PM_TYPE_STRING
, DM_INDOM
,
4853 PM_SEM_DISCRETE
, PMDA_PMUNITS(0,0,0,0,0,0) }, },
4855 /* disk.dm.read_rawactive */
4856 { NULL
, { PMDA_PMID(CLUSTER_DM
,14), PM_TYPE_U32
, DM_INDOM
,
4857 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4859 /* disk.dm.write_rawactive */
4860 { NULL
, { PMDA_PMID(CLUSTER_DM
,15), PM_TYPE_U32
, DM_INDOM
,
4861 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4863 /* disk.dm.write_rawactive */
4864 { NULL
, { PMDA_PMID(CLUSTER_DM
,16), PM_TYPE_U32
, DM_INDOM
,
4865 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4871 { NULL
, { PMDA_PMID(CLUSTER_MD
,0), KERNEL_ULONG
, MD_INDOM
,
4872 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4875 { NULL
, { PMDA_PMID(CLUSTER_MD
,1), KERNEL_ULONG
, MD_INDOM
,
4876 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4879 { NULL
, { PMDA_PMID(CLUSTER_MD
,2), PM_TYPE_U64
, MD_INDOM
,
4880 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4882 /* disk.md.blkread */
4883 { NULL
, { PMDA_PMID(CLUSTER_MD
,3), KERNEL_ULONG
, MD_INDOM
,
4884 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4886 /* disk.md.blkwrite */
4887 { NULL
, { PMDA_PMID(CLUSTER_MD
,4), KERNEL_ULONG
, MD_INDOM
,
4888 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4890 /* disk.md.blktotal */
4891 { NULL
, { PMDA_PMID(CLUSTER_MD
,5), PM_TYPE_U64
, MD_INDOM
,
4892 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4894 /* disk.md.read_bytes */
4895 { NULL
, { PMDA_PMID(CLUSTER_MD
,6), PM_TYPE_U32
, MD_INDOM
,
4896 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
4898 /* disk.md.write_bytes */
4899 { NULL
, { PMDA_PMID(CLUSTER_MD
,7), PM_TYPE_U32
, MD_INDOM
,
4900 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
4902 /* disk.md.total_bytes */
4903 { NULL
, { PMDA_PMID(CLUSTER_MD
,8), PM_TYPE_U32
, MD_INDOM
,
4904 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_KBYTE
,0,0) }, },
4906 /* disk.md.read_merge */
4907 { NULL
, { PMDA_PMID(CLUSTER_MD
,9), KERNEL_ULONG
, MD_INDOM
,
4908 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4910 /* disk.md.write_merge */
4911 { NULL
, { PMDA_PMID(CLUSTER_MD
,10), KERNEL_ULONG
, MD_INDOM
,
4912 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4914 /* disk.md.avactive */
4915 { NULL
, { PMDA_PMID(CLUSTER_MD
,11), PM_TYPE_U32
, MD_INDOM
,
4916 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4919 { NULL
, { PMDA_PMID(CLUSTER_MD
,12), PM_TYPE_U32
, MD_INDOM
,
4920 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4922 /* hinv.map.mdname */
4923 { NULL
, { PMDA_PMID(CLUSTER_MD
,13), PM_TYPE_STRING
, MD_INDOM
,
4924 PM_SEM_DISCRETE
, PMDA_PMUNITS(0,0,0,0,0,0) }, },
4926 /* disk.md.read_rawactive */
4927 { NULL
, { PMDA_PMID(CLUSTER_MD
,14), PM_TYPE_U32
, MD_INDOM
,
4928 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4930 /* disk.md.write_rawactive */
4931 { NULL
, { PMDA_PMID(CLUSTER_MD
,15), PM_TYPE_U32
, MD_INDOM
,
4932 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4934 /* disk.md.write_rawactive */
4935 { NULL
, { PMDA_PMID(CLUSTER_MD
,16), PM_TYPE_U32
, MD_INDOM
,
4936 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_MSEC
,0) }, },
4938 /* disk.md.status */
4939 { NULL
, { PMDA_PMID(CLUSTER_MDADM
,0), PM_TYPE_32
, MD_INDOM
,
4940 PM_SEM_INSTANT
, PMDA_PMUNITS(0,0,0,0,0,0) }, },
4943 * network.softnet cluster
4945 /* network.softnet.processed */
4946 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,0), PM_TYPE_U64
, PM_INDOM_NULL
,
4947 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4949 /* network.softnet.dropped */
4950 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,1), PM_TYPE_U64
, PM_INDOM_NULL
,
4951 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4953 /* network.softnet.time_squeeze */
4954 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,2), PM_TYPE_U64
, PM_INDOM_NULL
,
4955 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4957 /* network.softnet.cpu_collision */
4958 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,3), PM_TYPE_U64
, PM_INDOM_NULL
,
4959 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4961 /* network.softnet.received_rps */
4962 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,4), PM_TYPE_U64
, PM_INDOM_NULL
,
4963 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4965 /* network.softnet.flow_limit_count */
4966 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,5), PM_TYPE_U64
, PM_INDOM_NULL
,
4967 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4969 /* network.softnet.percpu.processed */
4970 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,6), PM_TYPE_U64
, CPU_INDOM
,
4971 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4973 /* network.softnet.percpu.dropped */
4974 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,7), PM_TYPE_U64
, CPU_INDOM
,
4975 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4977 /* network.softnet.percpu.time_squeeze */
4978 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,8), PM_TYPE_U64
, CPU_INDOM
,
4979 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4981 /* network.softnet.percpu.cpu_collision */
4982 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,9), PM_TYPE_U64
, CPU_INDOM
,
4983 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4985 /* network.softnet.percpu.received_rps */
4986 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,10), PM_TYPE_U64
, CPU_INDOM
,
4987 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4989 /* network.softnet.percpu.flow_limit_count */
4990 { NULL
, { PMDA_PMID(CLUSTER_NET_SOFTNET
,11), PM_TYPE_U64
, CPU_INDOM
,
4991 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
4996 /* tape.dev.in_flight */
4997 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_IN_FLIGHT
), PM_TYPE_U64
, TAPEDEV_INDOM
,
4998 PM_SEM_INSTANT
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
5000 /* tape.dev.io_ns */
5001 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_IO_NS
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5002 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_NSEC
,0) }, },
5004 /* tape.dev.other_cnt */
5005 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_OTHER_CNT
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5006 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
5008 /* tape.dev.read_byte_cnt */
5009 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_READ_BYTE_CNT
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5010 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
5012 /* tape.dev.read_cnt */
5013 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_READ_CNT
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5014 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
5016 /* tape.dev.read_ns */
5017 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_READ_NS
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5018 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_NSEC
,0) }, },
5020 /* tape.dev.resid_cnt */
5021 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_RESID_CNT
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5022 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
5024 /* tape.dev.write_byte_cnt */
5025 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_WRITE_BYTE_CNT
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5026 PM_SEM_COUNTER
, PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE
,0,0) }, },
5028 /* tape.dev.write_cnt */
5029 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_WRITE_CNT
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5030 PM_SEM_COUNTER
, PMDA_PMUNITS(0,0,1,0,0,PM_COUNT_ONE
) }, },
5032 /* tape.dev.write_ns */
5033 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_WRITE_NS
), PM_TYPE_U64
, TAPEDEV_INDOM
,
5034 PM_SEM_COUNTER
, PMDA_PMUNITS(0,1,0,0,PM_TIME_NSEC
,0) }, },
5037 { NULL
, { PMDA_PMID(CLUSTER_TAPEDEV
, TAPESTATS_HINV_NTAPE
), PM_TYPE_U32
, PM_INDOM_NULL
,
5038 PM_SEM_DISCRETE
, PMDA_PMUNITS(0,0,0,0,0,0) }, },
5042 int uid_flag
; /* uid attribute received */
5043 int uid
; /* uid receieved from PCP_ATTR_* */
5047 linux_container_t container
;
5048 linux_access_t access
;
5051 static perctx_t
*ctxtab
;
5054 int linux_test_mode
; /* bit field indicating if currently doing QA tests */
5055 char *linux_statspath
= ""; /* optional path prefix for all stats files */
5056 char *linux_mdadm
= "/sbin/mdadm"; /* program for extracting MD RAID status */
5059 linux_statsfile(const char *path
, char *buffer
, int size
)
5061 snprintf(buffer
, size
, "%s%s", linux_statspath
, path
);
5062 buffer
[size
-1] = '\0';
5063 return fopen(buffer
, "r");
5066 static linux_access_t
*
5069 if (ctx
< num_ctx
&& ctx
>= 0)
5070 return &ctxtab
[ctx
].access
;
5074 static linux_container_t
*
5075 linux_ctx_container(int ctx
)
5077 if (ctx
< num_ctx
&& ctx
>= 0 && ctxtab
[ctx
].container
.name
)
5078 return &ctxtab
[ctx
].container
;
5083 linux_refresh(pmdaExt
*pmda
, int *need_refresh
, int context
)
5085 linux_container_t
*cp
= linux_ctx_container(context
);
5086 linux_access_t
*access
= access_ctx(context
);
5087 int need_refresh_mtab
= 0;
5088 int need_net_ioctl
= 0;
5092 if (cp
&& (sts
= container_lookup(rootfd
, cp
)) < 0)
5095 if (need_refresh
[CLUSTER_PARTITIONS
])
5096 refresh_proc_partitions(INDOM(DISK_INDOM
),
5097 INDOM(PARTITIONS_INDOM
),
5098 INDOM(DM_INDOM
), INDOM(MD_INDOM
));
5100 if (need_refresh
[CLUSTER_STAT
])
5101 refresh_proc_stat(&proc_stat
);
5103 if (need_refresh
[CLUSTER_CPUINFO
])
5104 refresh_proc_cpuinfo();
5106 if (need_refresh
[CLUSTER_MEMINFO
])
5107 refresh_proc_meminfo(&proc_meminfo
);
5109 if (need_refresh
[CLUSTER_NUMA_MEMINFO
])
5110 refresh_numa_meminfo();
5112 if (need_refresh
[CLUSTER_LOADAVG
])
5113 refresh_proc_loadavg(&proc_loadavg
);
5115 if (need_refresh
[CLUSTER_NET_NFS
])
5116 refresh_proc_net_rpc(&proc_net_rpc
);
5118 if (need_refresh
[CLUSTER_NET_SOCKSTAT
])
5119 refresh_proc_net_sockstat(&proc_net_sockstat
);
5121 if (need_refresh
[CLUSTER_NET_SNMP
])
5122 refresh_proc_net_snmp(&_pm_proc_net_snmp
);
5124 if (need_refresh
[CLUSTER_NET_SNMP6
])
5125 refresh_proc_net_snmp6(_pm_proc_net_snmp6
);
5127 if (need_refresh
[CLUSTER_NET_TCP
])
5128 refresh_proc_net_tcp(&proc_net_tcp
);
5130 if (need_refresh
[CLUSTER_NET_NETSTAT
])
5131 refresh_proc_net_netstat(&_pm_proc_net_netstat
);
5134 * Network interface metrics and namespaces are complicated by a
5135 * need to be in the right namespace at the right time (for /sys
5136 * -> MNTNS, for /proc or ioctl -> NETNS) - and the two have been
5137 * found to be mutually exclusive from the point of view of access
5138 * via the setns(2) syscall. We also have a further complicating
5139 * factor where some values are available *either* by sysfs (newer
5140 * kernels), *or* ioctl (older kernels).
5142 if (need_refresh
[CLUSTER_NET_DEV
] ||
5143 need_refresh
[CLUSTER_NET_ADDR
] ||
5144 need_refresh
[CLUSTER_FILESYS
] ||
5145 need_refresh
[CLUSTER_TMPFS
] ||
5146 need_refresh
[REFRESH_NET_MTU
] ||
5147 need_refresh
[REFRESH_NET_SPEED
] ||
5148 need_refresh
[REFRESH_NET_DUPLEX
] ||
5149 need_refresh
[REFRESH_NET_LINKUP
] ||
5150 need_refresh
[REFRESH_NET_RUNNING
] ||
5151 need_refresh
[REFRESH_NETADDR_INET
] ||
5152 need_refresh
[REFRESH_NETADDR_IPV6
] ||
5153 need_refresh
[REFRESH_NETADDR_HW
]) {
5154 pmInDom netaddr
= INDOM(NET_ADDR_INDOM
);
5155 pmInDom netdev
= INDOM(NET_DEV_INDOM
);
5157 if (need_refresh
[CLUSTER_NET_ADDR
])
5158 clear_net_addr_indom(netaddr
);
5159 if (need_refresh
[REFRESH_NETADDR_INET
])
5161 if (need_refresh
[REFRESH_NETADDR_IPV6
])
5164 if (need_refresh
[CLUSTER_NET_DEV
]) {
5165 if ((sts
= container_nsenter(cp
, LINUX_NAMESPACE_NET
, &ns_fds
)) < 0)
5167 refresh_proc_net_dev(netdev
, cp
);
5168 container_nsleave(cp
, LINUX_NAMESPACE_NET
);
5171 if ((sts
= container_nsenter(cp
, LINUX_NAMESPACE_MNT
, &ns_fds
)) < 0)
5173 refresh_net_addr_sysfs(netaddr
, need_refresh
);
5174 need_net_ioctl
|= refresh_net_sysfs(netdev
, need_refresh
);
5175 if (need_refresh
[CLUSTER_FILESYS
] || need_refresh
[CLUSTER_TMPFS
])
5176 refresh_filesys(INDOM(FILESYS_INDOM
), INDOM(TMPFS_INDOM
), cp
);
5177 container_nsleave(cp
, LINUX_NAMESPACE_MNT
);
5179 if (need_net_ioctl
) {
5180 if ((sts
= container_nsenter(cp
, LINUX_NAMESPACE_NET
, &ns_fds
)) < 0)
5182 refresh_net_addr_ioctl(netaddr
, cp
, need_refresh
);
5183 refresh_net_ioctl(netdev
, cp
, need_refresh
);
5184 container_nsleave(cp
, LINUX_NAMESPACE_NET
);
5187 if (need_refresh
[CLUSTER_NET_ADDR
])
5188 store_net_addr_indom(netaddr
, cp
);
5191 if (need_refresh
[CLUSTER_KERNEL_UNAME
]) {
5192 if ((sts
= container_nsenter(cp
, LINUX_NAMESPACE_UTS
, &ns_fds
)) < 0)
5194 uname(&kernel_uname
);
5195 container_nsleave(cp
, LINUX_NAMESPACE_UTS
);
5198 if (need_refresh
[CLUSTER_INTERRUPTS
] ||
5199 need_refresh
[CLUSTER_INTERRUPT_LINES
] ||
5200 need_refresh
[CLUSTER_INTERRUPT_OTHER
])
5201 need_refresh_mtab
|= refresh_interrupt_values();
5203 if (need_refresh
[CLUSTER_SOFTIRQS
])
5204 need_refresh_mtab
|= refresh_softirqs_values();
5206 if (need_refresh
[CLUSTER_SWAPDEV
])
5207 refresh_swapdev(INDOM(SWAPDEV_INDOM
));
5209 if (need_refresh
[CLUSTER_SCSI
])
5210 refresh_proc_scsi(INDOM(SCSI_INDOM
));
5212 if (need_refresh
[CLUSTER_SLAB
]) {
5213 if (access
!= NULL
&& (access
->uid
== 0 && access
->uid_flag
)) {
5214 proc_slabinfo
.permission
= 1;
5215 refresh_proc_slabinfo(&proc_slabinfo
);
5217 proc_slabinfo
.permission
= 0;
5220 if (need_refresh
[CLUSTER_SEM_LIMITS
])
5221 refresh_sem_limits(&sem_limits
);
5223 if (need_refresh
[CLUSTER_MSG_LIMITS
])
5224 refresh_msg_limits(&msg_limits
);
5226 if (need_refresh
[CLUSTER_SHM_INFO
])
5227 refresh_shm_info(&_shm_info
);
5229 if (need_refresh
[CLUSTER_SEM_INFO
])
5230 refresh_sem_info(&_sem_info
);
5232 if (need_refresh
[CLUSTER_MSG_INFO
])
5233 refresh_msg_info(&_msg_info
);
5235 if (need_refresh
[CLUSTER_SHM_LIMITS
])
5236 refresh_shm_limits(&shm_limits
);
5238 if (need_refresh
[CLUSTER_UPTIME
])
5239 refresh_proc_uptime(&proc_uptime
);
5241 if (need_refresh
[CLUSTER_VFS
])
5242 refresh_proc_sys_fs(&proc_sys_fs
);
5244 if (need_refresh
[CLUSTER_VMSTAT
])
5245 refresh_proc_vmstat(&_pm_proc_vmstat
);
5247 if (need_refresh
[CLUSTER_SYSFS_KERNEL
])
5248 refresh_sysfs_kernel(&sysfs_kernel
);
5250 if (need_refresh
[CLUSTER_NET_SOFTNET
])
5251 refresh_proc_net_softnet(&proc_net_softnet
);
5253 if (need_refresh
[CLUSTER_SHM_STAT
])
5254 refresh_shm_stat(INDOM(IPC_STAT_INDOM
));
5256 if (need_refresh
[CLUSTER_MSG_STAT
])
5257 refresh_msg_que(INDOM(IPC_MSG_INDOM
));
5259 if (need_refresh
[CLUSTER_SEM_STAT
])
5260 refresh_sem_array(INDOM(IPC_SEM_INDOM
));
5262 if (need_refresh
[CLUSTER_BUDDYINFO
])
5263 refresh_proc_buddyinfo(&proc_buddyinfo
);
5265 if (need_refresh
[CLUSTER_ZONEINFO
] ||
5266 need_refresh
[CLUSTER_ZONEINFO_PROTECTION
])
5267 refresh_proc_zoneinfo(INDOM(ZONEINFO_INDOM
),
5268 INDOM(ZONEINFO_PROTECTION_INDOM
));
5270 if (need_refresh
[CLUSTER_KSM_INFO
])
5271 refresh_ksm_info(&ksm_info
);
5273 if (need_refresh
[CLUSTER_TAPEDEV
])
5274 refresh_sysfs_tapestats(INDOM(TAPEDEV_INDOM
));
5277 if (need_refresh_mtab
)
5278 pmdaDynamicMetricTable(pmda
);
5279 container_close(cp
, ns_fds
);
5284 linux_instance(pmInDom indom
, int inst
, char *name
, __pmInResult
**result
, pmdaExt
*pmda
)
5286 __pmInDom_int
*indomp
= (__pmInDom_int
*)&indom
;
5287 int need_refresh
[NUM_REFRESHES
] = {0};
5290 switch (indomp
->serial
) {
5292 case PARTITIONS_INDOM
:
5295 need_refresh
[CLUSTER_PARTITIONS
]++;
5298 need_refresh
[CLUSTER_STAT
]++;
5301 need_refresh
[CLUSTER_NUMA_MEMINFO
]++;
5304 need_refresh
[CLUSTER_LOADAVG
]++;
5307 need_refresh
[CLUSTER_NET_DEV
]++;
5309 case NET_ADDR_INDOM
:
5310 need_refresh
[CLUSTER_NET_ADDR
]++;
5311 need_refresh
[REFRESH_NETADDR_INET
]++;
5312 need_refresh
[REFRESH_NETADDR_IPV6
]++;
5313 need_refresh
[REFRESH_NETADDR_HW
]++;
5316 need_refresh
[CLUSTER_FILESYS
]++;
5319 need_refresh
[CLUSTER_TMPFS
]++;
5322 need_refresh
[CLUSTER_SWAPDEV
]++;
5326 case NFS4_CLI_INDOM
:
5327 case NFS4_SVR_INDOM
:
5328 need_refresh
[CLUSTER_NET_NFS
]++;
5331 need_refresh
[CLUSTER_SCSI
]++;
5334 need_refresh
[CLUSTER_SLAB
]++;
5337 need_refresh
[CLUSTER_NET_SNMP
]++;
5339 case IPC_STAT_INDOM
:
5340 need_refresh
[CLUSTER_SHM_STAT
]++;
5343 need_refresh
[CLUSTER_MSG_STAT
]++;
5346 need_refresh
[CLUSTER_SEM_STAT
]++;
5348 case BUDDYINFO_INDOM
:
5349 need_refresh
[CLUSTER_BUDDYINFO
]++;
5351 case ZONEINFO_INDOM
:
5352 need_refresh
[CLUSTER_ZONEINFO
]++;
5354 case ZONEINFO_PROTECTION_INDOM
:
5355 need_refresh
[CLUSTER_ZONEINFO_PROTECTION
]++;
5358 need_refresh
[CLUSTER_TAPEDEV
]++;
5360 /* no default label : pmdaInstance will pick up errors */
5363 if ((sts
= linux_refresh(pmda
, need_refresh
, pmda
->e_context
)) < 0)
5365 return pmdaInstance(indom
, inst
, name
, result
, pmda
);
5369 * callback provided to pmdaFetch
5373 linux_fetchCallBack(pmdaMetric
*mdesc
, unsigned int inst
, pmAtomValue
*atom
)
5375 __pmID_int
*idp
= (__pmID_int
*)&(mdesc
->m_desc
.pmid
);
5383 net_interface_t
*netip
;
5384 scsi_entry_t
*scsi_entry
;
5386 if (mdesc
->m_user
!= NULL
) {
5388 * The metric value is extracted directly via the address specified
5389 * in metrictab. Note: not all metrics support this - those that
5390 * don't have NULL for the m_user field in their respective
5393 if (idp
->cluster
== CLUSTER_VMSTAT
) {
5394 if (!(_pm_have_proc_vmstat
) ||
5395 *(__uint64_t
*)mdesc
->m_user
== (__uint64_t
)-1)
5396 return 0; /* no value available on this kernel */
5399 if (idp
->cluster
== CLUSTER_NET_SNMP
) {
5402 /* network.icmpmsg has an indom - deal with it now */
5403 if (idp
->item
== 88 || idp
->item
== 89) {
5404 if (inst
> NR_ICMPMSG_COUNTERS
)
5406 value
= *((__uint64_t
*)mdesc
->m_user
+ inst
);
5407 if (value
== (__uint64_t
)-1)
5408 return 0; /* no value for this instance */
5412 if (*(__uint64_t
*)mdesc
->m_user
== (__uint64_t
)-1)
5413 if (idp
->item
!= 53) /* tcp.maxconn is special */
5414 return 0; /* no value available on this kernel */
5417 if (idp
->cluster
== CLUSTER_NET_NETSTAT
) {
5418 if (*(__uint64_t
*)mdesc
->m_user
== (__uint64_t
)-1)
5419 return 0; /* no value available on this kernel */
5422 if (idp
->cluster
== CLUSTER_NET_NFS
) {
5424 * check if rpc stats are available
5426 if (idp
->item
>= 20 && idp
->item
<= 27 && proc_net_rpc
.client
.errcode
!= 0)
5427 /* no values available for client rpc/nfs - this is expected <= 2.0.36 */
5430 if (idp
->item
>= 30 && idp
->item
<= 47 && proc_net_rpc
.server
.errcode
!= 0)
5431 /* no values available - expected without /proc/net/rpc/nfsd */
5432 return 0; /* no values available */
5433 if (idp
->item
>= 51 && idp
->item
<= 57 && proc_net_rpc
.server
.errcode
!= 0)
5434 /* no values available - expected without /proc/net/rpc/nfsd */
5435 return 0; /* no values available */
5437 if (idp
->cluster
== CLUSTER_SYSFS_KERNEL
) {
5438 /* no values available for udev metrics */
5439 if (idp
->item
== 0 && !sysfs_kernel
.valid_uevent_seqnum
) {
5444 switch (mdesc
->m_desc
.type
) {
5446 atom
->l
= *(__int32_t
*)mdesc
->m_user
;
5449 atom
->ul
= *(__uint32_t
*)mdesc
->m_user
;
5452 atom
->ll
= *(__int64_t
*)mdesc
->m_user
;
5455 atom
->ull
= *(__uint64_t
*)mdesc
->m_user
;
5458 atom
->f
= *(float *)mdesc
->m_user
;
5460 case PM_TYPE_DOUBLE
:
5461 atom
->d
= *(double *)mdesc
->m_user
;
5463 case PM_TYPE_STRING
:
5464 atom
->cp
= (char *)mdesc
->m_user
;
5471 switch (idp
->cluster
) {
5474 * All metrics from /proc/stat
5476 switch (idp
->item
) {
5477 case 0: /* kernel.percpu.cpu.user */
5478 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5480 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.user
/ hz
);
5482 case 1: /* kernel.percpu.cpu.nice */
5483 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5485 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.nice
/ hz
);
5487 case 2: /* kernel.percpu.cpu.sys */
5488 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5490 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.sys
/ hz
);
5492 case 3: /* kernel.percpu.cpu.idle */
5493 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5495 _pm_assign_utype(_pm_idletime_size
, atom
, 1000 * (double)cp
->stat
.idle
/ hz
);
5497 case 30: /* kernel.percpu.cpu.wait.total */
5498 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5500 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.wait
/ hz
);
5502 case 31: /* kernel.percpu.cpu.intr */
5503 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5505 _pm_assign_utype(_pm_cputime_size
, atom
,
5506 1000 * ((double)cp
->stat
.irq
+ (double)cp
->stat
.sirq
) / hz
);
5508 case 56: /* kernel.percpu.cpu.irq.soft */
5509 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5511 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.sirq
/ hz
);
5513 case 57: /* kernel.percpu.cpu.irq.hard */
5514 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5516 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.irq
/ hz
);
5518 case 58: /* kernel.percpu.cpu.steal */
5519 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5521 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.steal
/ hz
);
5523 case 61: /* kernel.percpu.cpu.guest */
5524 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5526 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)cp
->stat
.guest
/ hz
);
5528 case 76: /* kernel.percpu.cpu.vuser */
5529 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5531 _pm_assign_utype(_pm_cputime_size
, atom
,
5532 1000 * ((double)cp
->stat
.user
- (double)cp
->stat
.guest
) / hz
);
5534 case 83: /* kernel.percpu.cpu.guest_nice */
5535 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5537 _pm_assign_utype(_pm_cputime_size
, atom
,
5538 1000 * (double)cp
->stat
.guest_nice
/ hz
);
5540 case 84: /* kernel.percpu.cpu.vnice */
5541 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
5543 _pm_assign_utype(_pm_cputime_size
, atom
,
5544 1000 * ((double)cp
->stat
.nice
- (double)cp
->stat
.guest_nice
) / hz
);
5546 case 62: /* kernel.pernode.cpu.user */
5547 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5549 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.user
/ hz
);
5551 case 63: /* kernel.pernode.cpu.nice */
5552 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5554 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.nice
/ hz
);
5556 case 64: /* kernel.pernode.cpu.sys */
5557 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5559 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.sys
/ hz
);
5561 case 65: /* kernel.pernode.cpu.idle */
5562 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5564 _pm_assign_utype(_pm_idletime_size
, atom
, 1000 * (double)np
->stat
.idle
/ hz
);
5566 case 69: /* kernel.pernode.cpu.wait.total */
5567 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5569 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.wait
/ hz
);
5571 case 66: /* kernel.pernode.cpu.intr */
5572 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5574 _pm_assign_utype(_pm_cputime_size
, atom
,
5575 1000 * ((double)np
->stat
.irq
+ (double)np
->stat
.sirq
) / hz
);
5577 case 70: /* kernel.pernode.cpu.irq.soft */
5578 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5580 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.sirq
/ hz
);
5582 case 71: /* kernel.pernode.cpu.irq.hard */
5583 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5585 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.irq
/ hz
);
5587 case 67: /* kernel.pernode.cpu.steal */
5588 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5590 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.steal
/ hz
);
5592 case 68: /* kernel.pernode.cpu.guest */
5593 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5595 _pm_assign_utype(_pm_cputime_size
, atom
, 1000 * (double)np
->stat
.guest
/ hz
);
5597 case 77: /* kernel.pernode.cpu.vuser */
5598 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5600 _pm_assign_utype(_pm_cputime_size
, atom
,
5601 1000 * ((double)np
->stat
.user
- (double)np
->stat
.guest
) / hz
);
5603 case 85: /* kernel.pernode.cpu.guest_nice */
5604 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5606 _pm_assign_utype(_pm_cputime_size
, atom
,
5607 1000 * (double)np
->stat
.guest_nice
/ hz
);
5609 case 86: /* kernel.pernode.cpu.vnice */
5610 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
) < 0)
5612 _pm_assign_utype(_pm_cputime_size
, atom
,
5613 1000 * ((double)np
->stat
.nice
- (double)np
->stat
.guest_nice
) / hz
);
5616 case 8: /* swap.pagesin */
5617 if (_pm_have_proc_vmstat
)
5618 atom
->ul
= _pm_proc_vmstat
.pswpin
;
5620 atom
->ul
= proc_stat
.swap
[0];
5622 case 9: /* swap.pagesout */
5623 if (_pm_have_proc_vmstat
)
5624 atom
->ul
= _pm_proc_vmstat
.pswpout
;
5626 atom
->ul
= proc_stat
.swap
[1];
5628 case 10: /* swap.in */
5629 if (_pm_have_proc_vmstat
)
5630 return PM_ERR_APPVERSION
; /* no swap operation counts in 2.6 */
5632 atom
->ul
= proc_stat
.page
[0];
5634 case 11: /* swap.out */
5635 if (_pm_have_proc_vmstat
)
5636 return PM_ERR_APPVERSION
; /* no swap operation counts in 2.6 */
5638 atom
->ul
= proc_stat
.page
[1];
5640 case 12: /* kernel.all.intr */
5641 _pm_assign_utype(_pm_intr_size
, atom
, proc_stat
.intr
);
5643 case 13: /* kernel.all.pswitch */
5644 _pm_assign_utype(_pm_ctxt_size
, atom
, proc_stat
.ctxt
);
5646 case 14: /* kernel.all.sysfork */
5647 _pm_assign_ulong(atom
, proc_stat
.processes
);
5649 case 15: /* kernel.all.running */
5650 _pm_assign_ulong(atom
, proc_stat
.procs_running
);
5652 case 16: /* kernel.all.blocked */
5653 _pm_assign_ulong(atom
, proc_stat
.procs_blocked
);
5656 case 20: /* kernel.all.cpu.user */
5657 _pm_assign_utype(_pm_cputime_size
, atom
,
5658 1000 * (double)proc_stat
.all
.user
/ hz
);
5660 case 21: /* kernel.all.cpu.nice */
5661 _pm_assign_utype(_pm_cputime_size
, atom
,
5662 1000 * (double)proc_stat
.all
.nice
/ hz
);
5664 case 22: /* kernel.all.cpu.sys */
5665 _pm_assign_utype(_pm_cputime_size
, atom
,
5666 1000 * (double)proc_stat
.all
.sys
/ hz
);
5668 case 23: /* kernel.all.cpu.idle */
5669 _pm_assign_utype(_pm_idletime_size
, atom
,
5670 1000 * (double)proc_stat
.all
.idle
/ hz
);
5672 case 34: /* kernel.all.cpu.intr */
5673 _pm_assign_utype(_pm_cputime_size
, atom
,
5674 1000 * ((double)proc_stat
.all
.irq
+
5675 (double)proc_stat
.all
.sirq
) / hz
);
5677 case 35: /* kernel.all.cpu.wait.total */
5678 _pm_assign_utype(_pm_cputime_size
, atom
,
5679 1000 * (double)proc_stat
.all
.wait
/ hz
);
5681 case 53: /* kernel.all.cpu.irq.soft */
5682 _pm_assign_utype(_pm_cputime_size
, atom
,
5683 1000 * (double)proc_stat
.all
.sirq
/ hz
);
5685 case 54: /* kernel.all.cpu.irq.hard */
5686 _pm_assign_utype(_pm_cputime_size
, atom
,
5687 1000 * (double)proc_stat
.all
.irq
/ hz
);
5689 case 55: /* kernel.all.cpu.steal */
5690 _pm_assign_utype(_pm_cputime_size
, atom
,
5691 1000 * (double)proc_stat
.all
.steal
/ hz
);
5693 case 60: /* kernel.all.cpu.guest */
5694 _pm_assign_utype(_pm_cputime_size
, atom
,
5695 1000 * (double)proc_stat
.all
.guest
/ hz
);
5697 case 78: /* kernel.all.cpu.vuser */
5698 _pm_assign_utype(_pm_cputime_size
, atom
,
5699 1000 * ((double)proc_stat
.all
.user
- (double)proc_stat
.all
.guest
)
5702 case 81: /* kernel.all.cpu.guest_nice */
5703 _pm_assign_utype(_pm_cputime_size
, atom
,
5704 1000 * (double)proc_stat
.all
.guest_nice
/ hz
);
5706 case 82: /* kernel.all.cpu.vnice */
5707 _pm_assign_utype(_pm_cputime_size
, atom
,
5708 1000 * ((double)proc_stat
.all
.nice
- (double)proc_stat
.all
.guest_nice
)
5711 case 19: /* hinv.nnode */
5712 atom
->ul
= pmdaCacheOp(INDOM(NODE_INDOM
), PMDA_CACHE_SIZE_ACTIVE
);
5714 case 32: /* hinv.ncpu */
5715 atom
->ul
= pmdaCacheOp(INDOM(CPU_INDOM
), PMDA_CACHE_SIZE_ACTIVE
);
5717 case 33: /* hinv.ndisk */
5718 atom
->ul
= pmdaCacheOp(INDOM(DISK_INDOM
), PMDA_CACHE_SIZE_ACTIVE
);
5721 case 48: /* kernel.all.hz */
5727 * Disk metrics used to be fetched from /proc/stat (2.2 kernels)
5728 * but have since moved to /proc/partitions (2.4 kernels) and
5729 * /proc/diskstats (2.6 kernels). We preserve the cluster number
5730 * (middle bits of a PMID) for backward compatibility.
5732 * Note that proc_partitions_fetch() will return PM_ERR_PMID
5733 * if we have tried to fetch an unknown metric.
5735 return proc_partitions_fetch(mdesc
, inst
, atom
);
5739 case CLUSTER_UPTIME
: /* uptime */
5740 switch (idp
->item
) {
5743 * kernel.all.uptime (in seconds)
5744 * contributed by "gilly" <gilly@exanet.com>
5745 * modified by Mike Mason" <mmlnx@us.ibm.com>
5747 atom
->ul
= proc_uptime
.uptime
;
5751 * kernel.all.idletime (in seconds)
5752 * contributed by "Mike Mason" <mmlnx@us.ibm.com>
5754 atom
->ul
= proc_uptime
.idletime
;
5761 case CLUSTER_MEMINFO
: /* mem */
5762 switch (idp
->item
) {
5763 case 0: /* mem.physmem (in kbytes) */
5764 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemTotal
))
5765 return 0; /* no values available */
5766 atom
->ull
= proc_meminfo
.MemTotal
>> 10;
5768 case 1: /* mem.util.used (in kbytes) */
5769 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemTotal
) ||
5770 !MEMINFO_VALID_VALUE(proc_meminfo
.MemFree
))
5771 return 0; /* no values available */
5772 atom
->ull
= (proc_meminfo
.MemTotal
- proc_meminfo
.MemFree
) >> 10;
5774 case 2: /* mem.util.free (in kbytes) */
5775 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemFree
))
5776 return 0; /* no values available */
5777 atom
->ull
= proc_meminfo
.MemFree
>> 10;
5779 case 3: /* mem.util.shared (in kbytes) */
5781 * If this metric is exported by the running kernel, it is always
5782 * zero (deprecated). PCP exports it for compatibility with older
5783 * PCP monitoring tools, e.g. pmgsys running on IRIX(TM).
5785 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemShared
))
5786 return 0; /* no values available */
5787 atom
->ull
= proc_meminfo
.MemShared
>> 10;
5789 case 4: /* mem.util.bufmem (in kbytes) */
5790 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Buffers
))
5791 return 0; /* no values available */
5792 atom
->ull
= proc_meminfo
.Buffers
>> 10;
5794 case 5: /* mem.util.cached (in kbytes) */
5795 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Cached
))
5796 return 0; /* no values available */
5797 atom
->ull
= proc_meminfo
.Cached
>> 10;
5799 case 6: /* swap.length (in bytes) */
5800 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SwapTotal
))
5801 return 0; /* no values available */
5802 atom
->ull
= proc_meminfo
.SwapTotal
;
5804 case 7: /* swap.used (in bytes) */
5805 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SwapTotal
) ||
5806 !MEMINFO_VALID_VALUE(proc_meminfo
.SwapFree
))
5807 return 0; /* no values available */
5808 atom
->ull
= proc_meminfo
.SwapTotal
- proc_meminfo
.SwapFree
;
5810 case 8: /* swap.free (in bytes) */
5811 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SwapFree
))
5812 return 0; /* no values available */
5813 atom
->ull
= proc_meminfo
.SwapFree
;
5815 case 9: /* hinv.physmem (in mbytes) */
5816 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemTotal
))
5817 return 0; /* no values available */
5818 atom
->ul
= proc_meminfo
.MemTotal
>> 20;
5820 case 10: /* mem.freemem (in kbytes) */
5821 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemFree
))
5822 return 0; /* no values available */
5823 atom
->ull
= proc_meminfo
.MemFree
>> 10;
5825 case 11: /* hinv.pagesize (in bytes) */
5826 atom
->ul
= 1 << _pm_pageshift
;
5828 case 12: /* mem.util.other (in kbytes) */
5829 /* other = used - (cached+buffers) */
5830 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemTotal
) ||
5831 !MEMINFO_VALID_VALUE(proc_meminfo
.MemFree
) ||
5832 !MEMINFO_VALID_VALUE(proc_meminfo
.Cached
) ||
5833 !MEMINFO_VALID_VALUE(proc_meminfo
.Buffers
))
5834 return 0; /* no values available */
5835 sl
= (proc_meminfo
.MemTotal
-
5836 proc_meminfo
.MemFree
-
5837 proc_meminfo
.Cached
-
5838 proc_meminfo
.Buffers
) >> 10;
5839 atom
->ull
= sl
>= 0 ? sl
: 0;
5841 case 13: /* mem.util.swapCached (in kbytes) */
5842 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SwapCached
))
5843 return 0; /* no values available */
5844 atom
->ull
= proc_meminfo
.SwapCached
>> 10;
5846 case 14: /* mem.util.active (in kbytes) */
5847 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Active
))
5848 return 0; /* no values available */
5849 atom
->ull
= proc_meminfo
.Active
>> 10;
5851 case 15: /* mem.util.inactive (in kbytes) */
5852 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Inactive
))
5853 return 0; /* no values available */
5854 atom
->ull
= proc_meminfo
.Inactive
>> 10;
5856 case 16: /* mem.util.highTotal (in kbytes) */
5857 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HighTotal
))
5858 return 0; /* no values available */
5859 atom
->ull
= proc_meminfo
.HighTotal
>> 10;
5861 case 17: /* mem.util.highFree (in kbytes) */
5862 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HighFree
))
5863 return 0; /* no values available */
5864 atom
->ull
= proc_meminfo
.HighFree
>> 10;
5866 case 18: /* mem.util.lowTotal (in kbytes) */
5867 if (!MEMINFO_VALID_VALUE(proc_meminfo
.LowTotal
))
5868 return 0; /* no values available */
5869 atom
->ull
= proc_meminfo
.LowTotal
>> 10;
5871 case 19: /* mem.util.lowFree (in kbytes) */
5872 if (!MEMINFO_VALID_VALUE(proc_meminfo
.LowFree
))
5873 return 0; /* no values available */
5874 atom
->ull
= proc_meminfo
.LowFree
>> 10;
5876 case 20: /* mem.util.swapTotal (in kbytes) */
5877 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SwapTotal
))
5878 return 0; /* no values available */
5879 atom
->ull
= proc_meminfo
.SwapTotal
>> 10;
5881 case 21: /* mem.util.swapFree (in kbytes) */
5882 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SwapFree
))
5883 return 0; /* no values available */
5884 atom
->ull
= proc_meminfo
.SwapFree
>> 10;
5886 case 22: /* mem.util.dirty (in kbytes) */
5887 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Dirty
))
5888 return 0; /* no values available */
5889 atom
->ull
= proc_meminfo
.Dirty
>> 10;
5891 case 23: /* mem.util.writeback (in kbytes) */
5892 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Writeback
))
5893 return 0; /* no values available */
5894 atom
->ull
= proc_meminfo
.Writeback
>> 10;
5896 case 24: /* mem.util.mapped (in kbytes) */
5897 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Mapped
))
5898 return 0; /* no values available */
5899 atom
->ull
= proc_meminfo
.Mapped
>> 10;
5901 case 25: /* mem.util.slab (in kbytes) */
5902 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Slab
))
5903 return 0; /* no values available */
5904 atom
->ull
= proc_meminfo
.Slab
>> 10;
5906 case 26: /* mem.util.committed_AS (in kbytes) */
5907 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Committed_AS
))
5908 return 0; /* no values available */
5909 atom
->ull
= proc_meminfo
.Committed_AS
>> 10;
5911 case 27: /* mem.util.pageTables (in kbytes) */
5912 if (!MEMINFO_VALID_VALUE(proc_meminfo
.PageTables
))
5913 return 0; /* no values available */
5914 atom
->ull
= proc_meminfo
.PageTables
>> 10;
5916 case 28: /* mem.util.reverseMaps (in kbytes) */
5917 if (!MEMINFO_VALID_VALUE(proc_meminfo
.ReverseMaps
))
5918 return 0; /* no values available */
5919 atom
->ull
= proc_meminfo
.ReverseMaps
>> 10;
5921 case 29: /* mem.util.clean_cache (in kbytes) */
5922 /* clean=cached-(dirty+writeback) */
5923 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Cached
) ||
5924 !MEMINFO_VALID_VALUE(proc_meminfo
.Dirty
) ||
5925 !MEMINFO_VALID_VALUE(proc_meminfo
.Writeback
))
5926 return 0; /* no values available */
5927 sl
= (proc_meminfo
.Cached
-
5928 proc_meminfo
.Dirty
-
5929 proc_meminfo
.Writeback
) >> 10;
5930 atom
->ull
= sl
>= 0 ? sl
: 0;
5932 case 30: /* mem.util.anonpages */
5933 if (!MEMINFO_VALID_VALUE(proc_meminfo
.AnonPages
))
5934 return 0; /* no values available */
5935 atom
->ull
= proc_meminfo
.AnonPages
>> 10;
5937 case 31: /* mem.util.commitLimit (in kbytes) */
5938 if (!MEMINFO_VALID_VALUE(proc_meminfo
.CommitLimit
))
5939 return 0; /* no values available */
5940 atom
->ull
= proc_meminfo
.CommitLimit
>> 10;
5942 case 32: /* mem.util.bounce */
5943 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Bounce
))
5944 return 0; /* no values available */
5945 atom
->ull
= proc_meminfo
.Bounce
>> 10;
5947 case 33: /* mem.util.NFS_Unstable */
5948 if (!MEMINFO_VALID_VALUE(proc_meminfo
.NFS_Unstable
))
5949 return 0; /* no values available */
5950 atom
->ull
= proc_meminfo
.NFS_Unstable
>> 10;
5952 case 34: /* mem.util.slabReclaimable */
5953 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SlabReclaimable
))
5954 return 0; /* no values available */
5955 atom
->ull
= proc_meminfo
.SlabReclaimable
>> 10;
5957 case 35: /* mem.util.slabUnreclaimable */
5958 if (!MEMINFO_VALID_VALUE(proc_meminfo
.SlabUnreclaimable
))
5959 return 0; /* no values available */
5960 atom
->ull
= proc_meminfo
.SlabUnreclaimable
>> 10;
5962 case 36: /* mem.util.active_anon */
5963 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Active_anon
))
5964 return 0; /* no values available */
5965 atom
->ull
= proc_meminfo
.Active_anon
>> 10;
5967 case 37: /* mem.util.inactive_anon */
5968 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Inactive_anon
))
5969 return 0; /* no values available */
5970 atom
->ull
= proc_meminfo
.Inactive_anon
>> 10;
5972 case 38: /* mem.util.active_file */
5973 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Active_file
))
5974 return 0; /* no values available */
5975 atom
->ull
= proc_meminfo
.Active_file
>> 10;
5977 case 39: /* mem.util.inactive_file */
5978 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Inactive_file
))
5979 return 0; /* no values available */
5980 atom
->ull
= proc_meminfo
.Inactive_file
>> 10;
5982 case 40: /* mem.util.unevictable */
5983 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Unevictable
))
5984 return 0; /* no values available */
5985 atom
->ull
= proc_meminfo
.Unevictable
>> 10;
5987 case 41: /* mem.util.mlocked */
5988 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Mlocked
))
5989 return 0; /* no values available */
5990 atom
->ull
= proc_meminfo
.Mlocked
>> 10;
5992 case 42: /* mem.util.shmem */
5993 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Shmem
))
5994 return 0; /* no values available */
5995 atom
->ull
= proc_meminfo
.Shmem
>> 10;
5997 case 43: /* mem.util.kernelStack */
5998 if (!MEMINFO_VALID_VALUE(proc_meminfo
.KernelStack
))
5999 return 0; /* no values available */
6000 atom
->ull
= proc_meminfo
.KernelStack
>> 10;
6002 case 44: /* mem.util.hugepagesTotal */
6003 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesTotal
))
6004 return 0; /* no values available */
6005 atom
->ull
= proc_meminfo
.HugepagesTotal
;
6007 case 45: /* mem.util.hugepagesFree */
6008 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesFree
))
6009 return 0; /* no values available */
6010 atom
->ull
= proc_meminfo
.HugepagesFree
;
6012 case 46: /* mem.util.hugepagesRsvd */
6013 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesRsvd
))
6014 return 0; /* no values available */
6015 atom
->ull
= proc_meminfo
.HugepagesRsvd
;
6017 case 47: /* mem.util.hugepagesSurp */
6018 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesSurp
))
6019 return 0; /* no values available */
6020 atom
->ull
= proc_meminfo
.HugepagesSurp
;
6022 case 48: /* mem.util.directMap4k */
6023 if (!MEMINFO_VALID_VALUE(proc_meminfo
.directMap4k
))
6024 return 0; /* no values available */
6025 atom
->ull
= proc_meminfo
.directMap4k
>> 10;
6027 case 49: /* mem.util.directMap2M */
6028 if (!MEMINFO_VALID_VALUE(proc_meminfo
.directMap2M
))
6029 return 0; /* no values available */
6030 atom
->ull
= proc_meminfo
.directMap2M
>> 10;
6032 case 50: /* mem.util.vmallocTotal */
6033 if (!MEMINFO_VALID_VALUE(proc_meminfo
.VmallocTotal
))
6034 return 0; /* no values available */
6035 atom
->ull
= proc_meminfo
.VmallocTotal
>> 10;
6037 case 51: /* mem.util.vmallocUsed */
6038 if (!MEMINFO_VALID_VALUE(proc_meminfo
.VmallocUsed
))
6039 return 0; /* no values available */
6040 atom
->ull
= proc_meminfo
.VmallocUsed
>> 10;
6042 case 52: /* mem.util.vmallocChunk */
6043 if (!MEMINFO_VALID_VALUE(proc_meminfo
.VmallocChunk
))
6044 return 0; /* no values available */
6045 atom
->ull
= proc_meminfo
.VmallocChunk
>> 10;
6047 case 53: /* mem.util.mmap_copy */
6048 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MmapCopy
))
6049 return 0; /* no values available */
6050 atom
->ull
= proc_meminfo
.MmapCopy
>> 10;
6052 case 54: /* mem.util.quicklists */
6053 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Quicklists
))
6054 return 0; /* no values available */
6055 atom
->ull
= proc_meminfo
.Quicklists
>> 10;
6057 case 55: /* mem.util.corrupthardware */
6058 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HardwareCorrupted
))
6059 return 0; /* no values available */
6060 atom
->ull
= proc_meminfo
.HardwareCorrupted
>> 10;
6062 case 56: /* mem.util.anonhugepages */
6063 if (!MEMINFO_VALID_VALUE(proc_meminfo
.AnonHugePages
))
6064 return 0; /* no values available */
6065 atom
->ull
= proc_meminfo
.AnonHugePages
>> 10;
6067 case 57: /* mem.util.directMap1G */
6068 if (!MEMINFO_VALID_VALUE(proc_meminfo
.directMap1G
))
6069 return 0; /* no values available */
6070 atom
->ull
= proc_meminfo
.directMap1G
>> 10;
6072 case 58: /* mem.util.available */
6073 if (!MEMINFO_VALID_VALUE(proc_meminfo
.MemAvailable
))
6074 return 0; /* no values available */
6075 atom
->ull
= proc_meminfo
.MemAvailable
>> 10;
6077 case 59: /* hinv.hugepagesize (in bytes) */
6078 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Hugepagesize
))
6079 return 0; /* no values available */
6080 atom
->ul
= proc_meminfo
.Hugepagesize
;
6082 case 60: /* mem.util.hugepagesTotalBytes */
6083 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesTotal
))
6084 return 0; /* no values available */
6085 atom
->ull
= proc_meminfo
.HugepagesTotal
* proc_meminfo
.Hugepagesize
;
6087 case 61: /* mem.util.hugepagesFreeBytes */
6088 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesFree
))
6089 return 0; /* no values available */
6090 atom
->ull
= proc_meminfo
.HugepagesFree
* proc_meminfo
.Hugepagesize
;
6092 case 62: /* mem.util.hugepagesRsvdBytes */
6093 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesRsvd
))
6094 return 0; /* no values available */
6095 atom
->ull
= proc_meminfo
.HugepagesRsvd
* proc_meminfo
.Hugepagesize
;
6097 case 63: /* mem.util.hugepagesSurpBytes */
6098 if (!MEMINFO_VALID_VALUE(proc_meminfo
.HugepagesSurp
))
6099 return 0; /* no values available */
6100 atom
->ull
= proc_meminfo
.HugepagesSurp
* proc_meminfo
.Hugepagesize
;
6107 case CLUSTER_LOADAVG
:
6109 case 0: /* kernel.all.load */
6111 atom
->f
= proc_loadavg
.loadavg
[0];
6114 atom
->f
= proc_loadavg
.loadavg
[1];
6117 atom
->f
= proc_loadavg
.loadavg
[2];
6121 case 1: /* kernel.all.lastpid -- added by "Mike Mason" <mmlnx@us.ibm.com> */
6122 atom
->ul
= proc_loadavg
.lastpid
;
6124 case 2: /* kernel.all.runnable */
6125 atom
->ul
= proc_loadavg
.runnable
;
6127 case 3: /* kernel.all.nprocs */
6128 atom
->ul
= proc_loadavg
.nprocs
;
6135 case CLUSTER_NET_DEV
: /* network.interface */
6136 if (idp
->item
== 27) { /* hinv.ninterface */
6137 atom
->ul
= pmdaCacheOp(INDOM(NET_DEV_INDOM
), PMDA_CACHE_SIZE_ACTIVE
);
6140 sts
= pmdaCacheLookup(INDOM(NET_DEV_INDOM
), inst
, NULL
, (void **)&netip
);
6143 if (idp
->item
<= 15) {
6144 /* network.interface.{in,out} */
6145 atom
->ull
= netip
->counters
[idp
->item
];
6148 switch (idp
->item
) {
6149 case 16: /* network.interface.total.bytes */
6150 atom
->ull
= netip
->counters
[0] + netip
->counters
[8];
6152 case 17: /* network.interface.total.packets */
6153 atom
->ull
= netip
->counters
[1] + netip
->counters
[9];
6155 case 18: /* network.interface.total.errors */
6156 atom
->ull
= netip
->counters
[2] + netip
->counters
[10];
6158 case 19: /* network.interface.total.drops */
6159 atom
->ull
= netip
->counters
[3] + netip
->counters
[11];
6161 case 20: /* network.interface.total.mcasts */
6163 * NOTE: there is no network.interface.out.mcasts metric
6164 * so this total only includes network.interface.in.mcasts
6166 atom
->ull
= netip
->counters
[7];
6168 case 21: /* network.interface.mtu */
6169 if (!netip
->ioc
.mtu
)
6171 atom
->ul
= netip
->ioc
.mtu
;
6173 case 22: /* network.interface.speed */
6174 if (!netip
->ioc
.speed
)
6176 atom
->f
= ((float)netip
->ioc
.speed
* 1000000) / 8 / 1024 / 1024;
6178 case 23: /* network.interface.baudrate */
6179 if (!netip
->ioc
.speed
)
6181 atom
->ull
= ((unsigned long long)netip
->ioc
.speed
* 1000000 / 8);
6183 case 24: /* network.interface.duplex */
6184 if (!netip
->ioc
.duplex
)
6186 atom
->ul
= netip
->ioc
.duplex
;
6188 case 25: /* network.interface.up */
6189 atom
->ul
= netip
->ioc
.linkup
;
6191 case 26: /* network.interface.running */
6192 atom
->ul
= netip
->ioc
.running
;
6199 case CLUSTER_NET_ADDR
:
6200 sts
= pmdaCacheLookup(INDOM(NET_ADDR_INDOM
), inst
, NULL
, (void **)&addrp
);
6203 if (sts
!= PMDA_CACHE_ACTIVE
)
6205 switch (idp
->item
) {
6206 case 0: /* network.interface.inet_addr */
6207 if (addrp
->has_inet
== 0)
6209 atom
->cp
= addrp
->inet
;
6211 case 1: /* network.interface.ipv6_addr */
6212 if (addrp
->has_ipv6
== 0)
6214 atom
->cp
= addrp
->ipv6
;
6216 case 2: /* network.interface.ipv6_scope */
6217 if (addrp
->has_ipv6
== 0)
6219 atom
->cp
= lookup_ipv6_scope(addrp
->ipv6scope
);
6221 case 3: /* network.interface.hw_addr */
6222 if (addrp
->has_hw
== 0)
6224 atom
->cp
= addrp
->hw_addr
;
6231 case CLUSTER_FILESYS
:
6233 atom
->ul
= pmdaCacheOp(INDOM(FILESYS_INDOM
), PMDA_CACHE_SIZE_ACTIVE
);
6235 struct statfs
*sbuf
;
6236 __uint64_t ull
, used
;
6238 sts
= pmdaCacheLookup(INDOM(FILESYS_INDOM
), inst
, NULL
, (void **)&fs
);
6241 if (sts
!= PMDA_CACHE_ACTIVE
)
6245 if (!(fs
->flags
& FSF_FETCHED
)) {
6246 if (statfs(fs
->path
, sbuf
) < 0)
6248 fs
->flags
|= FSF_FETCHED
;
6251 switch (idp
->item
) {
6252 case 1: /* filesys.capacity */
6253 ull
= (__uint64_t
)sbuf
->f_blocks
;
6254 atom
->ull
= ull
* sbuf
->f_bsize
/ 1024;
6256 case 2: /* filesys.used */
6257 used
= (__uint64_t
)(sbuf
->f_blocks
- sbuf
->f_bfree
);
6258 atom
->ull
= used
* sbuf
->f_bsize
/ 1024;
6260 case 3: /* filesys.free */
6261 ull
= (__uint64_t
)sbuf
->f_bfree
;
6262 atom
->ull
= ull
* sbuf
->f_bsize
/ 1024;
6264 case 4: /* filesys.maxfiles */
6265 atom
->ul
= sbuf
->f_files
;
6267 case 5: /* filesys.usedfiles */
6268 atom
->ul
= sbuf
->f_files
- sbuf
->f_ffree
;
6270 case 6: /* filesys.freefiles */
6271 atom
->ul
= sbuf
->f_ffree
;
6273 case 7: /* filesys.mountdir */
6274 atom
->cp
= fs
->path
;
6276 case 8: /* filesys.full */
6277 used
= (__uint64_t
)(sbuf
->f_blocks
- sbuf
->f_bfree
);
6278 ull
= used
+ (__uint64_t
)sbuf
->f_bavail
;
6279 atom
->d
= (100.0 * (double)used
) / (double)ull
;
6281 case 9: /* filesys.blocksize -- added by Mike Mason <mmlnx@us.ibm.com> */
6282 atom
->ul
= sbuf
->f_bsize
;
6284 case 10: /* filesys.avail -- added by Mike Mason <mmlnx@us.ibm.com> */
6285 ull
= (__uint64_t
)sbuf
->f_bavail
;
6286 atom
->ull
= ull
* sbuf
->f_bsize
/ 1024;
6288 case 11: /* filesys.readonly */
6289 atom
->ul
= (scan_filesys_options(fs
->options
, "ro") != NULL
);
6297 case CLUSTER_TMPFS
: {
6298 struct statfs
*sbuf
;
6299 __uint64_t ull
, used
;
6301 sts
= pmdaCacheLookup(INDOM(TMPFS_INDOM
), inst
, NULL
, (void **)&fs
);
6304 if (sts
!= PMDA_CACHE_ACTIVE
)
6308 if (!(fs
->flags
& FSF_FETCHED
)) {
6309 if (statfs(fs
->path
, sbuf
) < 0)
6311 fs
->flags
|= FSF_FETCHED
;
6314 switch (idp
->item
) {
6315 case 1: /* tmpfs.capacity */
6316 ull
= (__uint64_t
)sbuf
->f_blocks
;
6317 atom
->ull
= ull
* sbuf
->f_bsize
/ 1024;
6319 case 2: /* tmpfs.used */
6320 used
= (__uint64_t
)(sbuf
->f_blocks
- sbuf
->f_bfree
);
6321 atom
->ull
= used
* sbuf
->f_bsize
/ 1024;
6323 case 3: /* tmpfs.free */
6324 ull
= (__uint64_t
)sbuf
->f_bfree
;
6325 atom
->ull
= ull
* sbuf
->f_bsize
/ 1024;
6327 case 4: /* tmpfs.maxfiles */
6328 atom
->ul
= sbuf
->f_files
;
6330 case 5: /* tmpfs.usedfiles */
6331 atom
->ul
= sbuf
->f_files
- sbuf
->f_ffree
;
6333 case 6: /* tmpfs.freefiles */
6334 atom
->ul
= sbuf
->f_ffree
;
6336 case 7: /* tmpfs.full */
6337 used
= (__uint64_t
)(sbuf
->f_blocks
- sbuf
->f_bfree
);
6338 ull
= used
+ (__uint64_t
)sbuf
->f_bavail
;
6339 atom
->d
= (100.0 * (double)used
) / (double)ull
;
6347 case CLUSTER_SWAPDEV
: {
6348 struct swapdev
*swap
;
6350 sts
= pmdaCacheLookup(INDOM(SWAPDEV_INDOM
), inst
, NULL
, (void **)&swap
);
6353 if (sts
!= PMDA_CACHE_ACTIVE
)
6356 switch (idp
->item
) {
6357 case 0: /* swapdev.free (kbytes) */
6358 atom
->ul
= swap
->size
- swap
->used
;
6360 case 1: /* swapdev.length (kbytes) */
6361 case 2: /* swapdev.maxswap (kbytes) */
6362 atom
->ul
= swap
->size
;
6364 case 3: /* swapdev.vlength (kbytes) */
6367 case 4: /* swapdev.priority */
6368 atom
->l
= swap
->priority
;
6376 case CLUSTER_NET_NFS
:
6377 switch (idp
->item
) {
6378 case 1: /* nfs.client.calls */
6379 if (proc_net_rpc
.client
.errcode
!= 0)
6380 return 0; /* no values available */
6381 for (atom
->ul
=0, i
=0; i
< NR_RPC_COUNTERS
; i
++) {
6382 atom
->ul
+= proc_net_rpc
.client
.reqcounts
[i
];
6385 case 50: /* nfs.server.calls */
6386 if (proc_net_rpc
.server
.errcode
!= 0)
6387 return 0; /* no values available */
6388 for (atom
->ul
=0, i
=0; i
< NR_RPC_COUNTERS
; i
++) {
6389 atom
->ul
+= proc_net_rpc
.server
.reqcounts
[i
];
6392 case 4: /* nfs.client.reqs */
6393 if (proc_net_rpc
.client
.errcode
!= 0)
6394 return 0; /* no values available */
6395 if (inst
< NR_RPC_COUNTERS
)
6396 atom
->ul
= proc_net_rpc
.client
.reqcounts
[inst
];
6401 case 12: /* nfs.server.reqs */
6402 if (proc_net_rpc
.server
.errcode
!= 0)
6403 return 0; /* no values available */
6404 if (inst
< NR_RPC_COUNTERS
)
6405 atom
->ul
= proc_net_rpc
.server
.reqcounts
[inst
];
6410 case 60: /* nfs3.client.calls */
6411 if (proc_net_rpc
.client
.errcode
!= 0)
6412 return 0; /* no values available */
6413 for (atom
->ul
=0, i
=0; i
< NR_RPC3_COUNTERS
; i
++) {
6414 atom
->ul
+= proc_net_rpc
.client
.reqcounts3
[i
];
6418 case 62: /* nfs3.server.calls */
6419 if (proc_net_rpc
.server
.errcode
!= 0)
6420 return 0; /* no values available */
6421 for (atom
->ul
=0, i
=0; i
< NR_RPC3_COUNTERS
; i
++) {
6422 atom
->ul
+= proc_net_rpc
.server
.reqcounts3
[i
];
6426 case 61: /* nfs3.client.reqs */
6427 if (proc_net_rpc
.client
.errcode
!= 0)
6428 return 0; /* no values available */
6429 if (inst
< NR_RPC3_COUNTERS
)
6430 atom
->ul
= proc_net_rpc
.client
.reqcounts3
[inst
];
6435 case 63: /* nfs3.server.reqs */
6436 if (proc_net_rpc
.server
.errcode
!= 0)
6437 return 0; /* no values available */
6438 if (inst
< NR_RPC3_COUNTERS
)
6439 atom
->ul
= proc_net_rpc
.server
.reqcounts3
[inst
];
6444 case 64: /* nfs4.client.calls */
6445 if (proc_net_rpc
.client
.errcode
!= 0)
6446 return 0; /* no values available */
6447 for (atom
->ul
=0, i
=0; i
< NR_RPC4_CLI_COUNTERS
; i
++) {
6448 atom
->ul
+= proc_net_rpc
.client
.reqcounts4
[i
];
6452 case 66: /* nfs4.server.calls */
6453 if (proc_net_rpc
.server
.errcode
!= 0)
6454 return 0; /* no values available */
6455 for (atom
->ul
=0, i
=0; i
< NR_RPC4_SVR_COUNTERS
; i
++) {
6456 atom
->ul
+= proc_net_rpc
.server
.reqcounts4
[i
+1];
6460 case 65: /* nfs4.client.reqs */
6461 if (proc_net_rpc
.client
.errcode
!= 0)
6462 return 0; /* no values available */
6463 if (inst
< NR_RPC4_CLI_COUNTERS
)
6464 atom
->ul
= proc_net_rpc
.client
.reqcounts4
[inst
];
6469 case 67: /* nfs4.server.reqs */
6470 if (proc_net_rpc
.server
.errcode
!= 0)
6471 return 0; /* no values available */
6472 if (inst
&& inst
<= NR_RPC4_SVR_COUNTERS
)
6473 atom
->ul
= proc_net_rpc
.server
.reqcounts4
[inst
];
6479 * Note: all other rpc metric values are extracted directly via the
6480 * address specified in the metrictab (see above)
6488 if (proc_slabinfo
.permission
!= 1)
6491 if (proc_slabinfo
.ncaches
== 0)
6492 return 0; /* no values available */
6494 if (inst
>= proc_slabinfo
.ncaches
)
6498 case 0: /* mem.slabinfo.objects.active */
6499 atom
->ull
= proc_slabinfo
.caches
[inst
].num_active_objs
;
6501 case 1: /* mem.slabinfo.objects.total */
6502 atom
->ull
= proc_slabinfo
.caches
[inst
].total_objs
;
6504 case 2: /* mem.slabinfo.objects.size */
6505 if (proc_slabinfo
.caches
[inst
].seen
< 11) /* version 1.1 or later only */
6507 atom
->ul
= proc_slabinfo
.caches
[inst
].object_size
;
6509 case 3: /* mem.slabinfo.slabs.active */
6510 if (proc_slabinfo
.caches
[inst
].seen
< 11) /* version 1.1 or later only */
6512 atom
->ul
= proc_slabinfo
.caches
[inst
].num_active_slabs
;
6514 case 4: /* mem.slabinfo.slabs.total */
6515 if (proc_slabinfo
.caches
[inst
].seen
== 11) /* version 1.1 only */
6517 atom
->ul
= proc_slabinfo
.caches
[inst
].total_slabs
;
6519 case 5: /* mem.slabinfo.slabs.pages_per_slab */
6520 if (proc_slabinfo
.caches
[inst
].seen
< 11) /* version 1.1 or later only */
6522 atom
->ul
= proc_slabinfo
.caches
[inst
].pages_per_slab
;
6524 case 6: /* mem.slabinfo.slabs.objects_per_slab */
6525 if (proc_slabinfo
.caches
[inst
].seen
!= 20) /* version 2.0 only */
6527 atom
->ul
= proc_slabinfo
.caches
[inst
].objects_per_slab
;
6529 case 7: /* mem.slabinfo.slabs.total_size */
6530 if (proc_slabinfo
.caches
[inst
].seen
< 11) /* version 1.1 or later only */
6532 atom
->ull
= proc_slabinfo
.caches
[inst
].total_size
;
6539 case CLUSTER_PARTITIONS
:
6540 return proc_partitions_fetch(mdesc
, inst
, atom
);
6544 sts
= pmdaCacheLookup(INDOM(SCSI_INDOM
), inst
, NULL
, (void **)&scsi_entry
);
6547 if (sts
== PMDA_CACHE_INACTIVE
)
6549 switch (idp
->item
) {
6550 case 0: /* hinv.map.scsi */
6551 atom
->cp
= (scsi_entry
&& scsi_entry
->dev_name
) ? scsi_entry
->dev_name
: "";
6558 case CLUSTER_KERNEL_UNAME
:
6560 case 5: /* pmda.uname */
6561 sprintf(uname_string
, "%s %s %s %s %s",
6562 kernel_uname
.sysname
,
6563 kernel_uname
.nodename
,
6564 kernel_uname
.release
,
6565 kernel_uname
.version
,
6566 kernel_uname
.machine
);
6567 atom
->cp
= uname_string
;
6570 case 6: /* pmda.version */
6571 atom
->cp
= pmGetConfig("PCP_VERSION");
6574 case 7: /* kernel.uname.distro ... not from uname(2) */
6575 atom
->cp
= get_distro_info();
6583 case CLUSTER_CPUINFO
:
6584 if (inst
!= PM_IN_NULL
&&
6585 pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
6587 switch (idp
->item
) {
6588 case 0: /* hinv.cpu.clock */
6589 if (cp
->info
.clock
== 0.0)
6591 atom
->f
= cp
->info
.clock
;
6593 case 1: /* hinv.cpu.vendor */
6594 i
= cp
->info
.vendor
;
6595 if ((atom
->cp
= linux_strings_lookup(i
)) == NULL
)
6596 atom
->cp
= "unknown";
6598 case 2: /* hinv.cpu.model */
6599 if ((i
= cp
->info
.model
) < 0)
6600 i
= cp
->info
.model_name
;
6601 if ((atom
->cp
= linux_strings_lookup(i
)) == NULL
)
6602 atom
->cp
= "unknown";
6604 case 3: /* hinv.cpu.stepping */
6605 i
= cp
->info
.stepping
;
6606 if ((atom
->cp
= linux_strings_lookup(i
)) == NULL
)
6607 atom
->cp
= "unknown";
6609 case 4: /* hinv.cpu.cache */
6610 if (!cp
->info
.cache
)
6612 atom
->ul
= cp
->info
.cache
;
6614 case 5: /* hinv.cpu.bogomips */
6615 if (cp
->info
.bogomips
== 0.0)
6617 atom
->f
= cp
->info
.bogomips
;
6619 case 6: /* hinv.map.cpu_num */
6620 atom
->ul
= cp
->cpuid
;
6622 case 7: /* hinv.machine ... not from /proc/stat */
6623 atom
->cp
= get_machine_info(kernel_uname
.machine
);
6625 case 8: /* hinv.map.cpu_node */
6626 atom
->ul
= cp
->nodeid
;
6628 case 9: /* hinv.cpu.model_name */
6629 if ((i
= cp
->info
.model_name
) < 0)
6631 if ((atom
->cp
= linux_strings_lookup(i
)) == NULL
)
6632 atom
->cp
= "unknown";
6634 case 10: /* hinv.cpu.flags */
6636 if ((atom
->cp
= linux_strings_lookup(i
)) == NULL
)
6637 atom
->cp
= "unknown";
6639 case 11: /* hinv.cpu.cache_alignment */
6640 if (!cp
->info
.cache_align
)
6642 atom
->ul
= cp
->info
.cache_align
;
6650 case CLUSTER_SYSFS_DEVICES
:
6651 switch (idp
->item
) {
6652 case 0: /* hinv.cpu.online */
6653 if (pmdaCacheLookup(INDOM(CPU_INDOM
), inst
, NULL
, NULL
) < 0)
6655 atom
->ul
= refresh_sysfs_online(inst
, "cpu");
6657 case 1: /* hinv.node.online */
6658 if (pmdaCacheLookup(INDOM(NODE_INDOM
), inst
, NULL
, NULL
) < 0)
6660 atom
->ul
= refresh_sysfs_online(inst
, "node");
6669 * Cluster added by Wu Liming <wulm.fnst@cn.fujitsu.com>
6671 case CLUSTER_ZONEINFO_PROTECTION
: {
6672 unsigned long long *value
;
6673 sts
= pmdaCacheLookup(INDOM(ZONEINFO_PROTECTION_INDOM
), inst
, NULL
, (void **)&value
);
6676 if (sts
== PMDA_CACHE_INACTIVE
)
6678 switch (idp
->item
) {
6679 case 0: /* mem.zoneinfo.protection */
6680 atom
->ull
= (__uint64_t
)*value
;
6685 case CLUSTER_ZONEINFO
: {
6686 zoneinfo_entry_t
*info
;
6688 sts
= pmdaCacheLookup(INDOM(ZONEINFO_INDOM
), inst
, NULL
, (void **)&info
);
6691 if (sts
== PMDA_CACHE_INACTIVE
)
6693 if (idp
->item
>= ZONE_VALUES
)
6695 atom
->ull
= info
->values
[idp
->item
];
6699 case CLUSTER_KSM_INFO
:
6700 switch (idp
->item
) {
6701 case 0: /* mem.ksm.full_scans */
6702 _pm_assign_ulong(atom
, ksm_info
.full_scans
);
6704 case 1: /* mem.ksm.merge_across_nodes */
6705 _pm_assign_ulong(atom
, ksm_info
.merge_across_nodes
);
6707 case 2: /* mem.ksm.pages_shared */
6708 _pm_assign_ulong(atom
, ksm_info
.pages_shared
);
6710 case 3: /* mem.ksm.pages_sharing */
6711 _pm_assign_ulong(atom
, ksm_info
.pages_sharing
);
6713 case 4: /* mem.ksm.pages_to_scan */
6714 _pm_assign_ulong(atom
, ksm_info
.pages_to_scan
);
6716 case 5: /* mem.ksm.pages_unshared */
6717 _pm_assign_ulong(atom
, ksm_info
.pages_unshared
);
6719 case 6: /* mem.ksm.pages_volatile */
6720 _pm_assign_ulong(atom
, ksm_info
.pages_volatile
);
6722 case 7: /* mem.ksm.run_state */
6723 _pm_assign_ulong(atom
, ksm_info
.run
);
6725 case 8: /* mem.ksm.sleep_time */
6726 _pm_assign_ulong(atom
, ksm_info
.sleep_millisecs
);
6733 case CLUSTER_SEM_INFO
:
6734 switch (idp
->item
) {
6735 case 0: /* ipc.sem.used_sem */
6736 atom
->ul
= _sem_info
.semusz
;
6738 case 1: /* ipc.sem.tot_sem */
6739 atom
->ul
= _sem_info
.semaem
;
6747 * Cluster added by Wu Liming <wulm.fnst@cn.fujitsu.com>
6749 case CLUSTER_SHM_STAT
: {
6751 shm_stat_t
*shm_stat
;
6753 sts
= pmdaCacheLookup(INDOM(IPC_STAT_INDOM
), inst
, NULL
, (void **)&shm_stat
);
6756 if (sts
!= PMDA_CACHE_ACTIVE
)
6758 switch (idp
->item
) {
6759 case 0: /* ipc.shm.key */
6760 atom
->cp
= (char *)shm_stat
->shm_key
;
6762 case 1: /* ipc.shm.owner */
6763 atom
->cp
= (char *)shm_stat
->shm_owner
;
6765 case 2: /* ipc.shm.perms */
6766 atom
->ul
= shm_stat
->shm_perms
;
6768 case 3: /* ipc.shm.segsz */
6769 atom
->ul
= shm_stat
->shm_bytes
;
6771 case 4: /* ipc.shm.nattch */
6772 atom
->ul
= shm_stat
->shm_nattch
;
6774 case 5: /* ipc.shm.status */
6775 atom
->cp
= (char *)shm_stat
->shm_status
;
6783 case CLUSTER_MSG_STAT
: {
6787 sts
= pmdaCacheLookup(INDOM(IPC_MSG_INDOM
), inst
, NULL
, (void **)&msg_que
);
6790 if (sts
!= PMDA_CACHE_ACTIVE
)
6792 switch (idp
->item
) {
6793 case 0: /* ipc.msg.key */
6794 atom
->cp
= (char *)msg_que
->msg_key
;
6796 case 1: /* ipc.msg.owner */
6797 atom
->cp
= (char *)msg_que
->msg_owner
;
6799 case 2: /* ipc.msg.perms */
6800 atom
->ul
= msg_que
->msg_perms
;
6802 case 3: /* ipc.msg.msgsz */
6803 atom
->ul
= msg_que
->msg_bytes
;
6805 case 4: /* ipc.shm.messages */
6806 atom
->ul
= msg_que
->messages
;
6814 case CLUSTER_SEM_STAT
: {
6816 sem_array_t
*sem_arr
;
6818 sts
= pmdaCacheLookup(INDOM(IPC_SEM_INDOM
), inst
, NULL
, (void **)&sem_arr
);
6821 if (sts
!= PMDA_CACHE_ACTIVE
)
6823 switch (idp
->item
) {
6824 case 0: /* ipc.sem.key */
6825 atom
->cp
= (char *)sem_arr
->sem_key
;
6827 case 1: /* ipc.sem.owner */
6828 atom
->cp
= (char *)sem_arr
->sem_owner
;
6830 case 2: /* ipc.sem.perms */
6831 atom
->ul
= sem_arr
->sem_perms
;
6833 case 3: /* ipc.sem.nsems */
6834 atom
->ul
= sem_arr
->nsems
;
6843 * Cluster added by Mike Mason <mmlnx@us.ibm.com>
6845 case CLUSTER_SEM_LIMITS
:
6846 switch (idp
->item
) {
6847 case 0: /* ipc.sem.max_semmap */
6848 atom
->ul
= sem_limits
.semmap
;
6850 case 1: /* ipc.sem.max_semid */
6851 atom
->ul
= sem_limits
.semmni
;
6853 case 2: /* ipc.sem.max_sem */
6854 atom
->ul
= sem_limits
.semmns
;
6856 case 3: /* ipc.sem.num_undo */
6857 atom
->ul
= sem_limits
.semmnu
;
6859 case 4: /* ipc.sem.max_perid */
6860 atom
->ul
= sem_limits
.semmsl
;
6862 case 5: /* ipc.sem.max_ops */
6863 atom
->ul
= sem_limits
.semopm
;
6865 case 6: /* ipc.sem.max_undoent */
6866 atom
->ul
= sem_limits
.semume
;
6868 case 7: /* ipc.sem.sz_semundo */
6869 atom
->ul
= sem_limits
.semusz
;
6871 case 8: /* ipc.sem.max_semval */
6872 atom
->ul
= sem_limits
.semvmx
;
6874 case 9: /* ipc.sem.max_exit */
6875 atom
->ul
= sem_limits
.semaem
;
6882 case CLUSTER_SHM_INFO
:
6883 switch (idp
->item
) {
6884 case 0: /* ipc.shm.tot */
6885 atom
->ul
= _shm_info
.shm_tot
;
6887 case 1: /* ipc.shm.rss */
6888 atom
->ul
= _shm_info
.shm_rss
;
6890 case 2: /* ipc.shm.swp */
6891 atom
->ul
= _shm_info
.shm_swp
;
6893 case 3: /* ipc.shm.used_ids */
6894 atom
->ul
= _shm_info
.used_ids
;
6896 case 4: /* ipc.shm.swap_attempts */
6897 atom
->ul
= _shm_info
.swap_attempts
;
6899 case 5: /* ipc.shm.swap_successes */
6900 atom
->ul
= _shm_info
.swap_successes
;
6908 * Cluster added by Wu Liming <wulm.fnst@cn.fujitsu.com>
6910 case CLUSTER_MSG_INFO
:
6911 switch (idp
->item
) {
6912 case 0: /* ipc.msg.used_queues */
6913 atom
->ul
= _msg_info
.msgpool
;
6915 case 1: /* ipc.msg.tot_msg */
6916 atom
->ul
= _msg_info
.msgmap
;
6918 case 2: /* ipc.msg.tot_bytes */
6919 atom
->ul
= _msg_info
.msgtql
;
6927 * Cluster added by Mike Mason <mmlnx@us.ibm.com>
6929 case CLUSTER_MSG_LIMITS
:
6930 switch (idp
->item
) {
6931 case 0: /* ipc.msg.sz_pool */
6932 atom
->ul
= msg_limits
.msgpool
;
6934 case 1: /* ipc.msg.mapent */
6935 atom
->ul
= msg_limits
.msgmap
;
6937 case 2: /* ipc.msg.max_msgsz */
6938 atom
->ul
= msg_limits
.msgmax
;
6940 case 3: /* ipc.msg.max_defmsgq */
6941 atom
->ul
= msg_limits
.msgmnb
;
6943 case 4: /* ipc.msg.max_msgqid */
6944 atom
->ul
= msg_limits
.msgmni
;
6946 case 5: /* ipc.msg.sz_msgseg */
6947 atom
->ul
= msg_limits
.msgssz
;
6949 case 6: /* ipc.msg.num_smsghdr */
6950 atom
->ul
= msg_limits
.msgtql
;
6952 case 7: /* ipc.msg.max_seg */
6953 atom
->ul
= (unsigned long) msg_limits
.msgseg
;
6961 * Cluster added by Mike Mason <mmlnx@us.ibm.com>
6963 case CLUSTER_SHM_LIMITS
:
6964 switch (idp
->item
) {
6965 case 0: /* ipc.shm.max_segsz */
6966 atom
->ul
= shm_limits
.shmmax
;
6968 case 1: /* ipc.shm.min_segsz */
6969 atom
->ul
= shm_limits
.shmmin
;
6971 case 2: /* ipc.shm.max_seg */
6972 atom
->ul
= shm_limits
.shmmni
;
6974 case 3: /* ipc.shm.max_segproc */
6975 atom
->ul
= shm_limits
.shmseg
;
6977 case 4: /* ipc.shm.max_shmsys */
6978 atom
->ul
= shm_limits
.shmall
;
6986 * Cluster added by Mike Mason <mmlnx@us.ibm.com>
6988 case CLUSTER_NUSERS
:
6990 /* count the number of users */
6994 while ((ut
= getutent())) {
6995 if ((ut
->ut_type
== USER_PROCESS
) && (ut
->ut_name
[0] != '\0'))
7002 case CLUSTER_IB
: /* deprecated: network.ib, use infiniband PMDA */
7003 return PM_ERR_APPVERSION
;
7005 case CLUSTER_NUMA_MEMINFO
:
7006 /* NUMA memory metrics from /sys/devices/system/node/nodeX */
7007 sts
= pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&np
);
7008 if (sts
!= PMDA_CACHE_ACTIVE
)
7011 switch (idp
->item
) {
7012 case 0: /* mem.numa.util.total */
7013 sts
= linux_table_lookup("MemTotal:", np
->meminfo
, &atom
->ull
);
7015 case 1: /* mem.numa.util.free */
7016 sts
= linux_table_lookup("MemFree:", np
->meminfo
, &atom
->ull
);
7018 case 2: /* mem.numa.util.used */
7019 sts
= linux_table_lookup("MemUsed:", np
->meminfo
, &atom
->ull
);
7021 case 3: /* mem.numa.util.active */
7022 sts
= linux_table_lookup("Active:", np
->meminfo
, &atom
->ull
);
7024 case 4: /* mem.numa.util.inactive */
7025 sts
= linux_table_lookup("Inactive:", np
->meminfo
, &atom
->ull
);
7027 case 5: /* mem.numa.util.active_anon */
7028 sts
= linux_table_lookup("Active(anon):", np
->meminfo
, &atom
->ull
);
7030 case 6: /* mem.numa.util.inactive_anon */
7031 sts
= linux_table_lookup("Inactive(anon):", np
->meminfo
, &atom
->ull
);
7033 case 7: /* mem.numa.util.active_file */
7034 sts
= linux_table_lookup("Active(file):", np
->meminfo
, &atom
->ull
);
7036 case 8: /* mem.numa.util.inactive_file */
7037 sts
= linux_table_lookup("Inactive(file):", np
->meminfo
, &atom
->ull
);
7039 case 9: /* mem.numa.util.highTotal */
7040 sts
= linux_table_lookup("HighTotal:", np
->meminfo
, &atom
->ull
);
7042 case 10: /* mem.numa.util.highFree */
7043 sts
= linux_table_lookup("HighFree:", np
->meminfo
, &atom
->ull
);
7045 case 11: /* mem.numa.util.lowTotal */
7046 sts
= linux_table_lookup("LowTotal:", np
->meminfo
, &atom
->ull
);
7048 case 12: /* mem.numa.util.lowFree */
7049 sts
= linux_table_lookup("LowFree:", np
->meminfo
, &atom
->ull
);
7051 case 13: /* mem.numa.util.unevictable */
7052 sts
= linux_table_lookup("Unevictable:", np
->meminfo
, &atom
->ull
);
7054 case 14: /* mem.numa.util.mlocked */
7055 sts
= linux_table_lookup("Mlocked:", np
->meminfo
, &atom
->ull
);
7057 case 15: /* mem.numa.util.dirty */
7058 sts
= linux_table_lookup("Dirty:", np
->meminfo
, &atom
->ull
);
7060 case 16: /* mem.numa.util.writeback */
7061 sts
= linux_table_lookup("Writeback:", np
->meminfo
, &atom
->ull
);
7063 case 17: /* mem.numa.util.filePages */
7064 sts
= linux_table_lookup("FilePages:", np
->meminfo
, &atom
->ull
);
7066 case 18: /* mem.numa.util.mapped */
7067 sts
= linux_table_lookup("Mapped:", np
->meminfo
, &atom
->ull
);
7069 case 19: /* mem.numa.util.anonPages */
7070 sts
= linux_table_lookup("AnonPages:", np
->meminfo
, &atom
->ull
);
7072 case 20: /* mem.numa.util.shmem */
7073 sts
= linux_table_lookup("Shmem:", np
->meminfo
, &atom
->ull
);
7075 case 21: /* mem.numa.util.kernelStack */
7076 sts
= linux_table_lookup("KernelStack:", np
->meminfo
, &atom
->ull
);
7078 case 22: /* mem.numa.util.pageTables */
7079 sts
= linux_table_lookup("PageTables:", np
->meminfo
, &atom
->ull
);
7081 case 23: /* mem.numa.util.NFS_Unstable */
7082 sts
= linux_table_lookup("NFS_Unstable:", np
->meminfo
, &atom
->ull
);
7084 case 24: /* mem.numa.util.bounce */
7085 sts
= linux_table_lookup("Bounce:", np
->meminfo
, &atom
->ull
);
7087 case 25: /* mem.numa.util.writebackTmp */
7088 sts
= linux_table_lookup("WritebackTmp:", np
->meminfo
, &atom
->ull
);
7090 case 26: /* mem.numa.util.slab */
7091 sts
= linux_table_lookup("Slab:", np
->meminfo
, &atom
->ull
);
7093 case 27: /* mem.numa.util.slabReclaimable */
7094 sts
= linux_table_lookup("SReclaimable:", np
->meminfo
, &atom
->ull
);
7096 case 28: /* mem.numa.util.slabUnreclaimable */
7097 sts
= linux_table_lookup("SUnreclaim:", np
->meminfo
, &atom
->ull
);
7099 case 29: /* mem.numa.util.hugepagesTotal */
7100 sts
= linux_table_lookup("HugePages_Total:", np
->meminfo
, &atom
->ull
);
7102 case 30: /* mem.numa.util.hugepagesFree */
7103 sts
= linux_table_lookup("HugePages_Free:", np
->meminfo
, &atom
->ull
);
7105 case 31: /* mem.numa.util.hugepagesSurp */
7106 sts
= linux_table_lookup("HugePages_Surp:", np
->meminfo
, &atom
->ull
);
7108 case 32: /* mem.numa.alloc.hit */
7109 sts
= linux_table_lookup("numa_hit", np
->memstat
, &atom
->ull
);
7111 case 33: /* mem.numa.alloc.miss */
7112 sts
= linux_table_lookup("numa_miss", np
->memstat
, &atom
->ull
);
7114 case 34: /* mem.numa.alloc.foreign */
7115 sts
= linux_table_lookup("numa_foreign", np
->memstat
, &atom
->ull
);
7117 case 35: /* mem.numa.alloc.interleave_hit */
7118 sts
= linux_table_lookup("interleave_hit", np
->memstat
, &atom
->ull
);
7120 case 36: /* mem.numa.alloc.local_node */
7121 sts
= linux_table_lookup("local_node", np
->memstat
, &atom
->ull
);
7123 case 37: /* mem.numa.alloc.other_node */
7124 sts
= linux_table_lookup("other_node", np
->memstat
, &atom
->ull
);
7126 case 38: /* mem.numa.max_bandwidth */
7127 atom
->d
= np
->bandwidth
;
7128 sts
= (atom
->d
> 0.0);
7130 case 39: /* mem.numa.util.hugepagesTotalBytes */
7131 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Hugepagesize
))
7132 return 0; /* no values available */
7133 sts
= linux_table_lookup("HugePages_Total:", np
->meminfo
, &atom
->ull
);
7134 atom
->ull
*= proc_meminfo
.Hugepagesize
;
7136 case 40: /* mem.numa.util.hugepagesFreeBytes */
7137 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Hugepagesize
))
7138 return 0; /* no values available */
7139 sts
= linux_table_lookup("HugePages_Free:", np
->meminfo
, &atom
->ull
);
7140 atom
->ull
*= proc_meminfo
.Hugepagesize
;
7142 case 41: /* mem.numa.util.hugepagesSurpBytes */
7143 if (!MEMINFO_VALID_VALUE(proc_meminfo
.Hugepagesize
))
7144 return 0; /* no values available */
7145 sts
= linux_table_lookup("HugePages_Surp:", np
->meminfo
, &atom
->ull
);
7146 atom
->ull
*= proc_meminfo
.Hugepagesize
;
7154 case CLUSTER_INTERRUPT_LINES
:
7155 case CLUSTER_INTERRUPT_OTHER
:
7156 case CLUSTER_INTERRUPTS
:
7157 case CLUSTER_SOFTIRQS
:
7158 return interrupts_fetch(idp
->cluster
, idp
->item
, inst
, atom
);
7163 return proc_partitions_fetch(mdesc
, inst
, atom
);
7165 case CLUSTER_NET_SOFTNET
:
7166 switch (idp
->item
) {
7167 case 0: /* network.softnet.processed */
7168 if (!(proc_net_softnet
.flags
& SN_PROCESSED
))
7169 return PM_ERR_APPVERSION
;
7170 atom
->ull
= proc_net_softnet
.processed
;
7172 case 1: /* network.softnet.dropped */
7173 if (!(proc_net_softnet
.flags
& SN_DROPPED
))
7174 return PM_ERR_APPVERSION
;
7175 atom
->ull
= proc_net_softnet
.dropped
;
7177 case 2: /* network.softnet.time_squeeze */
7178 if (!(proc_net_softnet
.flags
& SN_TIME_SQUEEZE
))
7179 return PM_ERR_APPVERSION
;
7180 atom
->ull
= proc_net_softnet
.time_squeeze
;
7182 case 3: /* network.softnet.cpu_collision */
7183 if (!(proc_net_softnet
.flags
& SN_CPU_COLLISION
))
7184 return PM_ERR_APPVERSION
;
7185 atom
->ull
= proc_net_softnet
.cpu_collision
;
7187 case 4: /* network.softnet.received_rps */
7188 if (!(proc_net_softnet
.flags
& SN_RECEIVED_RPS
))
7189 return PM_ERR_APPVERSION
;
7190 atom
->ull
= proc_net_softnet
.received_rps
;
7192 case 5: /* network.softnet.flow_limit_count */
7193 if (!(proc_net_softnet
.flags
& SN_FLOW_LIMIT_COUNT
))
7194 return PM_ERR_APPVERSION
;
7195 atom
->ull
= proc_net_softnet
.flow_limit_count
;
7197 case 6: /* network.softnet.percpu.processed */
7198 if (!(proc_net_softnet
.flags
& SN_PROCESSED
))
7199 return PM_ERR_APPVERSION
;
7200 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
7202 atom
->ull
= cp
->softnet
->processed
;
7204 case 7: /* network.softnet.percpu.dropped */
7205 if (!(proc_net_softnet
.flags
& SN_DROPPED
))
7206 return PM_ERR_APPVERSION
;
7207 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
7209 atom
->ull
= cp
->softnet
->dropped
;
7211 case 8: /* network.softnet.percpu.time_squeeze */
7212 if (!(proc_net_softnet
.flags
& SN_TIME_SQUEEZE
))
7213 return PM_ERR_APPVERSION
;
7214 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
7216 atom
->ull
= cp
->softnet
->time_squeeze
;
7218 case 9: /* network.softnet.percpu.cpu_collision */
7219 if (!(proc_net_softnet
.flags
& SN_CPU_COLLISION
))
7220 return PM_ERR_APPVERSION
;
7221 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
7223 atom
->ull
= cp
->softnet
->cpu_collision
;
7225 case 10: /* network.softnet.percpu.received_rps */
7226 if (!(proc_net_softnet
.flags
& SN_RECEIVED_RPS
))
7227 return PM_ERR_APPVERSION
;
7228 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
7230 atom
->ull
= cp
->softnet
->received_rps
;
7232 case 11: /* network.softnet.percpu.flow_limit_count */
7233 if (!(proc_net_softnet
.flags
& SN_FLOW_LIMIT_COUNT
))
7234 return PM_ERR_APPVERSION
;
7235 if (pmdaCacheLookup(mdesc
->m_desc
.indom
, inst
, NULL
, (void **)&cp
) < 0)
7237 atom
->ull
= cp
->softnet
->flow_limit_count
;
7244 case CLUSTER_BUDDYINFO
:
7245 if (inst
>= proc_buddyinfo
.nbuddys
)
7247 switch (idp
->item
) {
7249 _pm_assign_ulong(atom
, proc_buddyinfo
.buddys
[inst
].value
);
7252 atom
->ull
= proc_buddyinfo
.buddys
[inst
].value
<< _pm_pageshift
;
7253 atom
->ull
/= 1024; /* convert to kilobytes */
7260 case CLUSTER_TAPEDEV
:
7261 if (idp
->item
== TAPESTATS_HINV_NTAPE
) {
7263 atom
->ul
= pmdaCacheOp(INDOM(TAPEDEV_INDOM
), PMDA_CACHE_SIZE_ACTIVE
);
7267 * tape.dev.* counters are direct indexed by item, see sysfs_tapestats.h
7269 tapedev_t
*tape
= NULL
;
7271 if (idp
->item
>= TAPESTATS_COUNT
)
7273 sts
= pmdaCacheLookup(INDOM(TAPEDEV_INDOM
), inst
, NULL
, (void **)&tape
);
7276 if (sts
!= PMDA_CACHE_ACTIVE
|| tape
== NULL
)
7278 atom
->ull
= tape
->counts
[idp
->item
];
7282 default: /* unknown cluster */
7291 linux_fetch(int numpmid
, pmID pmidlist
[], pmResult
**resp
, pmdaExt
*pmda
)
7293 int i
, sts
, need_refresh
[NUM_REFRESHES
] = {0};
7295 for (i
= 0; i
< numpmid
; i
++) {
7296 __pmID_int
*idp
= (__pmID_int
*)&(pmidlist
[i
]);
7298 if (idp
->cluster
>= NUM_CLUSTERS
)
7301 switch (idp
->cluster
) {
7306 if (is_partitions_metric(pmidlist
[i
]))
7307 need_refresh
[CLUSTER_PARTITIONS
]++;
7308 else if (idp
->item
!= 48) /* hz */
7309 need_refresh
[idp
->cluster
]++;
7310 /* In 2.6 kernels, swap.{pagesin,pagesout} are in /proc/vmstat */
7311 if (_pm_have_proc_vmstat
&& idp
->cluster
== CLUSTER_STAT
) {
7312 if (idp
->item
>= 8 && idp
->item
<= 11)
7313 need_refresh
[CLUSTER_VMSTAT
]++;
7317 case CLUSTER_CPUINFO
:
7318 case CLUSTER_INTERRUPT_LINES
:
7319 case CLUSTER_INTERRUPT_OTHER
:
7320 case CLUSTER_INTERRUPTS
:
7321 case CLUSTER_SOFTIRQS
:
7322 case CLUSTER_SYSFS_DEVICES
:
7323 case CLUSTER_NET_SOFTNET
:
7324 need_refresh
[idp
->cluster
]++;
7325 need_refresh
[CLUSTER_STAT
]++;
7328 case CLUSTER_NUMA_MEMINFO
:
7329 need_refresh
[idp
->cluster
]++;
7330 need_refresh
[CLUSTER_MEMINFO
]++;
7333 case CLUSTER_NET_DEV
:
7334 need_refresh
[idp
->cluster
]++;
7335 switch (idp
->item
) {
7336 case 21: /* network.interface.mtu */
7337 need_refresh
[REFRESH_NET_MTU
]++;
7339 case 22: /* network.interface.speed */
7340 case 23: /* network.interface.baudrate */
7341 need_refresh
[REFRESH_NET_SPEED
]++;
7343 case 24: /* network.interface.duplex */
7344 need_refresh
[REFRESH_NET_DUPLEX
]++;
7346 case 25: /* network.interface.up */
7347 need_refresh
[REFRESH_NET_LINKUP
]++;
7349 case 26: /* network.interface.running */
7350 need_refresh
[REFRESH_NET_RUNNING
]++;
7355 case CLUSTER_NET_ADDR
:
7356 need_refresh
[idp
->cluster
]++;
7357 switch (idp
->item
) {
7358 case 0: /* network.interface.ipv4_addr */
7359 need_refresh
[REFRESH_NETADDR_INET
]++;
7361 case 1: /* network.interface.ipv6_addr */
7362 case 2: /* network.interface.ipv6_scope */
7363 need_refresh
[REFRESH_NETADDR_IPV6
]++;
7365 case 3: /* network.interface.hw_addr */
7366 need_refresh
[REFRESH_NETADDR_HW
]++;
7372 need_refresh
[idp
->cluster
]++;
7377 if ((sts
= linux_refresh(pmda
, need_refresh
, pmda
->e_context
)) < 0)
7379 return pmdaFetch(numpmid
, pmidlist
, resp
, pmda
);
7383 linux_text(int ident
, int type
, char **buf
, pmdaExt
*pmda
)
7385 if ((type
& PM_TEXT_PMID
) == PM_TEXT_PMID
) {
7386 int sts
= pmdaDynamicLookupText(ident
, type
, buf
, pmda
);
7390 return pmdaText(ident
, type
, buf
, pmda
);
7394 linux_pmid(const char *name
, pmID
*pmid
, pmdaExt
*pmda
)
7396 pmdaNameSpace
*tree
= pmdaDynamicLookupName(pmda
, name
);
7397 return pmdaTreePMID(tree
, name
, pmid
);
7401 linux_name(pmID pmid
, char ***nameset
, pmdaExt
*pmda
)
7403 pmdaNameSpace
*tree
= pmdaDynamicLookupPMID(pmda
, pmid
);
7404 return pmdaTreeName(tree
, pmid
, nameset
);
7408 linux_children(const char *name
, int flag
, char ***kids
, int **sts
, pmdaExt
*pmda
)
7410 pmdaNameSpace
*tree
= pmdaDynamicLookupName(pmda
, name
);
7411 return pmdaTreeChildren(tree
, name
, flag
, kids
, sts
);
7415 linux_grow_ctxtab(int ctx
)
7417 /* expand and initialize the per client context table */
7418 ctxtab
= (perctx_t
*)realloc(ctxtab
, (ctx
+1)*sizeof(ctxtab
[0]));
7419 if (ctxtab
== NULL
) {
7420 __pmNoMem("grow_ctxtab", (ctx
+1)*sizeof(ctxtab
[0]), PM_FATAL_ERR
);
7423 while (num_ctx
<= ctx
) {
7424 memset(&ctxtab
[num_ctx
], 0, sizeof(perctx_t
));
7427 memset(&ctxtab
[ctx
], 0, sizeof(perctx_t
));
7431 linux_end_context(int ctx
)
7433 if (ctx
>= 0 && ctx
< num_ctx
) {
7434 if (ctxtab
[ctx
].container
.name
)
7435 free(ctxtab
[ctx
].container
.name
);
7436 if (ctxtab
[ctx
].container
.netfd
)
7437 close(ctxtab
[ctx
].container
.netfd
);
7438 memset(&ctxtab
[ctx
], 0, sizeof(perctx_t
));
7443 linux_attribute(int ctx
, int attr
, const char *value
, int len
, pmdaExt
*pmda
)
7446 if (attr
== PCP_ATTR_USERID
|| attr
== PCP_ATTR_CONTAINER
) {
7448 linux_grow_ctxtab(ctx
);
7450 if (attr
== PCP_ATTR_USERID
) {
7451 ctxtab
[ctx
].access
.uid_flag
= 1;
7452 ctxtab
[ctx
].access
.uid
= id
= atoi(value
);
7454 if (attr
== PCP_ATTR_CONTAINER
) {
7455 if (ctxtab
[ctx
].container
.name
)
7456 free(ctxtab
[ctx
].container
.name
);
7457 if ((ctxtab
[ctx
].container
.name
= strdup(value
)) == NULL
)
7459 ctxtab
[ctx
].container
.length
= len
;
7460 ctxtab
[ctx
].container
.netfd
= -1;
7461 ctxtab
[ctx
].container
.pid
= 0;
7463 return pmdaAttribute(ctx
, attr
, value
, len
, pmda
);
7467 linux_indom(int serial
)
7469 return indomtab
[serial
].it_indom
;
7473 linux_pmda_indom(int serial
)
7475 return &indomtab
[serial
];
7479 * Helper routines for accessing a generic static string dictionary
7483 linux_strings_lookup(int index
)
7486 pmInDom dict
= INDOM(STRINGS_INDOM
);
7488 if (pmdaCacheLookup(dict
, index
, &value
, NULL
) == PMDA_CACHE_ACTIVE
)
7494 linux_strings_insert(const char *buf
)
7496 pmInDom dict
= INDOM(STRINGS_INDOM
);
7497 return pmdaCacheStore(dict
, PMDA_CACHE_ADD
, buf
, NULL
);
7501 * Initialise the agent (both daemon and DSO).
7506 linux_init(pmdaInterface
*dp
)
7508 int i
, major
, minor
, point
;
7509 size_t nmetrics
, nindoms
;
7513 /* optional overrides of some globals for testing */
7514 if ((envpath
= getenv("LINUX_HERTZ")) != NULL
) {
7515 linux_test_mode
|= LINUX_TEST_MODE
;
7518 hz
= sysconf(_SC_CLK_TCK
);
7519 if ((envpath
= getenv("LINUX_NCPUS")) != NULL
) {
7520 linux_test_mode
|= (LINUX_TEST_MODE
|LINUX_TEST_NCPUS
);
7521 _pm_ncpus
= atoi(envpath
);
7523 _pm_ncpus
= sysconf(_SC_NPROCESSORS_CONF
);
7524 if ((envpath
= getenv("LINUX_PAGESIZE")) != NULL
) {
7525 linux_test_mode
|= LINUX_TEST_MODE
;
7526 _pm_pageshift
= ffs(atoi(envpath
)) - 1;
7528 _pm_pageshift
= ffs(getpagesize()) - 1;
7529 if ((envpath
= getenv("LINUX_STATSPATH")) != NULL
) {
7530 linux_test_mode
|= (LINUX_TEST_MODE
|LINUX_TEST_STATSPATH
);
7531 linux_statspath
= envpath
;
7533 if ((envpath
= getenv("LINUX_MDADM")) != NULL
) {
7534 linux_test_mode
|= LINUX_TEST_MODE
;
7535 linux_mdadm
= envpath
;
7537 if (getenv("PCP_QA_ESTIMATE_MEMAVAILABLE") != NULL
)
7538 linux_test_mode
|= (LINUX_TEST_MODE
|LINUX_TEST_MEMINFO
);
7541 char helppath
[MAXPATHLEN
];
7542 int sep
= __pmPathSeparator();
7543 snprintf(helppath
, sizeof(helppath
), "%s%c" "linux" "%c" "help",
7544 pmGetConfig("PCP_PMDAS_DIR"), sep
, sep
);
7545 pmdaDSO(dp
, PMDA_INTERFACE_6
, "linux DSO", helppath
);
7548 __pmSetProcessIdentity(username
);
7551 if (dp
->status
!= 0)
7553 dp
->comm
.flags
|= (PDU_FLAG_AUTH
|PDU_FLAG_CONTAINER
);
7555 dp
->version
.six
.instance
= linux_instance
;
7556 dp
->version
.six
.fetch
= linux_fetch
;
7557 dp
->version
.six
.text
= linux_text
;
7558 dp
->version
.six
.pmid
= linux_pmid
;
7559 dp
->version
.six
.name
= linux_name
;
7560 dp
->version
.six
.children
= linux_children
;
7561 dp
->version
.six
.attribute
= linux_attribute
;
7562 dp
->version
.six
.ext
->e_endCallBack
= linux_end_context
;
7563 pmdaSetFetchCallBack(dp
, linux_fetchCallBack
);
7565 proc_slabinfo
.indom
= &indomtab
[SLAB_INDOM
];
7566 proc_buddyinfo
.indom
= &indomtab
[BUDDYINFO_INDOM
];
7569 * Figure out kernel version. The precision of certain metrics
7570 * (e.g. percpu time counters) has changed over kernel versions.
7571 * See include/linux/kernel_stat.h for all the various flavours.
7573 uname(&kernel_uname
);
7576 _pm_cputime_size
= 8;
7577 _pm_idletime_size
= 8;
7578 if (sscanf(kernel_uname
.release
, "%d.%d.%d", &major
, &minor
, &point
) == 3) {
7579 if (major
< 2 || (major
== 2 && minor
<= 4)) { /* 2.4 and earlier */
7582 _pm_cputime_size
= 4;
7583 _pm_idletime_size
= sizeof(unsigned long);
7585 else if (major
== 2 && minor
== 6 &&
7586 point
>= 0 && point
<= 4) { /* 2.6.0->.4 */
7587 _pm_cputime_size
= 4;
7588 _pm_idletime_size
= 4;
7591 for (i
= 0; i
< sizeof(metrictab
)/sizeof(pmdaMetric
); i
++) {
7592 idp
= (__pmID_int
*)&(metrictab
[i
].m_desc
.pmid
);
7593 if (idp
->cluster
== CLUSTER_STAT
) {
7594 switch (idp
->item
) {
7595 case 0: /* kernel.percpu.cpu.user */
7596 case 1: /* kernel.percpu.cpu.nice */
7597 case 2: /* kernel.percpu.cpu.sys */
7598 case 20: /* kernel.all.cpu.user */
7599 case 21: /* kernel.all.cpu.nice */
7600 case 22: /* kernel.all.cpu.sys */
7601 case 30: /* kernel.percpu.cpu.wait.total */
7602 case 31: /* kernel.percpu.cpu.intr */
7603 case 34: /* kernel.all.cpu.intr */
7604 case 35: /* kernel.all.cpu.wait.total */
7605 case 53: /* kernel.all.cpu.irq.soft */
7606 case 54: /* kernel.all.cpu.irq.hard */
7607 case 55: /* kernel.all.cpu.steal */
7608 case 56: /* kernel.percpu.cpu.irq.soft */
7609 case 57: /* kernel.percpu.cpu.irq.hard */
7610 case 58: /* kernel.percpu.cpu.steal */
7611 case 60: /* kernel.all.cpu.guest */
7612 case 78: /* kernel.all.cpu.vuser */
7613 case 81: /* kernel.all.cpu.guest_nice */
7614 case 82: /* kernel.all.cpu.vnice */
7615 case 61: /* kernel.percpu.cpu.guest */
7616 case 76: /* kernel.percpu.cpu.vuser */
7617 case 83: /* kernel.percpu.cpu.guest_nice */
7618 case 84: /* kernel.percpu.cpu.vnice */
7619 case 62: /* kernel.pernode.cpu.user */
7620 case 63: /* kernel.pernode.cpu.nice */
7621 case 64: /* kernel.pernode.cpu.sys */
7622 case 69: /* kernel.pernode.cpu.wait.total */
7623 case 66: /* kernel.pernode.cpu.intr */
7624 case 70: /* kernel.pernode.cpu.irq.soft */
7625 case 71: /* kernel.pernode.cpu.irq.hard */
7626 case 67: /* kernel.pernode.cpu.steal */
7627 case 68: /* kernel.pernode.cpu.guest */
7628 case 77: /* kernel.pernode.cpu.vuser */
7629 case 85: /* kernel.pernode.cpu.guest_nice */
7630 case 86: /* kernel.pernode.cpu.vnice */
7631 _pm_metric_type(metrictab
[i
].m_desc
.type
, _pm_cputime_size
);
7633 case 3: /* kernel.percpu.cpu.idle */
7634 case 23: /* kernel.all.cpu.idle */
7635 case 65: /* kernel.pernode.cpu.idle */
7636 _pm_metric_type(metrictab
[i
].m_desc
.type
, _pm_idletime_size
);
7638 case 12: /* kernel.all.intr */
7639 _pm_metric_type(metrictab
[i
].m_desc
.type
, _pm_intr_size
);
7641 case 13: /* kernel.all.pswitch */
7642 _pm_metric_type(metrictab
[i
].m_desc
.type
, _pm_ctxt_size
);
7646 if (metrictab
[i
].m_desc
.type
== PM_TYPE_NOSUPPORT
)
7647 fprintf(stderr
, "Bad kernel metric descriptor type (%u.%u)\n",
7648 idp
->cluster
, idp
->item
);
7651 nindoms
= sizeof(indomtab
)/sizeof(indomtab
[0]);
7652 nmetrics
= sizeof(metrictab
)/sizeof(metrictab
[0]);
7655 interrupts_init(metrictab
, nmetrics
);
7657 rootfd
= pmdaRootConnect(NULL
);
7658 pmdaSetFlags(dp
, PMDA_EXT_FLAG_HASHED
);
7659 pmdaInit(dp
, indomtab
, nindoms
, metrictab
, nmetrics
);
7661 /* string metrics use the pmdaCache API for value indexing */
7662 pmdaCacheOp(INDOM(STRINGS_INDOM
), PMDA_CACHE_STRINGS
);
7664 /* dynamic metrics using the pmdaCache API for name<->item mapping */
7665 pmdaCacheOp(INDOM(INTERRUPT_NAMES_INDOM
), PMDA_CACHE_STRINGS
);
7666 pmdaCacheResize(INDOM(INTERRUPT_NAMES_INDOM
), (1 << 10)-1);
7667 pmdaCacheOp(INDOM(SOFTIRQS_NAMES_INDOM
), PMDA_CACHE_STRINGS
);
7668 pmdaCacheResize(INDOM(SOFTIRQS_NAMES_INDOM
), (1 << 10)-1);
7671 pmLongOptions longopts
[] = {
7672 PMDA_OPTIONS_HEADER("Options"),
7681 pmdaOptions opts
= {
7682 .short_options
= "D:d:l:U:?",
7683 .long_options
= longopts
,
7687 * Set up the agent if running as a daemon.
7690 main(int argc
, char **argv
)
7692 int sep
= __pmPathSeparator();
7693 pmdaInterface dispatch
;
7694 char helppath
[MAXPATHLEN
];
7697 __pmSetProgname(argv
[0]);
7699 snprintf(helppath
, sizeof(helppath
), "%s%c" "linux" "%c" "help",
7700 pmGetConfig("PCP_PMDAS_DIR"), sep
, sep
);
7701 pmdaDaemon(&dispatch
, PMDA_INTERFACE_6
, pmProgname
, LINUX
, "linux.log", helppath
);
7703 pmdaGetOptions(argc
, argv
, &opts
, &dispatch
);
7705 pmdaUsageMessage(&opts
);
7709 username
= opts
.username
;
7711 pmdaOpenLog(&dispatch
);
7712 linux_init(&dispatch
);
7713 pmdaConnect(&dispatch
);
7714 pmdaMain(&dispatch
);