summaryrefslogtreecommitdiff
path: root/src/pmdas/linux_xfs/proc_fs_xfs.h
blob: bec0514738a0997c1ae68f9802f3a206c8e900d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/* 
 * Linux /proc/fs/xfs metrics cluster
 *
 * Copyright (c) 2014 Red Hat.
 * Copyright (c) 2010 Aconex.  All Rights Reserved.
 * Copyright (c) 2000,2004 Silicon Graphics, Inc.  All Rights Reserved.
 * 
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or (at your
 * option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 */

typedef struct {
    int			errcode;	/* error from previous refresh */
    unsigned int	xs_allocx;		/* allocs.alloc_extent */
    unsigned int	xs_allocb;		/* allocs.alloc_block */
    unsigned int	xs_freex;		/* allocs.free_extent */
    unsigned int	xs_freeb;		/* allocs.free_block */

    unsigned int	xs_abt_lookup;		/* alloc_btree.lookup */
    unsigned int	xs_abt_compare;		/* alloc_btree.compare */
    unsigned int	xs_abt_insrec;		/* alloc_btree.insrec */
    unsigned int	xs_abt_delrec;		/* alloc_btree.delrec */
    unsigned int	xs_blk_mapr;		/* block_map.read_ops */
    unsigned int	xs_blk_mapw;		/* block_map.write_ops */
    unsigned int	xs_blk_unmap;		/* block_map.unmap */
    unsigned int	xs_add_exlist;		/* block_map.add_exlist */
    unsigned int	xs_del_exlist;		/* block_map.del_exlist */
    unsigned int	xs_look_exlist;		/* block_map.look_exlist */
    unsigned int	xs_cmp_exlist;		/* block_map.cmp_exlist */
    unsigned int	xs_bmbt_lookup;		/* bmap_btree.lookup */
    unsigned int	xs_bmbt_compare;	/* bmap_btree.compare */
    unsigned int	xs_bmbt_insrec;		/* bmap_btree.insrec */
    unsigned int	xs_bmbt_delrec;		/* bmap_btree.delrec */

    unsigned int	xs_dir_lookup;		/* dir_ops.lookup */
    unsigned int	xs_dir_create;		/* dir_ops.create */
    unsigned int	xs_dir_remove;		/* dir_ops.remove */
    unsigned int	xs_dir_getdents;	/* dir_ops.getdents */

    unsigned int	xs_trans_sync;		/* transactions.sync */
    unsigned int	xs_trans_async;		/* transactions.async */
    unsigned int	xs_trans_empty;		/* transactions.empty */

    unsigned int	xs_ig_attempts;		/* inode_ops.ig_attempts */
    unsigned int	xs_ig_found;		/* inode_ops.ig_found */
    unsigned int	xs_ig_frecycle;		/* inode_ops.ig_frecycle */
    unsigned int	xs_ig_missed;		/* inode_ops.ig_missed */
    unsigned int	xs_ig_dup;		/* inode_ops.ig_dup */
    unsigned int	xs_ig_reclaims;		/* inode_ops.ig_reclaims */
    unsigned int	xs_ig_attrchg;		/* inode_ops.ig_attrchg */

    unsigned int	xs_log_writes;		/* log.writes */
    unsigned int	xs_log_blocks;		/* log.blocks */
    float		xs_log_write_ratio;	/* log.write_ratio */
    unsigned int	xs_log_noiclogs;	/* log.noiclogs */

    unsigned int	xs_xstrat_quick;	/* xstrat.quick */
    unsigned int	xs_xstrat_split;	/* xstrat.split */
    unsigned int	xs_write_calls;		/* write */
    unsigned int	xs_read_calls;		/* read */

    unsigned int	xs_attr_get;		/* attr.get */
    unsigned int	xs_attr_set;		/* attr.set */
    unsigned int	xs_attr_remove;		/* attr.remove */
    unsigned int	xs_attr_list;		/* attr.list */

    unsigned int	xs_log_force;		/* log.force */
    unsigned int	xs_log_force_sleep;	/* log.force_sleep */
    unsigned int	xs_try_logspace;	/* log_tail.try_logspace */
    unsigned int	xs_sleep_logspace;	/* log_tail.sleep_logspace */
    unsigned int	xs_push_ail;		/* log_tail.push_ail.pushes */
    unsigned int	xs_push_ail_success;	/* log_tail.push_ail.success */
    unsigned int	xs_push_ail_pushbuf;	/* log_tail.push_ail.pushbuf */
    unsigned int	xs_push_ail_pinned;	/* log_tail.push_ail.pinned */
    unsigned int	xs_push_ail_locked;	/* log_tail.push_ail.locked */
    unsigned int	xs_push_ail_flushing;	/* log_tail.push_ail.flushing */
    unsigned int	xs_push_ail_restarts;	/* log_tail.push_ail.restarts */
    unsigned int	xs_push_ail_flush;	/* log_tail.push_ail.flush */

    unsigned int	xs_qm_dqreclaims;	/* quota.reclaims */
    unsigned int	xs_qm_dqreclaim_misses;	/* quota.reclaim_misses */
    unsigned int	xs_qm_dquot_dups;	/* quota.dquot_dups */
    unsigned int	xs_qm_dqcachemisses;	/* quota.cachemisses */
    unsigned int	xs_qm_dqcachehits;	/* quota.cachehits */
    unsigned int	xs_qm_dqwants;		/* quota.wants */
    unsigned int	xs_qm_dqshake_reclaims;	/* quota.shake_reclaims */
    unsigned int	xs_qm_dqinact_reclaims;	/* quota.inact_reclaims */

    unsigned int	xs_iflush_count;	/* iflush_count */
    unsigned int	xs_icluster_flushcnt;	/* icluster_flushcnt */
    unsigned int	xs_icluster_flushinode;	/* icluster_flushinode */

    unsigned int	xs_buf_get;		/* buffer.get */
    unsigned int	xs_buf_create;		/* buffer.create */
    unsigned int	xs_buf_get_locked;	/* buffer.get_locked */
    unsigned int	xs_buf_get_locked_waited; /* buffer.get_locked_waited */
    unsigned int	xs_buf_busy_locked;	/* buffer.busy_locked */
    unsigned int	xs_buf_miss_locked;	/* buffer.miss_locked */
    unsigned int	xs_buf_page_retries;	/* buffer.page_retries */
    unsigned int	xs_buf_page_found;	/* buffer.page_found */
    unsigned int	xs_buf_get_read;	/* buffer.get_read */

    unsigned int	xs_abtb_2_lookup;	/* btree.alloc_blocks.lookup */
    unsigned int	xs_abtb_2_compare;	/* btree.alloc_blocks.compare */
    unsigned int	xs_abtb_2_insrec;	/* btree.alloc_blocks.insrec */
    unsigned int	xs_abtb_2_delrec;	/* btree.alloc_blocks.delrec */
    unsigned int	xs_abtb_2_newroot;	/* btree.alloc_blocks.newroot */
    unsigned int	xs_abtb_2_killroot;	/* btree.alloc_blocks.killroot */
    unsigned int	xs_abtb_2_increment;	/* btree.alloc_blocks.increment */
    unsigned int	xs_abtb_2_decrement;	/* btree.alloc_blocks.decrement */
    unsigned int	xs_abtb_2_lshift;	/* btree.alloc_blocks.lshift */
    unsigned int	xs_abtb_2_rshift;	/* btree.alloc_blocks.rshift */
    unsigned int	xs_abtb_2_split;	/* btree.alloc_blocks.split */
    unsigned int	xs_abtb_2_join;		/* btree.alloc_blocks.join */
    unsigned int	xs_abtb_2_alloc;	/* btree.alloc_blocks.alloc */
    unsigned int	xs_abtb_2_free;		/* btree.alloc_blocks.free */
    unsigned int	xs_abtb_2_moves;	/* btree.alloc_blocks.moves */
    unsigned int	xs_abtc_2_lookup;	/* btree.alloc_contig.lookup */
    unsigned int	xs_abtc_2_compare;	/* btree.alloc_contig.compare */
    unsigned int	xs_abtc_2_insrec;	/* btree.alloc_contig.insrec */
    unsigned int	xs_abtc_2_delrec;	/* btree.alloc_contig.delrec */
    unsigned int	xs_abtc_2_newroot;	/* btree.alloc_contig.newroot */
    unsigned int	xs_abtc_2_killroot;	/* btree.alloc_contig.killroot */
    unsigned int	xs_abtc_2_increment;	/* btree.alloc_contig.increment */
    unsigned int	xs_abtc_2_decrement;	/* btree.alloc_contig.decrement */
    unsigned int	xs_abtc_2_lshift;	/* btree.alloc_contig.lshift */
    unsigned int	xs_abtc_2_rshift;	/* btree.alloc_contig.rshift */
    unsigned int	xs_abtc_2_split;	/* btree.alloc_contig.split */
    unsigned int	xs_abtc_2_join;		/* btree.alloc_contig.join */
    unsigned int	xs_abtc_2_alloc;	/* btree.alloc_contig.alloc */
    unsigned int	xs_abtc_2_free;		/* btree.alloc_contig.free */
    unsigned int	xs_abtc_2_moves;	/* btree.alloc_contig.moves */
    unsigned int	xs_bmbt_2_lookup;	/* btree.block_map.lookup */
    unsigned int	xs_bmbt_2_compare;	/* btree.block_map.compare */
    unsigned int	xs_bmbt_2_insrec;	/* btree.block_map.insrec */
    unsigned int	xs_bmbt_2_delrec;	/* btree.block_map.delrec */
    unsigned int	xs_bmbt_2_newroot;	/* btree.block_map.newroot */
    unsigned int	xs_bmbt_2_killroot;	/* btree.block_map.killroot */
    unsigned int	xs_bmbt_2_increment;	/* btree.block_map.increment */
    unsigned int	xs_bmbt_2_decrement;	/* btree.block_map.decrement */
    unsigned int	xs_bmbt_2_lshift;	/* btree.block_map.lshift */
    unsigned int	xs_bmbt_2_rshift;	/* btree.block_map.rshift */
    unsigned int	xs_bmbt_2_split;	/* btree.block_map.split */
    unsigned int	xs_bmbt_2_join;		/* btree.block_map.join */
    unsigned int	xs_bmbt_2_alloc;	/* btree.block_map.alloc */
    unsigned int	xs_bmbt_2_free;		/* btree.block_map.free */
    unsigned int	xs_bmbt_2_moves;	/* btree.block_map.moves */
    unsigned int	xs_ibt_2_lookup;	/* btree.inode.lookup */
    unsigned int	xs_ibt_2_compare;	/* btree.inode.compare */
    unsigned int	xs_ibt_2_insrec;	/* btree.inode.insrec */
    unsigned int	xs_ibt_2_delrec;	/* btree.inode.delrec */
    unsigned int	xs_ibt_2_newroot;	/* btree.inode.newroot */
    unsigned int	xs_ibt_2_killroot;	/* btree.inode.killroot */
    unsigned int	xs_ibt_2_increment;	/* btree.inode.increment */
    unsigned int	xs_ibt_2_decrement;	/* btree.inode.decrement */
    unsigned int	xs_ibt_2_lshift;	/* btree.inode.lshift */
    unsigned int	xs_ibt_2_rshift;	/* btree.inode.rshift */
    unsigned int	xs_ibt_2_split;		/* btree.inode.split */
    unsigned int	xs_ibt_2_join;		/* btree.inode.join */
    unsigned int	xs_ibt_2_alloc;		/* btree.inode.alloc */
    unsigned int	xs_ibt_2_free;		/* btree.inode.free */
    unsigned int	xs_ibt_2_moves;		/* btree.inode.moves */

    struct vnodes {
	unsigned int	vn_active;		/* vnodes.active */
	unsigned int	vn_alloc;		/* vnodes.alloc */
	unsigned int	vn_get;			/* vnodes.get */
	unsigned int	vn_hold;		/* vnodes.hold */
	unsigned int	vn_rele;		/* vnodes.rele */
	unsigned int	vn_reclaim;		/* vnodes.reclaim */
	unsigned int	vn_remove;		/* vnodes.remove */
	unsigned int	vn_free;		/* vnodes.free */
    } vnodes;
    struct xpc {
	__uint64_t	xs_write_bytes;		/* write_bytes */
	__uint64_t	xs_read_bytes;		/* read_bytes */
	__uint64_t	xs_xstrat_bytes;	/* xstrat_bytes */
    } xpc;
} proc_fs_xfs_t;

extern FILE *xfs_statsfile(const char *, const char *);
extern int refresh_proc_fs_xfs(proc_fs_xfs_t *);