1 # name : innodb_show_status_extend.patch
2 # introduced : XtraDB based 5.5.8
3 # maintainer : Yasufumi
6 # Any small change to this file in the main branch
7 # should be done or reviewed by the maintainer!
8 diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
9 --- a/storage/innobase/handler/ha_innodb.cc 2011-01-21 19:53:42.369599743 +0900
10 +++ b/storage/innobase/handler/ha_innodb.cc 2011-01-21 19:54:44.659599699 +0900
12 trx_t* trx); /*!< in: transaction handle */
14 static SHOW_VAR innodb_status_variables[]= {
15 + {"adaptive_hash_cells",
16 + (char*) &export_vars.innodb_adaptive_hash_cells, SHOW_LONG},
17 + {"adaptive_hash_heap_buffers",
18 + (char*) &export_vars.innodb_adaptive_hash_heap_buffers, SHOW_LONG},
19 + {"adaptive_hash_hash_searches",
20 + (char*) &export_vars.innodb_adaptive_hash_hash_searches, SHOW_LONG},
21 + {"adaptive_hash_non_hash_searches",
22 + (char*) &export_vars.innodb_adaptive_hash_non_hash_searches, SHOW_LONG},
23 + {"background_log_sync",
24 + (char*) &export_vars.innodb_background_log_sync, SHOW_LONG},
25 {"buffer_pool_pages_data",
26 (char*) &export_vars.innodb_buffer_pool_pages_data, SHOW_LONG},
27 {"buffer_pool_pages_dirty",
29 {"buffer_pool_pages_latched",
30 (char*) &export_vars.innodb_buffer_pool_pages_latched, SHOW_LONG},
31 #endif /* UNIV_DEBUG */
32 + {"buffer_pool_pages_made_not_young",
33 + (char*) &export_vars.innodb_buffer_pool_pages_made_not_young, SHOW_LONG},
34 + {"buffer_pool_pages_made_young",
35 + (char*) &export_vars.innodb_buffer_pool_pages_made_young, SHOW_LONG},
36 {"buffer_pool_pages_misc",
37 (char*) &export_vars.innodb_buffer_pool_pages_misc, SHOW_LONG},
38 + {"buffer_pool_pages_old",
39 + (char*) &export_vars.innodb_buffer_pool_pages_old, SHOW_LONG},
40 {"buffer_pool_pages_total",
41 (char*) &export_vars.innodb_buffer_pool_pages_total, SHOW_LONG},
42 {"buffer_pool_read_ahead",
44 (char*) &export_vars.innodb_buffer_pool_wait_free, SHOW_LONG},
45 {"buffer_pool_write_requests",
46 (char*) &export_vars.innodb_buffer_pool_write_requests, SHOW_LONG},
48 + (char*) &export_vars.innodb_checkpoint_age, SHOW_LONG},
49 + {"checkpoint_max_age",
50 + (char*) &export_vars.innodb_checkpoint_max_age, SHOW_LONG},
51 + {"checkpoint_target_age",
52 + (char*) &export_vars.innodb_checkpoint_target_age, SHOW_LONG},
54 (char*) &export_vars.innodb_data_fsyncs, SHOW_LONG},
55 {"data_pending_fsyncs",
57 (char*) &export_vars.innodb_dict_tables, SHOW_LONG},
58 {"have_atomic_builtins",
59 (char*) &export_vars.innodb_have_atomic_builtins, SHOW_BOOL},
60 + {"history_list_length",
61 + (char*) &export_vars.innodb_history_list_length, SHOW_LONG},
62 + {"ibuf_discarded_delete_marks",
63 + (char*) &export_vars.innodb_ibuf_discarded_delete_marks, SHOW_LONG},
64 + {"ibuf_discarded_deletes",
65 + (char*) &export_vars.innodb_ibuf_discarded_deletes, SHOW_LONG},
66 + {"ibuf_discarded_inserts",
67 + (char*) &export_vars.innodb_ibuf_discarded_inserts, SHOW_LONG},
69 + (char*) &export_vars.innodb_ibuf_free_list, SHOW_LONG},
70 + {"ibuf_merged_delete_marks",
71 + (char*) &export_vars.innodb_ibuf_merged_delete_marks, SHOW_LONG},
72 + {"ibuf_merged_deletes",
73 + (char*) &export_vars.innodb_ibuf_merged_deletes, SHOW_LONG},
74 + {"ibuf_merged_inserts",
75 + (char*) &export_vars.innodb_ibuf_merged_inserts, SHOW_LONG},
77 + (char*) &export_vars.innodb_ibuf_merges, SHOW_LONG},
78 + {"ibuf_segment_size",
79 + (char*) &export_vars.innodb_ibuf_segment_size, SHOW_LONG},
81 + (char*) &export_vars.innodb_ibuf_size, SHOW_LONG},
83 (char*) &export_vars.innodb_log_waits, SHOW_LONG},
84 {"log_write_requests",
85 (char*) &export_vars.innodb_log_write_requests, SHOW_LONG},
87 (char*) &export_vars.innodb_log_writes, SHOW_LONG},
89 + (char*) &export_vars.innodb_lsn_current, SHOW_LONGLONG},
91 + (char*) &export_vars.innodb_lsn_flushed, SHOW_LONGLONG},
92 + {"lsn_last_checkpoint",
93 + (char*) &export_vars.innodb_lsn_last_checkpoint, SHOW_LONGLONG},
94 + {"master_thread_1_second_loops",
95 + (char*) &export_vars.innodb_master_thread_1_second_loops, SHOW_LONG},
96 + {"master_thread_10_second_loops",
97 + (char*) &export_vars.innodb_master_thread_10_second_loops, SHOW_LONG},
98 + {"master_thread_background_loops",
99 + (char*) &export_vars.innodb_master_thread_background_loops, SHOW_LONG},
100 + {"master_thread_main_flush_loops",
101 + (char*) &export_vars.innodb_master_thread_main_flush_loops, SHOW_LONG},
102 + {"master_thread_sleeps",
103 + (char*) &export_vars.innodb_master_thread_sleeps, SHOW_LONG},
105 + (char*) &export_vars.innodb_max_trx_id, SHOW_LONGLONG},
106 + {"mem_adaptive_hash",
107 + (char*) &export_vars.innodb_mem_adaptive_hash, SHOW_LONG},
109 + (char*) &export_vars.innodb_mem_dictionary, SHOW_LONG},
111 + (char*) &export_vars.innodb_mem_total, SHOW_LONG},
113 + (char*) &export_vars.innodb_mutex_os_waits, SHOW_LONGLONG},
114 + {"mutex_spin_rounds",
115 + (char*) &export_vars.innodb_mutex_spin_rounds, SHOW_LONGLONG},
116 + {"mutex_spin_waits",
117 + (char*) &export_vars.innodb_mutex_spin_waits, SHOW_LONGLONG},
118 + {"oldest_view_low_limit_trx_id",
119 + (char*) &export_vars.innodb_oldest_view_low_limit_trx_id, SHOW_LONGLONG},
121 (char*) &export_vars.innodb_os_log_fsyncs, SHOW_LONG},
122 {"os_log_pending_fsyncs",
124 (char*) &export_vars.innodb_pages_read, SHOW_LONG},
126 (char*) &export_vars.innodb_pages_written, SHOW_LONG},
128 + (char*) &export_vars.innodb_purge_trx_id, SHOW_LONGLONG},
130 + (char*) &export_vars.innodb_purge_undo_no, SHOW_LONGLONG},
131 {"row_lock_current_waits",
132 (char*) &export_vars.innodb_row_lock_current_waits, SHOW_LONG},
133 + {"row_lock_numbers",
134 + (char*) &export_vars.innodb_row_lock_numbers, SHOW_LONG},
136 (char*) &export_vars.innodb_row_lock_time, SHOW_LONGLONG},
137 {"row_lock_time_avg",
139 (char*) &export_vars.innodb_rows_read, SHOW_LONG},
141 (char*) &export_vars.innodb_rows_updated, SHOW_LONG},
142 + {"s_lock_os_waits",
143 + (char*) &export_vars.innodb_s_lock_os_waits, SHOW_LONGLONG},
144 + {"s_lock_spin_rounds",
145 + (char*) &export_vars.innodb_s_lock_spin_rounds, SHOW_LONGLONG},
146 + {"s_lock_spin_waits",
147 + (char*) &export_vars.innodb_s_lock_spin_waits, SHOW_LONGLONG},
148 {"truncated_status_writes",
149 (char*) &export_vars.innodb_truncated_status_writes, SHOW_LONG},
150 + {"x_lock_os_waits",
151 + (char*) &export_vars.innodb_x_lock_os_waits, SHOW_LONGLONG},
152 + {"x_lock_spin_rounds",
153 + (char*) &export_vars.innodb_x_lock_spin_rounds, SHOW_LONGLONG},
154 + {"x_lock_spin_waits",
155 + (char*) &export_vars.innodb_x_lock_spin_waits, SHOW_LONGLONG},
156 {NullS, NullS, SHOW_LONG}
159 diff -ruN a/storage/innobase/include/lock0lock.h b/storage/innobase/include/lock0lock.h
160 --- a/storage/innobase/include/lock0lock.h 2011-01-21 19:52:38.967683738 +0900
161 +++ b/storage/innobase/include/lock0lock.h 2011-01-21 19:54:44.660599140 +0900
163 /** The lock system struct */
164 struct lock_sys_struct{
165 hash_table_t* rec_hash; /*!< hash table of the record locks */
169 /** The lock system */
170 diff -ruN a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
171 --- a/storage/innobase/include/srv0srv.h 2011-01-21 19:53:42.380638228 +0900
172 +++ b/storage/innobase/include/srv0srv.h 2011-01-21 19:54:44.662600032 +0900
175 /** Status variables to be passed to MySQL */
176 struct export_var_struct{
177 + ulint innodb_adaptive_hash_cells;
178 + ulint innodb_adaptive_hash_heap_buffers;
179 + ulint innodb_adaptive_hash_hash_searches;
180 + ulint innodb_adaptive_hash_non_hash_searches;
181 + ulint innodb_background_log_sync;
182 ulint innodb_data_pending_reads; /*!< Pending reads */
183 ulint innodb_data_pending_writes; /*!< Pending writes */
184 ulint innodb_data_pending_fsyncs; /*!< Pending fsyncs */
187 ulint innodb_buffer_pool_pages_latched; /*!< Latched pages */
188 #endif /* UNIV_DEBUG */
189 + ulint innodb_buffer_pool_pages_made_not_young;
190 + ulint innodb_buffer_pool_pages_made_young;
191 + ulint innodb_buffer_pool_pages_old;
192 ulint innodb_buffer_pool_read_requests; /*!< buf_pool->stat.n_page_gets */
193 ulint innodb_buffer_pool_reads; /*!< srv_buf_pool_reads */
194 ulint innodb_buffer_pool_wait_free; /*!< srv_buf_pool_wait_free */
195 @@ -752,13 +760,43 @@
196 ulint innodb_buffer_pool_write_requests;/*!< srv_buf_pool_write_requests */
197 ulint innodb_buffer_pool_read_ahead; /*!< srv_read_ahead */
198 ulint innodb_buffer_pool_read_ahead_evicted;/*!< srv_read_ahead evicted*/
199 + ulint innodb_checkpoint_age;
200 + ulint innodb_checkpoint_max_age;
201 + ulint innodb_checkpoint_target_age;
202 ulint innodb_dblwr_pages_written; /*!< srv_dblwr_pages_written */
203 ulint innodb_dblwr_writes; /*!< srv_dblwr_writes */
204 ulint innodb_deadlocks;
205 ibool innodb_have_atomic_builtins; /*!< HAVE_ATOMIC_BUILTINS */
206 + ulint innodb_history_list_length;
207 + ulint innodb_ibuf_size;
208 + ulint innodb_ibuf_free_list;
209 + ulint innodb_ibuf_segment_size;
210 + ulint innodb_ibuf_merges;
211 + ulint innodb_ibuf_merged_inserts;
212 + ulint innodb_ibuf_merged_delete_marks;
213 + ulint innodb_ibuf_merged_deletes;
214 + ulint innodb_ibuf_discarded_inserts;
215 + ulint innodb_ibuf_discarded_delete_marks;
216 + ulint innodb_ibuf_discarded_deletes;
217 ulint innodb_log_waits; /*!< srv_log_waits */
218 ulint innodb_log_write_requests; /*!< srv_log_write_requests */
219 ulint innodb_log_writes; /*!< srv_log_writes */
220 + ib_int64_t innodb_lsn_current;
221 + ib_int64_t innodb_lsn_flushed;
222 + ib_int64_t innodb_lsn_last_checkpoint;
223 + ulint innodb_master_thread_1_second_loops;
224 + ulint innodb_master_thread_10_second_loops;
225 + ulint innodb_master_thread_background_loops;
226 + ulint innodb_master_thread_main_flush_loops;
227 + ulint innodb_master_thread_sleeps;
228 + ib_int64_t innodb_max_trx_id;
229 + ulint innodb_mem_adaptive_hash;
230 + ulint innodb_mem_dictionary;
231 + ulint innodb_mem_total;
232 + ib_int64_t innodb_mutex_os_waits;
233 + ib_int64_t innodb_mutex_spin_rounds;
234 + ib_int64_t innodb_mutex_spin_waits;
235 + ib_int64_t innodb_oldest_view_low_limit_trx_id;
236 ulint innodb_os_log_written; /*!< srv_os_log_written */
237 ulint innodb_os_log_fsyncs; /*!< fil_n_log_flushes */
238 ulint innodb_os_log_pending_writes; /*!< srv_os_log_pending_writes */
240 ulint innodb_pages_created; /*!< buf_pool->stat.n_pages_created */
241 ulint innodb_pages_read; /*!< buf_pool->stat.n_pages_read */
242 ulint innodb_pages_written; /*!< buf_pool->stat.n_pages_written */
243 + ib_int64_t innodb_purge_trx_id;
244 + ib_int64_t innodb_purge_undo_no;
245 ulint innodb_row_lock_waits; /*!< srv_n_lock_wait_count */
246 ulint innodb_row_lock_current_waits; /*!< srv_n_lock_wait_current_count */
247 ib_int64_t innodb_row_lock_time; /*!< srv_n_lock_wait_time
248 @@ -776,11 +816,18 @@
249 / srv_n_lock_wait_count */
250 ulint innodb_row_lock_time_max; /*!< srv_n_lock_max_wait_time
252 + ulint innodb_row_lock_numbers;
253 ulint innodb_rows_read; /*!< srv_n_rows_read */
254 ulint innodb_rows_inserted; /*!< srv_n_rows_inserted */
255 ulint innodb_rows_updated; /*!< srv_n_rows_updated */
256 ulint innodb_rows_deleted; /*!< srv_n_rows_deleted */
257 ulint innodb_truncated_status_writes; /*!< srv_truncated_status_writes */
258 + ib_int64_t innodb_s_lock_os_waits;
259 + ib_int64_t innodb_s_lock_spin_rounds;
260 + ib_int64_t innodb_s_lock_spin_waits;
261 + ib_int64_t innodb_x_lock_os_waits;
262 + ib_int64_t innodb_x_lock_spin_rounds;
263 + ib_int64_t innodb_x_lock_spin_waits;
266 /** Thread slot in the thread table */
267 diff -ruN a/storage/innobase/include/sync0sync.h b/storage/innobase/include/sync0sync.h
268 --- a/storage/innobase/include/sync0sync.h 2011-01-21 19:48:45.982637372 +0900
269 +++ b/storage/innobase/include/sync0sync.h 2011-01-21 19:54:44.664638235 +0900
272 #define SYNC_SPIN_ROUNDS srv_n_spin_wait_rounds
274 +extern ib_int64_t mutex_spin_round_count;
275 +extern ib_int64_t mutex_spin_wait_count;
276 +extern ib_int64_t mutex_os_wait_count;
278 /** The number of mutex_exit calls. Intended for performance monitoring. */
279 extern ib_int64_t mutex_exit_count;
281 diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c
282 --- a/storage/innobase/lock/lock0lock.c 2011-01-21 19:52:38.998600121 +0900
283 +++ b/storage/innobase/lock/lock0lock.c 2011-01-21 19:54:44.668637536 +0900
285 lock_sys = mem_alloc(sizeof(lock_sys_t));
287 lock_sys->rec_hash = hash_create(n_cells);
288 + lock_sys->rec_num = 0;
290 /* hash_create_mutexes(lock_sys->rec_hash, 2, SYNC_REC_LOCK); */
292 @@ -1719,6 +1720,7 @@
294 HASH_INSERT(lock_t, hash, lock_sys->rec_hash,
295 lock_rec_fold(space, page_no), lock);
296 + lock_sys->rec_num++;
297 if (UNIV_UNLIKELY(type_mode & LOCK_WAIT)) {
299 lock_set_lock_and_trx_wait(lock, trx);
300 @@ -2265,6 +2267,7 @@
302 HASH_DELETE(lock_t, hash, lock_sys->rec_hash,
303 lock_rec_fold(space, page_no), in_lock);
304 + lock_sys->rec_num--;
306 UT_LIST_REMOVE(trx_locks, trx->trx_locks, in_lock);
308 @@ -2308,6 +2311,7 @@
310 HASH_DELETE(lock_t, hash, lock_sys->rec_hash,
311 lock_rec_fold(space, page_no), in_lock);
312 + lock_sys->rec_num--;
314 UT_LIST_REMOVE(trx_locks, trx->trx_locks, in_lock);
316 diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
317 --- a/storage/innobase/srv/srv0srv.c 2011-01-21 19:53:42.390637840 +0900
318 +++ b/storage/innobase/srv/srv0srv.c 2011-01-21 19:54:44.673637084 +0900
319 @@ -2227,12 +2227,49 @@
322 ulint flush_list_len;
323 + ulint mem_adaptive_hash, mem_dictionary;
324 + read_view_t* oldest_view;
327 buf_get_total_stat(&stat);
328 buf_get_total_list_len(&LRU_len, &free_len, &flush_list_len);
330 + if (btr_search_sys && btr_search_sys->hash_index[0]->heap) {
331 + mem_adaptive_hash = mem_heap_get_size(btr_search_sys->hash_index[0]->heap);
333 + mem_adaptive_hash = 0;
334 + for (i=0; i < btr_search_sys->hash_index[0]->n_mutexes; i++) {
335 + mem_adaptive_hash += mem_heap_get_size(btr_search_sys->hash_index[0]->heaps[i]);
338 + mem_adaptive_hash *= btr_search_index_num;
339 + if (btr_search_sys) {
340 + mem_adaptive_hash += (btr_search_sys->hash_index[0]->n_cells * btr_search_index_num * sizeof(hash_cell_t));
343 + mem_dictionary = (dict_sys ? ((dict_sys->table_hash->n_cells
344 + + dict_sys->table_id_hash->n_cells
345 + ) * sizeof(hash_cell_t)
346 + + dict_sys->size) : 0);
348 mutex_enter(&srv_innodb_monitor_mutex);
350 + export_vars.innodb_adaptive_hash_cells = 0;
351 + export_vars.innodb_adaptive_hash_heap_buffers = 0;
352 + for (i = 0; i < btr_search_index_num; i++) {
353 + hash_table_t* table = btr_search_get_hash_index((index_id_t)i);
355 + export_vars.innodb_adaptive_hash_cells
356 + += hash_get_n_cells(table);
357 + export_vars.innodb_adaptive_hash_heap_buffers
358 + += (UT_LIST_GET_LEN(table->heap->base) - 1);
360 + export_vars.innodb_adaptive_hash_hash_searches
362 + export_vars.innodb_adaptive_hash_non_hash_searches
363 + = btr_cur_n_non_sea;
364 + export_vars.innodb_background_log_sync
365 + = srv_log_writes_and_flush;
366 export_vars.innodb_data_pending_reads
367 = os_n_pending_reads;
368 export_vars.innodb_data_pending_writes
369 @@ -2269,6 +2306,101 @@
371 export_vars.innodb_buffer_pool_pages_misc
372 = buf_pool_get_n_pages() - LRU_len - free_len;
374 + export_vars.innodb_buffer_pool_pages_made_young
375 + = stat.n_pages_made_young;
376 + export_vars.innodb_buffer_pool_pages_made_not_young
377 + = stat.n_pages_not_made_young;
378 + export_vars.innodb_buffer_pool_pages_old = 0;
379 + for (i = 0; i < srv_buf_pool_instances; i++) {
380 + buf_pool_t* buf_pool = buf_pool_from_array(i);
381 + export_vars.innodb_buffer_pool_pages_old
382 + += buf_pool->LRU_old_len;
384 + export_vars.innodb_checkpoint_age
385 + = (log_sys->lsn - log_sys->last_checkpoint_lsn);
386 + export_vars.innodb_checkpoint_max_age
387 + = log_sys->max_checkpoint_age;
388 + export_vars.innodb_checkpoint_target_age
389 + = srv_checkpoint_age_target
390 + ? ut_min(log_sys->max_checkpoint_age_async, srv_checkpoint_age_target)
391 + : log_sys->max_checkpoint_age_async;
392 + export_vars.innodb_history_list_length
393 + = trx_sys->rseg_history_len;
394 + export_vars.innodb_ibuf_size
396 + export_vars.innodb_ibuf_free_list
397 + = ibuf->free_list_len;
398 + export_vars.innodb_ibuf_segment_size
400 + export_vars.innodb_ibuf_merges
402 + export_vars.innodb_ibuf_merged_inserts
403 + = ibuf->n_merged_ops[IBUF_OP_INSERT];
404 + export_vars.innodb_ibuf_merged_delete_marks
405 + = ibuf->n_merged_ops[IBUF_OP_DELETE_MARK];
406 + export_vars.innodb_ibuf_merged_deletes
407 + = ibuf->n_merged_ops[IBUF_OP_DELETE];
408 + export_vars.innodb_ibuf_discarded_inserts
409 + = ibuf->n_discarded_ops[IBUF_OP_INSERT];
410 + export_vars.innodb_ibuf_discarded_delete_marks
411 + = ibuf->n_discarded_ops[IBUF_OP_DELETE_MARK];
412 + export_vars.innodb_ibuf_discarded_deletes
413 + = ibuf->n_discarded_ops[IBUF_OP_DELETE];
414 + export_vars.innodb_lsn_current
416 + export_vars.innodb_lsn_flushed
417 + = log_sys->flushed_to_disk_lsn;
418 + export_vars.innodb_lsn_last_checkpoint
419 + = log_sys->last_checkpoint_lsn;
420 + export_vars.innodb_master_thread_1_second_loops
421 + = srv_main_1_second_loops;
422 + export_vars.innodb_master_thread_10_second_loops
423 + = srv_main_10_second_loops;
424 + export_vars.innodb_master_thread_background_loops
425 + = srv_main_background_loops;
426 + export_vars.innodb_master_thread_main_flush_loops
427 + = srv_main_flush_loops;
428 + export_vars.innodb_master_thread_sleeps
430 + export_vars.innodb_max_trx_id
431 + = trx_sys->max_trx_id;
432 + export_vars.innodb_mem_adaptive_hash
433 + = mem_adaptive_hash;
434 + export_vars.innodb_mem_dictionary
436 + export_vars.innodb_mem_total
437 + = ut_total_allocated_memory;
438 + export_vars.innodb_mutex_os_waits
439 + = mutex_os_wait_count;
440 + export_vars.innodb_mutex_spin_rounds
441 + = mutex_spin_round_count;
442 + export_vars.innodb_mutex_spin_waits
443 + = mutex_spin_wait_count;
444 + export_vars.innodb_s_lock_os_waits
445 + = rw_s_os_wait_count;
446 + export_vars.innodb_s_lock_spin_rounds
447 + = rw_s_spin_round_count;
448 + export_vars.innodb_s_lock_spin_waits
449 + = rw_s_spin_wait_count;
450 + export_vars.innodb_x_lock_os_waits
451 + = rw_x_os_wait_count;
452 + export_vars.innodb_x_lock_spin_rounds
453 + = rw_x_spin_round_count;
454 + export_vars.innodb_x_lock_spin_waits
455 + = rw_x_spin_wait_count;
457 + oldest_view = UT_LIST_GET_LAST(trx_sys->view_list);
458 + export_vars.innodb_oldest_view_low_limit_trx_id
459 + = oldest_view ? oldest_view->low_limit_id : 0;
461 + export_vars.innodb_purge_trx_id
462 + = purge_sys->purge_trx_no;
463 + export_vars.innodb_purge_undo_no
464 + = purge_sys->purge_undo_no;
465 + export_vars.innodb_row_lock_numbers
466 + = lock_sys->rec_num;
468 #ifdef HAVE_ATOMIC_BUILTINS
469 export_vars.innodb_have_atomic_builtins = 1;
471 diff -ruN a/storage/innobase/sync/sync0sync.c b/storage/innobase/sync/sync0sync.c
472 --- a/storage/innobase/sync/sync0sync.c 2011-01-21 19:53:03.458637954 +0900
473 +++ b/storage/innobase/sync/sync0sync.c 2011-01-21 19:54:44.676637686 +0900
474 @@ -170,13 +170,13 @@
476 /** The number of iterations in the mutex_spin_wait() spin loop.
477 Intended for performance monitoring. */
478 -static ib_int64_t mutex_spin_round_count = 0;
479 +UNIV_INTERN ib_int64_t mutex_spin_round_count = 0;
480 /** The number of mutex_spin_wait() calls. Intended for
481 performance monitoring. */
482 -static ib_int64_t mutex_spin_wait_count = 0;
483 +UNIV_INTERN ib_int64_t mutex_spin_wait_count = 0;
484 /** The number of OS waits in mutex_spin_wait(). Intended for
485 performance monitoring. */
486 -static ib_int64_t mutex_os_wait_count = 0;
487 +UNIV_INTERN ib_int64_t mutex_os_wait_count = 0;
488 /** The number of mutex_exit() calls. Intended for performance
490 UNIV_INTERN ib_int64_t mutex_exit_count = 0;