1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_SB_COUNTERS_FORMAT_H
3#define _BCACHEFS_SB_COUNTERS_FORMAT_H
4
5#define BCH_PERSISTENT_COUNTERS() \
6 x(io_read, 0) \
7 x(io_write, 1) \
8 x(io_move, 2) \
9 x(bucket_invalidate, 3) \
10 x(bucket_discard, 4) \
11 x(bucket_alloc, 5) \
12 x(bucket_alloc_fail, 6) \
13 x(btree_cache_scan, 7) \
14 x(btree_cache_reap, 8) \
15 x(btree_cache_cannibalize, 9) \
16 x(btree_cache_cannibalize_lock, 10) \
17 x(btree_cache_cannibalize_lock_fail, 11) \
18 x(btree_cache_cannibalize_unlock, 12) \
19 x(btree_node_write, 13) \
20 x(btree_node_read, 14) \
21 x(btree_node_compact, 15) \
22 x(btree_node_merge, 16) \
23 x(btree_node_split, 17) \
24 x(btree_node_rewrite, 18) \
25 x(btree_node_alloc, 19) \
26 x(btree_node_free, 20) \
27 x(btree_node_set_root, 21) \
28 x(btree_path_relock_fail, 22) \
29 x(btree_path_upgrade_fail, 23) \
30 x(btree_reserve_get_fail, 24) \
31 x(journal_entry_full, 25) \
32 x(journal_full, 26) \
33 x(journal_reclaim_finish, 27) \
34 x(journal_reclaim_start, 28) \
35 x(journal_write, 29) \
36 x(read_promote, 30) \
37 x(read_bounce, 31) \
38 x(read_split, 33) \
39 x(read_retry, 32) \
40 x(read_reuse_race, 34) \
41 x(move_extent_read, 35) \
42 x(move_extent_write, 36) \
43 x(move_extent_finish, 37) \
44 x(move_extent_fail, 38) \
45 x(move_extent_start_fail, 39) \
46 x(copygc, 40) \
47 x(copygc_wait, 41) \
48 x(gc_gens_end, 42) \
49 x(gc_gens_start, 43) \
50 x(trans_blocked_journal_reclaim, 44) \
51 x(trans_restart_btree_node_reused, 45) \
52 x(trans_restart_btree_node_split, 46) \
53 x(trans_restart_fault_inject, 47) \
54 x(trans_restart_iter_upgrade, 48) \
55 x(trans_restart_journal_preres_get, 49) \
56 x(trans_restart_journal_reclaim, 50) \
57 x(trans_restart_journal_res_get, 51) \
58 x(trans_restart_key_cache_key_realloced, 52) \
59 x(trans_restart_key_cache_raced, 53) \
60 x(trans_restart_mark_replicas, 54) \
61 x(trans_restart_mem_realloced, 55) \
62 x(trans_restart_memory_allocation_failure, 56) \
63 x(trans_restart_relock, 57) \
64 x(trans_restart_relock_after_fill, 58) \
65 x(trans_restart_relock_key_cache_fill, 59) \
66 x(trans_restart_relock_next_node, 60) \
67 x(trans_restart_relock_parent_for_fill, 61) \
68 x(trans_restart_relock_path, 62) \
69 x(trans_restart_relock_path_intent, 63) \
70 x(trans_restart_too_many_iters, 64) \
71 x(trans_restart_traverse, 65) \
72 x(trans_restart_upgrade, 66) \
73 x(trans_restart_would_deadlock, 67) \
74 x(trans_restart_would_deadlock_write, 68) \
75 x(trans_restart_injected, 69) \
76 x(trans_restart_key_cache_upgrade, 70) \
77 x(trans_traverse_all, 71) \
78 x(transaction_commit, 72) \
79 x(write_super, 73) \
80 x(trans_restart_would_deadlock_recursion_limit, 74) \
81 x(trans_restart_write_buffer_flush, 75) \
82 x(trans_restart_split_race, 76) \
83 x(write_buffer_flush_slowpath, 77) \
84 x(write_buffer_flush_sync, 78)
85
86enum bch_persistent_counters {
87#define x(t, n, ...) BCH_COUNTER_##t,
88 BCH_PERSISTENT_COUNTERS()
89#undef x
90 BCH_COUNTER_NR
91};
92
93struct bch_sb_field_counters {
94 struct bch_sb_field field;
95 __le64 d[];
96};
97
98#endif /* _BCACHEFS_SB_COUNTERS_FORMAT_H */
99

source code of linux/fs/bcachefs/sb-counters_format.h