mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
univ.i Added a new debug define option
sync0sync.ic Do not use GCC in-line assembly srv0start.h Eliminate a deadlock of threads at startup buf0buf.h Add some debug functions srv0start.c Remove a printf innobase/srv/srv0start.c: Remove a printf innobase/include/buf0buf.h: Add some debug functions innobase/include/srv0start.h: Eliminate a deadlock of threads at startup innobase/include/sync0sync.ic: Do not use GCC in-line assembly innobase/include/univ.i: Added a new debug define option
This commit is contained in:
@ -293,6 +293,32 @@ buf_page_peek_block(
|
|||||||
ulint space, /* in: space id */
|
ulint space, /* in: space id */
|
||||||
ulint offset);/* in: page number */
|
ulint offset);/* in: page number */
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
Sets file_page_was_freed TRUE if the page is found in the buffer pool.
|
||||||
|
This function should be called when we free a file page and want the
|
||||||
|
debug version to check that it is not accessed any more unless
|
||||||
|
reallocated. */
|
||||||
|
|
||||||
|
buf_block_t*
|
||||||
|
buf_page_set_file_page_was_freed(
|
||||||
|
/*=============================*/
|
||||||
|
/* out: control block if found from page hash table,
|
||||||
|
otherwise NULL */
|
||||||
|
ulint space, /* in: space id */
|
||||||
|
ulint offset); /* in: page number */
|
||||||
|
/************************************************************************
|
||||||
|
Sets file_page_was_freed FALSE if the page is found in the buffer pool.
|
||||||
|
This function should be called when we free a file page and want the
|
||||||
|
debug version to check that it is not accessed any more unless
|
||||||
|
reallocated. */
|
||||||
|
|
||||||
|
buf_block_t*
|
||||||
|
buf_page_reset_file_page_was_freed(
|
||||||
|
/*===============================*/
|
||||||
|
/* out: control block if found from page hash table,
|
||||||
|
otherwise NULL */
|
||||||
|
ulint space, /* in: space id */
|
||||||
|
ulint offset); /* in: page number */
|
||||||
|
/************************************************************************
|
||||||
Recommends a move of a block to the start of the LRU list if there is danger
|
Recommends a move of a block to the start of the LRU list if there is danger
|
||||||
of dropping from the buffer pool. NOTE: does not reserve the buffer pool
|
of dropping from the buffer pool. NOTE: does not reserve the buffer pool
|
||||||
mutex. */
|
mutex. */
|
||||||
@ -706,6 +732,9 @@ struct buf_block_struct{
|
|||||||
which bufferfixes the block acquires
|
which bufferfixes the block acquires
|
||||||
an s-latch here; so we can use the
|
an s-latch here; so we can use the
|
||||||
debug utilities in sync0rw */
|
debug utilities in sync0rw */
|
||||||
|
ibool file_page_was_freed;
|
||||||
|
/* this is set to TRUE when fsp
|
||||||
|
frees a page in buffer pool */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The buffer pool structure. NOTE! The definition appears here only for
|
/* The buffer pool structure. NOTE! The definition appears here only for
|
||||||
|
@ -28,4 +28,7 @@ int
|
|||||||
innobase_shutdown_for_mysql(void);
|
innobase_shutdown_for_mysql(void);
|
||||||
/*=============================*/
|
/*=============================*/
|
||||||
/* out: DB_SUCCESS or error code */
|
/* out: DB_SUCCESS or error code */
|
||||||
|
|
||||||
|
extern ibool srv_startup_is_before_trx_rollback_phase;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -86,7 +86,7 @@ mutex_test_and_set(
|
|||||||
/* mutex_fence(); */
|
/* mutex_fence(); */
|
||||||
|
|
||||||
return(res);
|
return(res);
|
||||||
#elif defined(__GNUC__) && defined(UNIV_INTEL_X86)
|
#elif defined(not_defined) && defined(__GNUC__) && defined(UNIV_INTEL_X86)
|
||||||
ulint* lw;
|
ulint* lw;
|
||||||
ulint res;
|
ulint res;
|
||||||
|
|
||||||
@ -134,7 +134,7 @@ mutex_reset_lock_word(
|
|||||||
__asm MOV EDX, 0
|
__asm MOV EDX, 0
|
||||||
__asm MOV ECX, lw
|
__asm MOV ECX, lw
|
||||||
__asm XCHG EDX, DWORD PTR [ECX]
|
__asm XCHG EDX, DWORD PTR [ECX]
|
||||||
#elif defined(__GNUC__) && defined(UNIV_INTEL_X86)
|
#elif defined(not_defined) && defined(__GNUC__) && defined(UNIV_INTEL_X86)
|
||||||
ulint* lw;
|
ulint* lw;
|
||||||
|
|
||||||
lw = &(mutex->lock_word);
|
lw = &(mutex->lock_word);
|
||||||
|
@ -74,6 +74,8 @@ subdirectory of 'mysql'. */
|
|||||||
|
|
||||||
#define UNIV_SYNC_PERF_STAT
|
#define UNIV_SYNC_PERF_STAT
|
||||||
#define UNIV_SEARCH_PERF_STAT
|
#define UNIV_SEARCH_PERF_STAT
|
||||||
|
|
||||||
|
#define UNIV_DEBUG_FILE_ACCESSES
|
||||||
*/
|
*/
|
||||||
#define UNIV_LIGHT_MEM_DEBUG
|
#define UNIV_LIGHT_MEM_DEBUG
|
||||||
|
|
||||||
|
@ -550,8 +550,9 @@ innobase_start_or_create_for_mysql(void)
|
|||||||
return(DB_ERROR);
|
return(DB_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
printf("srv_unix set to %lu\n", srv_unix_file_flush_method);
|
printf("srv_unix set to %lu\n", srv_unix_file_flush_method);
|
||||||
|
*/
|
||||||
os_aio_use_native_aio = srv_use_native_aio;
|
os_aio_use_native_aio = srv_use_native_aio;
|
||||||
|
|
||||||
err = srv_boot();
|
err = srv_boot();
|
||||||
|
Reference in New Issue
Block a user