diff options
author | Eugene Kosov <claprix@yandex.ru> | 2020-04-27 21:22:43 +0300 |
---|---|---|
committer | Eugene Kosov <claprix@yandex.ru> | 2020-04-29 20:13:14 +0300 |
commit | 28325b08633372cc343dfcbc41fe252020cf6e6e (patch) | |
tree | 5358aee06c990cfbc574515637e23dd1944f7fc0 | |
parent | 7a546650fae56368800c52bc996d8830fb1de3b9 (diff) | |
download | mariadb-git-28325b08633372cc343dfcbc41fe252020cf6e6e.tar.gz |
add WITH_DBUG_TRACE CMake variable
This is a way do disable DBUG_ENTER()/DBUG_EXIT() stuff which is
needed to dbug trace. Those who doesn't need it may avoid tests
slowdown with -DWITH_DBUG_TRACE=OFF
dbug/tests.c: add define which is neede always in this test
innodb.log_file_name_debug.test: do not depend on DBUG trace stuff
in test
Benchmark results: each test eats less CPU and you can have more
parallel jobs in MTR.
patched:
./mtr -mem -par=8 -suite=innodb 185.34s user 86.85s system 133% cpu 3:23.27 total
./mtr -mem -par=8 -suite=main 80.96s user 36.01s system 182% cpu 1:04.07 total
main.select [ pass ] 1660
main.select [ pass ] 1513
main.select [ pass ] 1543
main.select [ pass ] 1660
main.select [ pass ] 1521
main.select [ pass ] 1511
main.select [ pass ] 1508
main.select [ pass ] 1520
main.select [ pass ] 1514
main.select [ pass ] 1522
vanilla:
./mtr -mem -par=8 -suite=innodb 203.61s user 92.16s system 140% cpu 3:30.16 total
./mtr -mem -par=8 -suite=main 94.11s user 35.51s system 206% cpu 1:02.69 total
main.select [ pass ] 2032
main.select [ pass ] 2017
main.select [ pass ] 2040
main.select [ pass ] 2183
main.select [ pass ] 2253
main.select [ pass ] 2075
main.select [ pass ] 2109
main.select [ pass ] 2080
main.select [ pass ] 2098
main.select [ pass ] 2114
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | dbug/tests.c | 4 | ||||
-rw-r--r-- | include/my_dbug.h | 8 | ||||
-rw-r--r-- | mysql-test/suite/innodb/r/log_file_name_debug.result | 2 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/log_file_name_debug.test | 2 |
5 files changed, 19 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d16252973fe..99120f16d4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -243,6 +243,11 @@ IF(SECURITY_HARDENED) MY_CHECK_AND_SET_COMPILER_FLAG("-D_FORTIFY_SOURCE=2" RELEASE RELWITHDEBINFO) ENDIF() +OPTION(WITH_DBUG_TRACE "Enable DBUG_ENTER()/DBUG_EXIT()" ON) +IF(WITH_DBUG_TRACE) + ADD_DEFINITIONS(-DDBUG_TRACE) +ENDIF() + # Always enable debug sync for debug builds. SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC") diff --git a/dbug/tests.c b/dbug/tests.c index 70424046bf4..3e77bf82236 100644 --- a/dbug/tests.c +++ b/dbug/tests.c @@ -4,6 +4,10 @@ char *push1=0; +#ifndef DBUG_TRACE +#define DBUG_TRACE +#endif + #include <my_global.h> /* This includes dbug.h */ #include <my_sys.h> #include <my_pthread.h> diff --git a/include/my_dbug.h b/include/my_dbug.h index 0fe40a9e8cb..debcfc50505 100644 --- a/include/my_dbug.h +++ b/include/my_dbug.h @@ -64,6 +64,7 @@ extern void dbug_swap_code_state(void **code_state_store); extern void dbug_free_code_state(void **code_state_store); extern const char* _db_get_func_(void); +#ifdef DBUG_TRACE #define DBUG_LEAVE do { \ _db_stack_frame_.line= __LINE__; \ _db_return_ (&_db_stack_frame_); \ @@ -82,6 +83,13 @@ extern const char* _db_get_func_(void); #define DBUG_VOID_RETURN do {DBUG_LEAVE; return;} while(0) #endif +#else +#define DBUG_LEAVE +#define DBUG_ENTER(a) +#define DBUG_RETURN(a1) return(a1) +#define DBUG_VOID_RETURN return +#endif + #define DBUG_EXECUTE(keyword,a1) \ do {if (_db_keyword_(0, (keyword), 0)) { a1 }} while(0) #define DBUG_EXECUTE_IF(keyword,a1) \ diff --git a/mysql-test/suite/innodb/r/log_file_name_debug.result b/mysql-test/suite/innodb/r/log_file_name_debug.result index ae7ce48fe5e..3fe78c91802 100644 --- a/mysql-test/suite/innodb/r/log_file_name_debug.result +++ b/mysql-test/suite/innodb/r/log_file_name_debug.result @@ -10,5 +10,5 @@ ERROR 42000: Unknown storage engine 'InnoDB' FOUND 1 /InnoDB: Tablespace 4294967280 was not found at .*, but there were no modifications either/ in mysqld.1.err SELECT * FROM t1; ERROR 42000: Unknown storage engine 'InnoDB' -FOUND 1 /srv_prepare_to_delete_redo_log_files: ib_log: MLOG_CHECKPOINT.* written/ in mysqld.1.err +FOUND 1 /ib_log: MLOG_CHECKPOINT.* written/ in mysqld.1.err DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/log_file_name_debug.test b/mysql-test/suite/innodb/t/log_file_name_debug.test index d85fbf08194..584d3dc1d5d 100644 --- a/mysql-test/suite/innodb/t/log_file_name_debug.test +++ b/mysql-test/suite/innodb/t/log_file_name_debug.test @@ -39,7 +39,7 @@ SELECT * FROM t1; --source include/restart_mysqld.inc --error ER_UNKNOWN_STORAGE_ENGINE SELECT * FROM t1; ---let SEARCH_PATTERN= srv_prepare_to_delete_redo_log_files: ib_log: MLOG_CHECKPOINT.* written +--let SEARCH_PATTERN= ib_log: MLOG_CHECKPOINT.* written --source include/search_pattern_in_file.inc --let $restart_parameters= |