summaryrefslogtreecommitdiff
path: root/storage/innobase/sync/sync0sync.c
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/sync/sync0sync.c')
-rw-r--r--storage/innobase/sync/sync0sync.c132
1 files changed, 73 insertions, 59 deletions
diff --git a/storage/innobase/sync/sync0sync.c b/storage/innobase/sync/sync0sync.c
index 04f03e89ec5..d74b2b09ccf 100644
--- a/storage/innobase/sync/sync0sync.c
+++ b/storage/innobase/sync/sync0sync.c
@@ -277,11 +277,11 @@ mutex_free(
if (UT_LIST_GET_PREV(list, mutex)) {
ut_a(UT_LIST_GET_PREV(list, mutex)->magic_n
- == MUTEX_MAGIC_N);
+ == MUTEX_MAGIC_N);
}
if (UT_LIST_GET_NEXT(list, mutex)) {
ut_a(UT_LIST_GET_NEXT(list, mutex)->magic_n
- == MUTEX_MAGIC_N);
+ == MUTEX_MAGIC_N);
}
UT_LIST_REMOVE(list, mutex_list, mutex);
@@ -351,8 +351,8 @@ mutex_set_waiters(
mutex_t* mutex, /* in: mutex */
ulint n) /* in: value to set */
{
-volatile ulint* ptr; /* declared volatile to ensure that
- the value is stored to memory */
+ volatile ulint* ptr; /* declared volatile to ensure that
+ the value is stored to memory */
ut_ad(mutex);
ptr = &(mutex->waiters);
@@ -423,7 +423,8 @@ spin_loop:
#ifdef UNIV_SRV_PRINT_LATCH_WAITS
fprintf(stderr,
- "Thread %lu spin wait mutex at %p cfile %s cline %lu rnds %lu\n",
+ "Thread %lu spin wait mutex at %p"
+ " cfile %s cline %lu rnds %lu\n",
(ulong) os_thread_pf(os_thread_get_curr_id()), (void*) mutex,
mutex->cfile_name, (ulong) mutex->cline, (ulong) i);
#endif
@@ -458,7 +459,7 @@ spin_loop:
}
sync_array_reserve_cell(sync_primary_wait_array, mutex,
- SYNC_MUTEX, file_name, line, &index);
+ SYNC_MUTEX, file_name, line, &index);
mutex_system_call_count++;
@@ -476,7 +477,7 @@ spin_loop:
/* Succeeded! Free the reserved wait cell */
sync_array_free_cell_protected(sync_primary_wait_array,
- index);
+ index);
#ifdef UNIV_SYNC_DEBUG
mutex_set_debug_info(mutex, file_name, line);
@@ -639,8 +640,8 @@ mutex_list_print_info(void)
ulint count = 0;
fputs("----------\n"
- "MUTEX INFO\n"
- "----------\n", stderr);
+ "MUTEX INFO\n"
+ "----------\n", stderr);
mutex_enter(&mutex_list_mutex);
@@ -651,9 +652,10 @@ mutex_list_print_info(void)
if (mutex_get_lock_word(mutex) != 0) {
mutex_get_debug_info(mutex, &file_name, &line,
- &thread_id);
+ &thread_id);
fprintf(stderr,
- "Locked mutex: addr %p thread %ld file %s line %ld\n",
+ "Locked mutex: addr %p thread %ld"
+ " file %s line %ld\n",
(void*) mutex, os_thread_pf(thread_id),
file_name, line);
}
@@ -820,8 +822,9 @@ sync_thread_levels_g(
mutex = slot->latch;
fprintf(stderr,
- "InnoDB error: sync levels should be > %lu but a level is %lu\n",
- (ulong) limit, (ulong) slot->level);
+ "InnoDB error: sync levels should be"
+ " > %lu but a level is %lu\n",
+ (ulong) limit, (ulong) slot->level);
if (mutex->magic_n == MUTEX_MAGIC_N) {
fprintf(stderr,
@@ -835,15 +838,24 @@ sync_thread_levels_g(
ulint line;
os_thread_id_t thread_id;
- mutex_get_debug_info(mutex,
- &file_name, &line, &thread_id);
+ mutex_get_debug_info
+ (mutex, &file_name,
+ &line, &thread_id);
fprintf(stderr,
- "InnoDB: Locked mutex: addr %p thread %ld file %s line %ld\n",
- (void*) mutex, os_thread_pf(thread_id), file_name, (ulong) line);
+ "InnoDB: Locked mutex:"
+ " addr %p thread %ld"
+ " file %s line %ld\n",
+ (void*) mutex,
+ os_thread_pf
+ (thread_id),
+ file_name,
+ (ulong) line);
#else /* UNIV_SYNC_DEBUG */
fprintf(stderr,
- "InnoDB: Locked mutex: addr %p\n", (void*) mutex);
+ "InnoDB: Locked mutex:"
+ " addr %p\n",
+ (void*) mutex);
#endif /* UNIV_SYNC_DEBUG */
} else {
fputs("Not locked\n", stderr);
@@ -931,9 +943,10 @@ sync_thread_levels_empty_gen(
slot = sync_thread_levels_get_nth(arr, i);
- if (slot->latch != NULL && (!dict_mutex_allowed ||
- (slot->level != SYNC_DICT
- && slot->level != SYNC_DICT_OPERATION))) {
+ if (slot->latch != NULL
+ && (!dict_mutex_allowed
+ || (slot->level != SYNC_DICT
+ && slot->level != SYNC_DICT_OPERATION))) {
mutex_exit(&sync_thread_mutex);
ut_error;
@@ -981,11 +994,11 @@ sync_thread_add_level(
}
if ((latch == (void*)&sync_thread_mutex)
- || (latch == (void*)&mutex_list_mutex)
+ || (latch == (void*)&mutex_list_mutex)
#ifdef UNIV_SYNC_DEBUG
- || (latch == (void*)&rw_lock_debug_mutex)
+ || (latch == (void*)&rw_lock_debug_mutex)
#endif /* UNIV_SYNC_DEBUG */
- || (latch == (void*)&rw_lock_list_mutex)) {
+ || (latch == (void*)&rw_lock_list_mutex)) {
return;
}
@@ -1058,8 +1071,8 @@ sync_thread_add_level(
break;
case SYNC_BUF_BLOCK:
ut_a((sync_thread_levels_contain(array, SYNC_BUF_POOL)
- && sync_thread_levels_g(array, SYNC_BUF_BLOCK - 1))
- || sync_thread_levels_g(array, SYNC_BUF_BLOCK));
+ && sync_thread_levels_g(array, SYNC_BUF_BLOCK - 1))
+ || sync_thread_levels_g(array, SYNC_BUF_BLOCK));
break;
case SYNC_BUF_POOL:
ut_a(sync_thread_levels_g(array, SYNC_BUF_POOL));
@@ -1072,16 +1085,16 @@ sync_thread_add_level(
break;
case SYNC_REC_LOCK:
ut_a((sync_thread_levels_contain(array, SYNC_KERNEL)
- && sync_thread_levels_g(array, SYNC_REC_LOCK - 1))
- || sync_thread_levels_g(array, SYNC_REC_LOCK));
+ && sync_thread_levels_g(array, SYNC_REC_LOCK - 1))
+ || sync_thread_levels_g(array, SYNC_REC_LOCK));
break;
case SYNC_KERNEL:
ut_a(sync_thread_levels_g(array, SYNC_KERNEL));
break;
case SYNC_IBUF_BITMAP:
ut_a((sync_thread_levels_contain(array, SYNC_IBUF_BITMAP_MUTEX)
- && sync_thread_levels_g(array, SYNC_IBUF_BITMAP - 1))
- || sync_thread_levels_g(array, SYNC_IBUF_BITMAP));
+ && sync_thread_levels_g(array, SYNC_IBUF_BITMAP - 1))
+ || sync_thread_levels_g(array, SYNC_IBUF_BITMAP));
break;
case SYNC_IBUF_BITMAP_MUTEX:
ut_a(sync_thread_levels_g(array, SYNC_IBUF_BITMAP_MUTEX));
@@ -1091,20 +1104,20 @@ sync_thread_add_level(
break;
case SYNC_FSP:
ut_a(sync_thread_levels_contain(array, SYNC_FSP)
- || sync_thread_levels_g(array, SYNC_FSP));
+ || sync_thread_levels_g(array, SYNC_FSP));
break;
case SYNC_TRX_UNDO_PAGE:
ut_a(sync_thread_levels_contain(array, SYNC_TRX_UNDO)
- || sync_thread_levels_contain(array, SYNC_RSEG)
- || sync_thread_levels_contain(array, SYNC_PURGE_SYS)
- || sync_thread_levels_g(array, SYNC_TRX_UNDO_PAGE));
+ || sync_thread_levels_contain(array, SYNC_RSEG)
+ || sync_thread_levels_contain(array, SYNC_PURGE_SYS)
+ || sync_thread_levels_g(array, SYNC_TRX_UNDO_PAGE));
break;
case SYNC_RSEG_HEADER:
ut_a(sync_thread_levels_contain(array, SYNC_RSEG));
break;
case SYNC_RSEG_HEADER_NEW:
ut_a(sync_thread_levels_contain(array, SYNC_KERNEL)
- && sync_thread_levels_contain(array, SYNC_FSP_PAGE));
+ && sync_thread_levels_contain(array, SYNC_FSP_PAGE));
break;
case SYNC_RSEG:
ut_a(sync_thread_levels_g(array, SYNC_RSEG));
@@ -1120,30 +1133,30 @@ sync_thread_add_level(
break;
case SYNC_TREE_NODE:
ut_a(sync_thread_levels_contain(array, SYNC_INDEX_TREE)
- || sync_thread_levels_g(array, SYNC_TREE_NODE - 1));
+ || sync_thread_levels_g(array, SYNC_TREE_NODE - 1));
break;
case SYNC_TREE_NODE_NEW:
ut_a(sync_thread_levels_contain(array, SYNC_FSP_PAGE)
- || sync_thread_levels_contain(array, SYNC_IBUF_MUTEX));
+ || sync_thread_levels_contain(array, SYNC_IBUF_MUTEX));
break;
case SYNC_INDEX_TREE:
ut_a((sync_thread_levels_contain(array, SYNC_IBUF_MUTEX)
- && sync_thread_levels_contain(array, SYNC_FSP)
- && sync_thread_levels_g(array, SYNC_FSP_PAGE - 1))
- || sync_thread_levels_g(array, SYNC_TREE_NODE - 1));
+ && sync_thread_levels_contain(array, SYNC_FSP)
+ && sync_thread_levels_g(array, SYNC_FSP_PAGE - 1))
+ || sync_thread_levels_g(array, SYNC_TREE_NODE - 1));
break;
case SYNC_IBUF_MUTEX:
ut_a(sync_thread_levels_g(array, SYNC_FSP_PAGE - 1));
break;
case SYNC_IBUF_PESS_INSERT_MUTEX:
ut_a(sync_thread_levels_g(array, SYNC_FSP - 1)
- && !sync_thread_levels_contain(array, SYNC_IBUF_MUTEX));
+ && !sync_thread_levels_contain(array, SYNC_IBUF_MUTEX));
break;
case SYNC_IBUF_HEADER:
ut_a(sync_thread_levels_g(array, SYNC_FSP - 1)
- && !sync_thread_levels_contain(array, SYNC_IBUF_MUTEX)
- && !sync_thread_levels_contain(array,
- SYNC_IBUF_PESS_INSERT_MUTEX));
+ && !sync_thread_levels_contain(array, SYNC_IBUF_MUTEX)
+ && !sync_thread_levels_contain
+ (array, SYNC_IBUF_PESS_INSERT_MUTEX));
break;
case SYNC_DICT_AUTOINC_MUTEX:
ut_a(sync_thread_levels_g(array, SYNC_DICT_AUTOINC_MUTEX));
@@ -1157,7 +1170,7 @@ sync_thread_add_level(
case SYNC_DICT:
#ifdef UNIV_DEBUG
ut_a(buf_debug_prints
- || sync_thread_levels_g(array, SYNC_DICT));
+ || sync_thread_levels_g(array, SYNC_DICT));
#else /* UNIV_DEBUG */
ut_a(sync_thread_levels_g(array, SYNC_DICT));
#endif /* UNIV_DEBUG */
@@ -1204,11 +1217,11 @@ sync_thread_reset_level(
}
if ((latch == (void*)&sync_thread_mutex)
- || (latch == (void*)&mutex_list_mutex)
+ || (latch == (void*)&mutex_list_mutex)
#ifdef UNIV_SYNC_DEBUG
- || (latch == (void*)&rw_lock_debug_mutex)
+ || (latch == (void*)&rw_lock_debug_mutex)
#endif /* UNIV_SYNC_DEBUG */
- || (latch == (void*)&rw_lock_list_mutex)) {
+ || (latch == (void*)&rw_lock_list_mutex)) {
return(FALSE);
}
@@ -1265,13 +1278,13 @@ sync_init(void)
mutex */
sync_primary_wait_array = sync_array_create(OS_THREAD_MAX_N,
- SYNC_ARRAY_OS_MUTEX);
+ SYNC_ARRAY_OS_MUTEX);
/* Create the thread latch level array where the latch levels
are stored for each OS thread */
sync_thread_level_arrays = ut_malloc(OS_THREAD_MAX_N
- * sizeof(sync_thread_t));
+ * sizeof(sync_thread_t));
for (i = 0; i < OS_THREAD_MAX_N; i++) {
thread_slot = sync_thread_level_arrays_get_nth(i);
@@ -1335,15 +1348,16 @@ sync_print_wait_info(
#endif
fprintf(file,
-"Mutex spin waits %lu, rounds %lu, OS waits %lu\n"
-"RW-shared spins %lu, OS waits %lu; RW-excl spins %lu, OS waits %lu\n",
- (ulong) mutex_spin_wait_count,
- (ulong) mutex_spin_round_count,
- (ulong) mutex_os_wait_count,
- (ulong) rw_s_spin_wait_count,
- (ulong) rw_s_os_wait_count,
- (ulong) rw_x_spin_wait_count,
- (ulong) rw_x_os_wait_count);
+ "Mutex spin waits %lu, rounds %lu, OS waits %lu\n"
+ "RW-shared spins %lu, OS waits %lu;"
+ " RW-excl spins %lu, OS waits %lu\n",
+ (ulong) mutex_spin_wait_count,
+ (ulong) mutex_spin_round_count,
+ (ulong) mutex_os_wait_count,
+ (ulong) rw_s_spin_wait_count,
+ (ulong) rw_s_os_wait_count,
+ (ulong) rw_x_spin_wait_count,
+ (ulong) rw_x_os_wait_count);
}
/***********************************************************************