1# Tests for PERFORMANCE_SCHEMA
2
3--source include/not_embedded.inc
4--source include/have_perfschema.inc
5
6# This test verifies that the mysys and server instruments are properly
7# initialized and recorded by the performance schema during the bootstrap
8# sequence in mysqld main().
9# Note that some globals mutexes/rwlocks/conds that depend on #ifdef options
10# or runtime options are not tested here, to have a predictable result.
11
12use performance_schema;
13
14# Verify that these global mutexes have been properly initilized in mysys
15
16select count(name) from mutex_instances
17 where name like "wait/synch/mutex/mysys/THR_LOCK_threads";
18
19select count(name) from mutex_instances
20 where name like "wait/synch/mutex/mysys/THR_LOCK_malloc";
21
22select count(name) from mutex_instances
23 where name like "wait/synch/mutex/mysys/THR_LOCK_open";
24
25select count(name) from mutex_instances
26 where name like "wait/synch/mutex/mysys/THR_LOCK_myisam";
27
28select count(name) from mutex_instances
29 where name like "wait/synch/mutex/mysys/THR_LOCK_heap";
30
31select count(name) from mutex_instances
32 where name like "wait/synch/mutex/mysys/THR_LOCK_net";
33
34select count(name) from mutex_instances
35 where name like "wait/synch/mutex/mysys/THR_LOCK_charset";
36
37# There are no global rwlock in mysys
38
39# Verify that these global conditions have been properly initilized in mysys
40
41select count(name) from cond_instances
42 where name like "wait/synch/cond/mysys/THR_COND_threads";
43
44# Verify that these global mutexes have been properly initilized in sql
45
46select count(name) from mutex_instances
47 where name like "wait/synch/mutex/sql/LOCK_thread_count";
48
49select count(name) from mutex_instances
50 where name like "wait/synch/mutex/sql/LOCK_log_throttle_qni";
51
52select count(name) from mutex_instances
53 where name like "wait/synch/mutex/sql/LOCK_status";
54
55select count(name) from mutex_instances
56 where name like "wait/synch/mutex/sql/LOCK_error_log";
57
58select count(name) from mutex_instances
59 where name like "wait/synch/mutex/sql/LOCK_delayed_insert";
60
61select count(name) from mutex_instances
62 where name like "wait/synch/mutex/sql/LOCK_uuid_generator";
63
64select count(name) from mutex_instances
65 where name like "wait/synch/mutex/sql/LOCK_delayed_status";
66
67select count(name) from mutex_instances
68 where name like "wait/synch/mutex/sql/LOCK_delayed_create";
69
70select count(name) from mutex_instances
71 where name like "wait/synch/mutex/sql/LOCK_crypt";
72
73select count(name) from mutex_instances
74 where name like "wait/synch/mutex/sql/LOCK_slave_list";
75
76select count(name) from mutex_instances
77 where name like "wait/synch/mutex/sql/LOCK_active_mi";
78
79select count(name) from mutex_instances
80 where name like "wait/synch/mutex/sql/LOCK_manager";
81
82select count(name) from mutex_instances
83 where name like "wait/synch/mutex/sql/LOCK_global_system_variables";
84
85select count(name) from mutex_instances
86 where name like "wait/synch/mutex/sql/LOCK_user_conn";
87
88select count(name) from mutex_instances
89 where name like "wait/synch/mutex/sql/LOCK_prepared_stmt_count";
90
91select count(name) from mutex_instances
92 where name like "wait/synch/mutex/sql/LOCK_connection_count";
93
94select count(name) from mutex_instances
95 where name like "wait/synch/mutex/sql/LOCK_server_started";
96
97# LOG_INFO object are created on demand, and are not global.
98# select count(name) from mutex_instances
99#  where name like "wait/synch/mutex/sql/LOG_INFO::lock";
100
101select count(name) from mutex_instances
102 where name like "wait/synch/mutex/sql/Query_cache::structure_guard_mutex";
103
104# The event scheduler may be disabled
105# select count(name) from mutex_instances
106#  where name like "wait/synch/mutex/sql/Event_scheduler::LOCK_scheduler_state";
107
108select count(name) from mutex_instances
109 where name like "wait/synch/mutex/sql/LOCK_event_queue";
110
111select count(name) from mutex_instances
112 where name like "wait/synch/mutex/sql/LOCK_user_locks";
113
114select count(name) from mutex_instances
115 where name like "wait/synch/mutex/sql/Cversion_lock";
116
117select count(name) from mutex_instances
118 where name like "wait/synch/mutex/sql/LOCK_audit_mask";
119
120select count(name) from mutex_instances
121 where name like "wait/synch/mutex/sql/LOCK_plugin";
122
123# Not a global variable, may be destroyed already.
124# select count(name) from mutex_instances
125#  where name like "wait/synch/mutex/sql/LOCK_gdl";
126
127select count(name) from mutex_instances
128 where name like "wait/synch/mutex/sql/tz_LOCK";
129
130# Verify that these global rwlocks have been properly initilized in sql
131
132select count(name) from rwlock_instances
133 where name like "wait/synch/rwlock/sql/LOCK_grant";
134
135select count(name) from rwlock_instances
136 where name like "wait/synch/rwlock/sql/LOCK_sys_init_connect";
137
138select count(name) from rwlock_instances
139 where name like "wait/synch/rwlock/sql/LOCK_sys_init_slave";
140
141select count(name) from rwlock_instances
142 where name like "wait/synch/rwlock/sql/LOCK_system_variables_hash";
143
144# Verify that these global conditions have been properly initilized in sql
145
146select count(name) from cond_instances
147 where name like "wait/synch/cond/sql/COND_server_started";
148
149select count(name) from cond_instances
150 where name like "wait/synch/cond/sql/COND_refresh";
151
152select count(name) from cond_instances
153 where name like "wait/synch/cond/sql/COND_thread_count";
154
155select count(name) from cond_instances
156 where name like "wait/synch/cond/sql/COND_manager";
157
158select count(name) from cond_instances
159 where name like "wait/synch/cond/sql/COND_thread_cache";
160
161select count(name) from cond_instances
162 where name like "wait/synch/cond/sql/COND_flush_thread_cache";
163
164select count(name) from cond_instances
165 where name like "wait/synch/cond/sql/Query_cache::COND_cache_status_changed";
166
167# The event scheduler may be disabled
168# select count(name) from cond_instances
169#  where name like "wait/synch/cond/sql/Event_scheduler::COND_state";
170
171select count(name) from cond_instances
172 where name like "wait/synch/cond/sql/COND_queue_state";
173
174