This source file includes following definitions.
- RF_user_acc_stats_t
- RF_recon_acc_stats_t
- RF_AccTraceEntry_t
- RF_AccTotals_t
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 #ifndef _RF__RF_ACCTRACE_H_
39 #define _RF__RF_ACCTRACE_H_
40
41 #include "rf_types.h"
42 #include "rf_hist.h"
43 #include "rf_etimer.h"
44
45 typedef struct RF_user_acc_stats_s {
46 RF_uint64 suspend_ovhd_us;
47
48
49
50 RF_uint64 map_us;
51 RF_uint64 lock_us;
52
53
54
55
56 RF_uint64 dag_create_us;
57 RF_uint64 dag_retry_us;
58
59
60
61 RF_uint64 exec_us;
62 RF_uint64 exec_engine_us;
63
64
65
66 RF_uint64 cleanup_us;
67
68
69
70 } RF_user_acc_stats_t;
71
72 typedef struct RF_recon_acc_stats_s {
73 RF_uint32 recon_start_to_fetch_us;
74 RF_uint32 recon_fetch_to_return_us;
75 RF_uint32 recon_return_to_submit_us;
76 } RF_recon_acc_stats_t;
77
78 typedef struct RF_acctrace_entry_s {
79 union {
80 RF_user_acc_stats_t user;
81 RF_recon_acc_stats_t recon;
82 } specific;
83 RF_uint8 reconacc;
84
85
86
87 RF_uint64 xor_us;
88 RF_uint64 q_us;
89 RF_uint64 plog_us;
90
91
92
93 RF_uint64 diskqueue_us;
94
95
96
97 RF_uint64 diskwait_us;
98
99
100
101 RF_uint64 total_us;
102 RF_uint64 num_phys_ios;
103 RF_uint64 phys_io_us;
104 RF_Etimer_t tot_timer;
105
106
107
108 RF_Etimer_t timer;
109
110
111
112
113 RF_Etimer_t recon_timer;
114 RF_uint64 index;
115 } RF_AccTraceEntry_t;
116
117 typedef struct RF_AccTotals_s {
118
119 RF_uint64 suspend_ovhd_us;
120 RF_uint64 map_us;
121 RF_uint64 lock_us;
122 RF_uint64 dag_create_us;
123 RF_uint64 dag_retry_us;
124 RF_uint64 exec_us;
125 RF_uint64 exec_engine_us;
126 RF_uint64 cleanup_us;
127 RF_uint64 user_reccount;
128
129 RF_uint64 recon_start_to_fetch_us;
130 RF_uint64 recon_fetch_to_return_us;
131 RF_uint64 recon_return_to_submit_us;
132 RF_uint64 recon_io_overflow_count;
133 RF_uint64 recon_phys_io_us;
134 RF_uint64 recon_num_phys_ios;
135 RF_uint64 recon_diskwait_us;
136 RF_uint64 recon_reccount;
137
138 RF_uint64 xor_us;
139 RF_uint64 q_us;
140 RF_uint64 plog_us;
141 RF_uint64 diskqueue_us;
142 RF_uint64 diskwait_us;
143 RF_uint64 total_us;
144 RF_uint64 num_log_ents;
145 RF_uint64 phys_io_overflow_count;
146 RF_uint64 num_phys_ios;
147 RF_uint64 phys_io_us;
148 RF_uint64 bigvals;
149
150 RF_Hist_t dw_hist[RF_HIST_NUM_BUCKETS];
151 RF_Hist_t tot_hist[RF_HIST_NUM_BUCKETS];
152 } RF_AccTotals_t;
153
154 #if RF_UTILITY == 0
155 RF_DECLARE_EXTERN_MUTEX(rf_tracing_mutex);
156 #endif
157
158 int rf_ConfigureAccessTrace(RF_ShutdownList_t **);
159 void rf_LogTraceRec(RF_Raid_t * raid, RF_AccTraceEntry_t *);
160 void rf_FlushAccessTraceBuf(void);
161
162 #endif