Commit 3b5cee2e authored by unknown's avatar unknown

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
parent 5b6c9620
...@@ -293,6 +293,32 @@ buf_page_peek_block( ...@@ -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{ ...@@ -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 ...@@ -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( ...@@ -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( ...@@ -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'. */ ...@@ -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) ...@@ -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();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment