File: proc_wait_stat.h

package info (click to toggle)
fis-gtm 7.1-006-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 32,908 kB
  • sloc: ansic: 344,906; asm: 5,184; csh: 4,859; sh: 2,000; awk: 294; makefile: 73; sed: 13
file content (277 lines) | stat: -rw-r--r-- 18,218 bytes parent folder | download | duplicates (3)
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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
/****************************************************************
 *								*
 * Copyright (c) 2019-2021 Fidelity National Information	*
 * Services, Inc. and/or its subsidiaries. All rights reserved.	*
 *								*
 *	This source code contains the intellectual property	*
 *	of its copyright holder(s), and is made available	*
 *	under a license.  If you do not know the terms of	*
 *	the license, please stop and do not read further.	*
 *								*
 ****************************************************************/
#ifndef PROC_WAIT_STAT
#define PROC_WAIT_STAT

/* This code tracks the entrance/exit of the various crit states and keeps the statistic counters
 * (including those built up from components) updated.  During white box testing, it calls a function
 * to coordinate with test scripts.  States which are visible to the user have names and comments.
 * This file is based on information from tab_gvstats_rec.h. */
typedef enum
{
	WS_1,	/* (In ZAD) [desired_db_format_set.c] */
	WS_2,	/* JOPA:  (In JNL) [gdsfhead.h] */
	WS_3,	/* (In JNL) [jnl.h] */
	WS_4,	/* (In JNL) [jnl_write_attempt.c] */
	WS_5,	/* (In MLK) [mlk_ops.h] */
	WS_6,	/* (In ZAD) [mu_int_reg.c] */
	WS_7,	/* (In ZAD) [mu_int_wait_rdonly.c] */
	WS_8,	/* (In ZAD) [mu_reorg_upgrd_dwngrd.c] */
	WS_9,	/* (In ZAD) [mu_reorg_upgrd_dwngrd.c] */
	WS_10,	/* (In ZAD) [mupip_backup.c] */
	WS_11,	/* (In DEXA) [wcs_recover.c] */
	WS_12,	/* AFRA:  (In DEXA) [gdsfilext.c] */
	WS_13,	/* (In GLB) [gvcst_expand_free_subtree.c] */
	WS_14,	/* (In GLB) [t_qread.c] */
	WS_15,	/* BREA:  (In GLB) [t_qread.c] */
	WS_16,	/* (In GLB) [t_qread.c] */
	WS_17,	/* (In GLB) [t_qread.c] */
	WS_18,	/* (In GLB) [t_qread.c] */
	WS_19,	/* (In GLB) [updproc.c] */
	WS_20,	/* (In GLB) [verify_queue.c] */
	WS_21,	/* (In GLB) [wcs_get_space.h] */
	WS_22,	/* (In GLB) [wcs_verify.c] */
	WS_23,	/* (In GLB) [aio_shim.c] */
	WS_24,	/* (In GLB) [wcs_flu.c] */
	WS_25,	/* (In GLB) [wcs_wtfini.c] */
	WS_26,	/* (In GLB) [wcs_wtstart.c] */
	WS_27,	/* (In GLB) [wcs_wtstart_fini.c] */
	WS_28,	/* (In JNL) [jnl_phase2_cleanup.c] */
	WS_29,	/* (In JNL) [jnl_write.c] */
	WS_30,	/* (In JNL) [op_fnview.c] */
	WS_31,	/* (In JNL) [op_fnview.c] */
	WS_32,	/* (In JNL) [op_view.c] */
	WS_33,	/* (In JNL) [repl_phase2_cleanup.c] */
	WS_34,	/* (In JNL) [gtmsource_readfiles.c] */
	WS_35,	/* (In JNL) [mutex.c] */
	WS_36,	/* (In JNL) [mutex.c] */
	WS_37,	/* (In JNL) [repl_instance.c] */
	WS_38,	/* (In MLK) [mlk_ops.h] */
	WS_39,	/* MLBA:  (In MLK) [op_lock2.c] */
	WS_40,	/* (In PRC) [gds_rundown.c] */
	WS_41,	/* (In PRC) [gds_rundown.c] */
	WS_42,	/* [gds_rundown.c] */
	WS_43,	/* (In TRX) [t_begin_crit.c] */
	WS_44,	/* (In TRX) [t_commit_cleanup.c] */
	WS_45,	/* (In TRX) [t_end.c] */
	WS_46,	/* (In TRX) [t_end.c] */
	WS_47,	/* TRGA:  (In TRX) [t_end.c] */
	WS_48,	/* (In TRX) [t_retry.c] */
	WS_49,	/* (In TRX) [t_retry.c] */
	WS_50,	/* (In TRX) [t_retry.c] */
	WS_51,	/* (In TRX) [tp_hist.c] */
	WS_52,	/* (In TRX) [tp_restart.c] */
	WS_53,	/* (In TRX) [tp_tend.c] */
	WS_54,	/* (In TRX) [tp_tend.c] */
	WS_55,	/* (In ZAD) [dse.h] */
	WS_56,	/* (In ZAD) [dse_all.c] */
	WS_57,	/* (In ZAD) [dse_all.c] */
	WS_58,	/* (In ZAD) [dse_crit.c] */
	WS_59,	/* (In ZAD) [dse_maps.c] */
	WS_60,	/* (In ZAD) [dse_maps.c] */
	WS_61,	/* (In ZAD) [dse_maps.c] */
	WS_62,	/* (In ZAD) [dse_wcreinit.c] */
	WS_63,	/* (In ZAD) [gdsfhead.h] */
	WS_64,	/* (In ZAD) [mu_reorg_upgrd_dwngrd.c] */
	WS_65,	/* (In ZAD) [mupip_backup.c] */
	WS_66,	/* (In ZAD) [mupip_backup.c] */
	WS_67,	/* (In ZAD) [mupip_extend.c] */
	WS_68,	/* (In ZAD) [mupip_extend.c] */
	WS_69,	/* (In ZAD) [mupip_reorg.c] */
	WS_70,	/* (In ZAD) [mupip_reorg.c] */
	WS_71,	/* (In ZAD) [mupip_set_journal.c] */
	WS_72,	/* (In ZAD) [mur_close_files.c] */
	WS_73,	/* (In ZAD) [mur_open_files.c] */
	WS_74,	/* (In ZAD) [mur_output_record.c] */
	WS_75,	/* (In ZAD) [mur_output_record.c] */
	WS_76,	/* (In ZAD) [op_fnview.c] */
	WS_77,	/* (In ZAD) [op_fnview.c] */
	WS_78,	/* (In ZAD) [op_view.c] */
	WS_79,	/* (In ZAD) [region_freeze.c] */
	WS_80,	/* (In ZAD) [region_freeze.c] */
	WS_81,	/* (In ZAD) [region_freeze.c] */
	WS_82,	/* (In ZAD) [region_freeze.c] */
	WS_83,	/* (In ZAD) [region_freeze.c] */
	WS_84,	/* (In ZAD) [gtmsource_rootprimary_init.c] */
	WS_85,	/* (In ZAD) [mu_extract.c] */
	WS_86,	/* (In ZAD) [mu_extract.c] */
	WS_87,	/* (In ZAD) [mu_rndwn_file.c] */
	WS_88,	/* (In ZAD) [mu_truncate.c] */
	WS_89,	/* (In ZAD) [mubfilcpy.c] */
	WS_90,	/* (In ZAD) [mubinccpy.c] */
	WS_91,	/* (In ZAD) [mupip_reorg_encrypt.c] */
	WS_92,	/* (In ZAD) [mupip_reorg_encrypt.c] */
	WS_93,	/* (In ZAD) [mupip_reorg_encrypt.c] */
	WS_94,	/* (In ZAD) [mupip_reorg_encrypt.c] */
	WS_95,	/* (In ZAD) [mupip_set_file.c] */
	WS_96,	/* (In ZAD) [ss_initiate.c] */
	WS_97,	/* (In ZAD) [ss_initiate.c] */
	WS_98,	/* (In ZAD) [ss_initiate.c] */
	WS_99,	/* (In ZAD) [ss_release.c] */
	WS_100,	/* (In ZAD) [trigger_upgrade.c] */
	WS_101,	/* (In ZAD) [trigger_upgrade.c] */
	WS_102,	/* (In ZAD) [mupip_freeze.c] */
	NOT_APPLICABLE
} wait_state;

void wb_gtm8863_lock_pause(void *,wait_state);

#define UPDATE_CRIT_COUNTER(CSADDRS, WAITSTATE)									\
MBSTART {                                                                                                       \
	if (CSADDRS && CSADDRS->nl)										\
	{                                                                                                       \
		switch(WAITSTATE)                                                                               \
		{                                                                                               \
			case WS_2 :                                                                             \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_ws2, 1);				\
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_jnl_wait, 1);			\
				break;                                                                          \
			case WS_12 :                                                                            \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_ws12, 1);			\
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_dbext_wait, 1);			\
				break;                                                                          \
			case WS_15 :                                                                            \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_ws15, 1);			\
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_bg_wait, 1);			\
				break;                                                                          \
			case WS_39 :                                                                            \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_ws39, 1);			\
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_mlk_wait, 1);			\
				break;                                                                          \
			case WS_47 :                                                                            \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_ws47, 1);			\
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_trans_wait, 1);			\
				break;                                                                          \
			case WS_11 :  /* For aggregate DEXA */                                                  \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_dbext_wait, 1);			\
				break;                                                                          \
			case WS_13 :  /* For aggregate GLB */                                                   \
			case WS_14 :  /* For aggregate GLB */                                                   \
			case WS_16 :  /* For aggregate GLB */                                                   \
			case WS_17 :  /* For aggregate GLB */                                                   \
			case WS_18 :  /* For aggregate GLB */                                                   \
			case WS_19 :  /* For aggregate GLB */                                                   \
			case WS_20 :  /* For aggregate GLB */                                                   \
			case WS_21 :  /* For aggregate GLB */                                                   \
			case WS_22 :  /* For aggregate GLB */                                                   \
			case WS_23 :  /* For aggregate GLB */                                                   \
			case WS_24 :  /* For aggregate GLB */                                                   \
			case WS_25 :  /* For aggregate GLB */                                                   \
			case WS_26 :  /* For aggregate GLB */                                                   \
			case WS_27 :  /* For aggregate GLB */                                                   \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_bg_wait, 1);			\
				break;                                                                          \
			case WS_3 :  /* For aggregate JNL */                                                    \
			case WS_4 :  /* For aggregate JNL */                                                    \
			case WS_28 :  /* For aggregate JNL */                                                   \
			case WS_29 :  /* For aggregate JNL */                                                   \
			case WS_30 :  /* For aggregate JNL */                                                   \
			case WS_31 :  /* For aggregate JNL */                                                   \
			case WS_32 :  /* For aggregate JNL */                                                   \
			case WS_33 :  /* For aggregate JNL */                                                   \
			case WS_34 :  /* For aggregate JNL */                                                   \
			case WS_35 :  /* For aggregate JNL */                                                   \
			case WS_36 :  /* For aggregate JNL */                                                   \
			case WS_37 :  /* For aggregate JNL */                                                   \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_jnl_wait, 1);			\
				break;                                                                          \
			case WS_5 :  /* For aggregate MLK */                                                    \
			case WS_38 :  /* For aggregate MLK */                                                   \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_mlk_wait, 1);			\
				break;                                                                          \
			case WS_40 :  /* For aggregate PRC */                                                   \
			case WS_41 :  /* For aggregate PRC */                                                   \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_proc_wait, 1);			\
				break;                                                                          \
			case WS_43 :  /* For aggregate TRX */                                                   \
			case WS_44 :  /* For aggregate TRX */                                                   \
			case WS_45 :  /* For aggregate TRX */                                                   \
			case WS_46 :  /* For aggregate TRX */                                                   \
			case WS_48 :  /* For aggregate TRX */                                                   \
			case WS_49 :  /* For aggregate TRX */                                                   \
			case WS_50 :  /* For aggregate TRX */                                                   \
			case WS_51 :  /* For aggregate TRX */                                                   \
			case WS_52 :  /* For aggregate TRX */                                                   \
			case WS_53 :  /* For aggregate TRX */                                                   \
			case WS_54 :  /* For aggregate TRX */                                                   \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_trans_wait, 1);			\
				break;                                                                          \
			case WS_1 :  /* For aggregate ZAD */                                                    \
			case WS_6 :  /* For aggregate ZAD */                                                    \
			case WS_7 :  /* For aggregate ZAD */                                                    \
			case WS_8 :  /* For aggregate ZAD */                                                    \
			case WS_9 :  /* For aggregate ZAD */                                                    \
			case WS_10 :  /* For aggregate ZAD */                                                   \
			case WS_55 :  /* For aggregate ZAD */                                                   \
			case WS_56 :  /* For aggregate ZAD */                                                   \
			case WS_57 :  /* For aggregate ZAD */                                                   \
			case WS_58 :  /* For aggregate ZAD */                                                   \
			case WS_59 :  /* For aggregate ZAD */                                                   \
			case WS_60 :  /* For aggregate ZAD */                                                   \
			case WS_61 :  /* For aggregate ZAD */                                                   \
			case WS_62 :  /* For aggregate ZAD */                                                   \
			case WS_63 :  /* For aggregate ZAD */                                                   \
			case WS_64 :  /* For aggregate ZAD */                                                   \
			case WS_65 :  /* For aggregate ZAD */                                                   \
			case WS_66 :  /* For aggregate ZAD */                                                   \
			case WS_67 :  /* For aggregate ZAD */                                                   \
			case WS_68 :  /* For aggregate ZAD */                                                   \
			case WS_69 :  /* For aggregate ZAD */                                                   \
			case WS_70 :  /* For aggregate ZAD */                                                   \
			case WS_71 :  /* For aggregate ZAD */                                                   \
			case WS_72 :  /* For aggregate ZAD */                                                   \
			case WS_73 :  /* For aggregate ZAD */                                                   \
			case WS_74 :  /* For aggregate ZAD */                                                   \
			case WS_75 :  /* For aggregate ZAD */                                                   \
			case WS_76 :  /* For aggregate ZAD */                                                   \
			case WS_77 :  /* For aggregate ZAD */                                                   \
			case WS_78 :  /* For aggregate ZAD */                                                   \
			case WS_79 :  /* For aggregate ZAD */                                                   \
			case WS_80 :  /* For aggregate ZAD */                                                   \
			case WS_81 :  /* For aggregate ZAD */                                                   \
			case WS_82 :  /* For aggregate ZAD */                                                   \
			case WS_83 :  /* For aggregate ZAD */                                                   \
			case WS_84 :  /* For aggregate ZAD */                                                   \
			case WS_85 :  /* For aggregate ZAD */                                                   \
			case WS_86 :  /* For aggregate ZAD */                                                   \
			case WS_87 :  /* For aggregate ZAD */                                                   \
			case WS_88 :  /* For aggregate ZAD */                                                   \
			case WS_89 :  /* For aggregate ZAD */                                                   \
			case WS_90 :  /* For aggregate ZAD */                                                   \
			case WS_91 :  /* For aggregate ZAD */                                                   \
			case WS_92 :  /* For aggregate ZAD */                                                   \
			case WS_93 :  /* For aggregate ZAD */                                                   \
			case WS_94 :  /* For aggregate ZAD */                                                   \
			case WS_95 :  /* For aggregate ZAD */                                                   \
			case WS_96 :  /* For aggregate ZAD */                                                   \
			case WS_97 :  /* For aggregate ZAD */                                                   \
			case WS_98 :  /* For aggregate ZAD */                                                   \
			case WS_99 :  /* For aggregate ZAD */                                                   \
			case WS_100 :  /* For aggregate ZAD */                                                  \
			case WS_101 :  /* For aggregate ZAD */                                                  \
			case WS_102 :  /* For aggregate ZAD */                                                  \
				INCR_GVSTATS_COUNTER(CSADDRS, (CSADDRS)->nl, n_util_wait, 1);			\
				break;                                                                          \
			default : /* It is not an error for some instrumentation to be ignored */               \
				break;                                                                          \
		}                                                                                               \
		                                                                                                \
		/* We use gtm_white_box_test_case_count here as a WS value.                                     \
		The flag file lets us coordinate without timing issues. */                                      \
		WBTEST_ONLY(WBTEST_WSSTATS_PAUSE,                                                               \
		{                                                                                               \
			wb_gtm8863_lock_pause(CSADDRS,WAITSTATE);						\
		});                                                                                             \
	}                                                                                                       \
} MBEND

#endif