From: Marc Alff Date: June 6 2011 8:08pm Subject: bzr push into mysql-trunk-pfs-tuning branch (marc.alff:3380 to 3381) List-Archive: http://lists.mysql.com/commits/138715 Message-Id: <20110606200835.E2D4B2FEE41@linux-8edv.site> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3381 Marc Alff 2011-06-06 performance tuning: de normalized instrumentation flags modified: mysql-test/suite/perfschema/t/func_file_io.test storage/perfschema/pfs.cc storage/perfschema/pfs_instr.cc storage/perfschema/pfs_instr.h storage/perfschema/table_setup_consumers.cc storage/perfschema/table_setup_instruments.cc storage/perfschema/unittest/pfs-t.cc storage/perfschema/unittest/pfs_instr_class-t.cc 3380 Marc Alff 2011-06-03 [merge] Merge mysql-trunk --> mysql-trunk-pfs-tuning added: extra/yassl/include/openssl/transport_types.h mysql-test/suite/binlog/r/binlog_reset_master.result mysql-test/suite/binlog/t/binlog_reset_master.test mysql-test/suite/innodb/r/innodb_index_large_prefix.result mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result mysql-test/suite/innodb/r/innodb_prefix_index_restart_server.result mysql-test/suite/innodb/t/innodb_index_large_prefix.test mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test mysql-test/suite/innodb/t/innodb_prefix_index_restart_server.test vio/viopipe.c vio/vioshm.c modified: client/completion_hash.cc client/mysql.cc client/mysql_upgrade.c client/mysqlbinlog.cc client/mysqldump.c client/mysqlslap.c client/mysqltest.cc client/sql_string.cc cmake/install_layout.cmake cmake/os/Windows.cmake cmake/os/WindowsCache.cmake cmake/plugin.cmake config.h.cmake configure.cmake dbug/dbug.c extra/comp_err.c extra/replace.c extra/yassl/include/openssl/ssl.h extra/yassl/include/socket_wrapper.hpp extra/yassl/src/handshake.cpp extra/yassl/src/socket_wrapper.cpp extra/yassl/src/ssl.cpp include/hash.h include/m_string.h include/my_base.h include/my_global.h include/my_sys.h include/myisampack.h include/mysql.h.pp include/mysql_com.h include/violite.h libmysql/errmsg.c libmysql/libmysql.c libmysqld/lib_sql.cc mysql-test/collections/default.experimental mysql-test/extra/binlog_tests/binlog_cache_stat.test mysql-test/extra/rpl_tests/rpl_binlog_max_cache_size.test mysql-test/include/mysqlhotcopy.inc mysql-test/include/plugin.defs mysql-test/include/subquery.inc mysql-test/mysql-test-run.pl mysql-test/r/events_bugs.result mysql-test/r/func_math.result mysql-test/r/func_str.result mysql-test/r/innodb_mysql_lock.result mysql-test/r/innodb_mysql_sync.result mysql-test/r/myisam_debug.result mysql-test/r/openssl_1.result mysql-test/r/query_cache_debug.result mysql-test/r/ssl.result mysql-test/r/subquery_nomat_nosj.result mysql-test/r/subquery_none.result mysql-test/r/wait_timeout.result mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result mysql-test/suite/binlog/r/binlog_row_cache_stat.result mysql-test/suite/binlog/r/binlog_stm_cache_stat.result mysql-test/suite/innodb/include/innodb_stats.inc mysql-test/suite/innodb/include/innodb_stats_bootstrap.inc mysql-test/suite/innodb/r/innodb-index.result mysql-test/suite/innodb/r/innodb_mysql.result mysql-test/suite/innodb/r/innodb_stats.result mysql-test/suite/innodb/r/innodb_stats_drop_locked.result mysql-test/suite/innodb/t/innodb-index.test mysql-test/suite/innodb/t/innodb_bug11933790.test mysql-test/suite/innodb/t/innodb_mysql.test mysql-test/suite/innodb/t/innodb_stats.test mysql-test/suite/innodb/t/innodb_stats_drop_locked.test mysql-test/suite/rpl/r/rpl_crash_safe_master.result mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result mysql-test/suite/rpl/t/rpl_crash_safe_master.test mysql-test/suite/sys_vars/r/all_vars.result mysql-test/suite/sys_vars/r/innodb_purge_batch_size_basic.result mysql-test/t/events_bugs.test mysql-test/t/func_math.test mysql-test/t/func_str.test mysql-test/t/innodb_mysql_lock.test mysql-test/t/innodb_mysql_sync.test mysql-test/t/myisam_debug.test mysql-test/t/query_cache_debug.test mysql-test/t/ssl.test mysql-test/t/wait_timeout.test mysql-test/t/xa.test mysys/array.c mysys/charset.c mysys/default.c mysys/lf_dynarray.c mysys/mf_iocache.c mysys/mf_keycache.c mysys/mf_radix.c mysys/my_aes.c mysys/my_alloc.c mysys/my_bitmap.c mysys/my_chsize.c mysys/my_file.c mysys/my_gethwaddr.c mysys/my_handler_errors.h mysys/my_init.c mysys/my_lib.c mysys/my_malloc.c mysys/my_once.c mysys/my_wincond.c mysys/my_windac.c mysys/sha1.c mysys/testhash.c mysys/thr_alarm.c mysys/thr_lock.c mysys/thr_mutex.c mysys/tree.c mysys/waiting_threads.c regex/regexp.c regex/reginit.c sql-common/client.c sql-common/client_plugin.c sql-common/my_time.c sql/binlog.cc sql/binlog.h sql/debug_sync.cc sql/des_key_file.cc sql/event_data_objects.cc sql/event_db_repository.cc sql/event_db_repository.h sql/events.cc sql/field.cc sql/field.h sql/field_conv.cc sql/filesort.cc sql/gcalc_tools.h sql/ha_ndbcluster.cc sql/ha_ndbcluster_binlog.cc sql/ha_partition.cc sql/ha_partition.h sql/handler.cc sql/handler.h sql/hash_filo.h sql/item.cc sql/item.h sql/item_cmpfunc.h sql/item_func.cc sql/item_inetfunc.cc sql/item_strfunc.cc sql/item_sum.cc sql/item_timefunc.cc sql/item_xmlfunc.cc sql/key.cc sql/log.cc sql/log_event.cc sql/log_event.h sql/log_event_old.cc sql/mysqld.cc sql/net_serv.cc sql/opt_range.cc sql/partition_info.cc sql/password.c sql/protocol.cc sql/records.cc sql/rpl_info_file.cc sql/rpl_injector.cc sql/rpl_master.cc sql/rpl_rli.cc sql/rpl_utility.cc sql/rpl_utility.h sql/set_var.cc sql/share/errmsg-utf8.txt sql/sp.cc sql/sp_head.cc sql/sql_acl.cc sql/sql_alter.cc sql/sql_analyse.cc sql/sql_audit.cc sql/sql_base.cc sql/sql_cache.cc sql/sql_class.cc sql/sql_class.h sql/sql_connect.cc sql/sql_db.cc sql/sql_delete.cc sql/sql_error.cc sql/sql_insert.cc sql/sql_join_cache.cc sql/sql_lex.cc sql/sql_list.h sql/sql_load.cc sql/sql_parse.cc sql/sql_partition_admin.cc sql/sql_plugin.cc sql/sql_prepare.cc sql/sql_select.cc sql/sql_select.h sql/sql_show.cc sql/sql_string.cc sql/sql_table.cc sql/sql_trigger.cc sql/sql_trigger.h sql/sql_udf.cc sql/sql_union.cc sql/sql_update.cc sql/sql_view.cc sql/sql_yacc.yy sql/table.cc sql/table.h sql/thr_malloc.cc sql/tztime.cc sql/udf_example.c sql/unireg.cc sql/unireg.h storage/blackhole/ha_blackhole.cc storage/federated/ha_federated.cc storage/heap/ha_heap.cc storage/heap/hp_create.c storage/heap/hp_hash.c storage/heap/hp_test1.c storage/heap/hp_test2.c storage/innobase/data/data0data.c storage/innobase/dict/dict0dict.c storage/innobase/dict/dict0mem.c storage/innobase/dict/dict0stats.c storage/innobase/handler/ha_innodb.cc storage/innobase/handler/ha_innodb.h storage/innobase/handler/handler0alter.cc storage/innobase/include/db0err.h storage/innobase/include/dict0dict.h storage/innobase/include/dict0dict.ic storage/innobase/include/dict0mem.h storage/innobase/include/mtr0mtr.ic storage/innobase/include/rem0types.h storage/innobase/include/row0ext.h storage/innobase/include/row0ext.ic storage/innobase/include/sync0sync.h storage/innobase/include/sync0sync.ic storage/innobase/include/trx0purge.h storage/innobase/lock/lock0lock.c storage/innobase/mtr/mtr0mtr.c storage/innobase/page/page0zip.c storage/innobase/rem/rem0rec.c storage/innobase/row/row0ext.c storage/innobase/row/row0mysql.c storage/innobase/row/row0row.c storage/innobase/row/row0sel.c storage/innobase/row/row0upd.c storage/innobase/scripts/persistent_storage.sql storage/innobase/srv/srv0srv.c storage/innobase/trx/trx0purge.c storage/innobase/trx/trx0rec.c storage/innobase/ut/ut0ut.c storage/myisam/ft_boolean_search.c storage/myisam/ft_nlq_search.c storage/myisam/ft_update.c storage/myisam/ha_myisam.cc storage/myisam/mi_cache.c storage/myisam/mi_check.c storage/myisam/mi_create.c storage/myisam/mi_dynrec.c storage/myisam/mi_key.c storage/myisam/mi_log.c storage/myisam/mi_open.c storage/myisam/mi_packrec.c storage/myisam/mi_rkey.c storage/myisam/mi_statrec.c storage/myisam/mi_test1.c storage/myisam/mi_test2.c storage/myisam/mi_test3.c storage/myisam/myisamchk.c storage/myisam/myisamlog.c storage/myisam/myisampack.c storage/myisam/rt_test.c storage/myisam/sort.c storage/myisam/sp_key.c storage/myisam/sp_test.c storage/myisammrg/ha_myisammrg.cc storage/myisammrg/myrg_open.c storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp storage/ndb/src/kernel/blocks/tsman.cpp storage/ndb/src/kernel/vm/RWPool.cpp storage/ndb/src/kernel/vm/WOPool.cpp storage/ndb/src/kernel/vm/bench_pool.cpp storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp storage/ndb/src/mgmsrv/InitConfigFileParser.cpp storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp storage/ndb/test/ndbapi/testNodeRestart.cpp storage/ndb/test/run-test/setup.cpp storage/ndb/test/src/DbUtil.cpp strings/conf_to_src.c strings/ctype-czech.c strings/ctype-mb.c strings/ctype-simple.c strings/ctype-uca.c strings/ctype-win1250ch.c strings/ctype.c strings/decimal.c strings/dump_map.c strings/my_vsnprintf.c strings/uca-dump.c strings/uctypedump.c strings/xml.c support-files/build-tags tests/mysql_client_test.c unittest/gunit/item-t.cc unittest/gunit/test_utils.h unittest/mysys/waiting_threads-t.c vio/CMakeLists.txt vio/test-ssl.c vio/test-sslclient.c vio/test-sslserver.c vio/vio.c vio/vio_priv.h vio/viosocket.c vio/viossl.c vio/viosslfactories.c vio/viotest-ssl.c === modified file 'mysql-test/suite/perfschema/t/func_file_io.test' --- a/mysql-test/suite/perfschema/t/func_file_io.test 2010-11-18 16:34:56 +0000 +++ b/mysql-test/suite/perfschema/t/func_file_io.test 2011-06-06 20:07:48 +0000 @@ -69,6 +69,7 @@ SET @after_count = (SELECT SUM(TIMER_WAI AND (OBJECT_NAME LIKE '%t1.MYD') AND (1 = 1)); SELECT IF((@after_count - @before_count) > 0, 'Success', 'Failure') test_ff1_timed; +select @before_count, @after_count; UPDATE performance_schema.setup_instruments SET enabled='NO'; === modified file 'storage/perfschema/pfs.cc' --- a/storage/perfschema/pfs.cc 2011-06-03 16:15:01 +0000 +++ b/storage/perfschema/pfs.cc 2011-06-06 20:07:48 +0000 @@ -38,7 +38,14 @@ #include "pfs_internal_stat.h" #include "sql_error.h" -#define PFS_NOTHING +#undef PFS_NOTHING_MUTEX +#undef PFS_NOTHING_RWLOCK +#undef PFS_NOTHING_COND +#undef PFS_NOTHING_FILE +#undef PFS_NOTHING_THREAD +#undef PFS_NOTHING_TABLE +#undef PFS_NOTHING_STAGE +#undef PFS_NOTHING_STATEMENT /** @page PAGE_PERFORMANCE_SCHEMA The Performance Schema main page @@ -1199,7 +1206,7 @@ void pfs_register_mutex_v1(const char *c { PFS_INTERNAL_INC(pfs_internal_register_mutex_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_MUTEX return; #else REGISTER_BODY_V1(PSI_mutex_key, @@ -1218,7 +1225,7 @@ void pfs_register_rwlock_v1(const char * { PFS_INTERNAL_INC(pfs_internal_register_rwlock_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return; #else REGISTER_BODY_V1(PSI_rwlock_key, @@ -1237,7 +1244,7 @@ void pfs_register_cond_v1(const char *ca { PFS_INTERNAL_INC(pfs_internal_register_cond_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return; #else REGISTER_BODY_V1(PSI_cond_key, @@ -1256,7 +1263,7 @@ void pfs_register_thread_v1(const char * { PFS_INTERNAL_INC(pfs_internal_register_thread_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else REGISTER_BODY_V1(PSI_thread_key, @@ -1275,7 +1282,7 @@ void pfs_register_file_v1(const char *ca { PFS_INTERNAL_INC(pfs_internal_register_file_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return; #else REGISTER_BODY_V1(PSI_file_key, @@ -1290,7 +1297,7 @@ void pfs_register_stage_v1(const char *c { PFS_INTERNAL_INC(pfs_internal_register_stage_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STAGE return; #else char formatted_name[PFS_MAX_INFO_NAME_LENGTH]; @@ -1339,7 +1346,7 @@ void pfs_register_statement_v1(const cha { PFS_INTERNAL_INC(pfs_internal_register_statement_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else char formatted_name[PFS_MAX_INFO_NAME_LENGTH]; @@ -1398,7 +1405,7 @@ pfs_init_mutex_v1(PSI_mutex_key key, con { PFS_INTERNAL_INC(pfs_internal_init_mutex_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_MUTEX return NULL; #else INIT_BODY_V1(mutex, key, identity); @@ -1413,7 +1420,7 @@ void pfs_destroy_mutex_v1(PSI_mutex* mut { PFS_INTERNAL_INC(pfs_internal_destroy_mutex_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_MUTEX return; #else PFS_mutex *pfs= reinterpret_cast (mutex); @@ -1434,7 +1441,7 @@ pfs_init_rwlock_v1(PSI_rwlock_key key, c { PFS_INTERNAL_INC(pfs_internal_init_rwlock_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return NULL; #else INIT_BODY_V1(rwlock, key, identity); @@ -1449,7 +1456,7 @@ void pfs_destroy_rwlock_v1(PSI_rwlock* r { PFS_INTERNAL_INC(pfs_internal_destroy_rwlock_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return; #else PFS_rwlock *pfs= reinterpret_cast (rwlock); @@ -1470,7 +1477,7 @@ pfs_init_cond_v1(PSI_cond_key key, const { PFS_INTERNAL_INC(pfs_internal_init_cond_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return NULL; #else INIT_BODY_V1(cond, key, identity); @@ -1485,7 +1492,7 @@ void pfs_destroy_cond_v1(PSI_cond* cond) { PFS_INTERNAL_INC(pfs_internal_destroy_cond_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return; #else PFS_cond *pfs= reinterpret_cast (cond); @@ -1506,7 +1513,7 @@ pfs_get_table_share_v1(my_bool temporary { PFS_INTERNAL_INC(pfs_internal_get_table_share_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return NULL; #else /* An instrumented thread is required, for LF_PINS. */ @@ -1527,7 +1534,7 @@ void pfs_release_table_share_v1(PSI_tabl { PFS_INTERNAL_INC(pfs_internal_release_table_share_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return; #else PFS_table_share* pfs= reinterpret_cast (share); @@ -1549,7 +1556,7 @@ pfs_drop_table_share_v1(const char *sche { PFS_INTERNAL_INC(pfs_internal_drop_table_share_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return; #else PFS_thread *pfs_thread= get_pfs_thread(); @@ -1570,7 +1577,7 @@ pfs_open_table_v1(PSI_table_share *share { PFS_INTERNAL_INC(pfs_internal_open_table_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return NULL; #else PFS_table_share *pfs_table_share= reinterpret_cast (share); @@ -1604,7 +1611,7 @@ void pfs_close_table_v1(PSI_table *table { PFS_INTERNAL_INC(pfs_internal_close_table_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return; #else PFS_table *pfs= reinterpret_cast (table); @@ -1625,7 +1632,7 @@ void pfs_create_file_v1(PSI_file_key key { PFS_INTERNAL_INC(pfs_internal_create_file_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return; #else if (! flag_global_instrumentation) @@ -1766,7 +1773,7 @@ pfs_new_thread_v1(PSI_thread_key key, co { PFS_INTERNAL_INC(pfs_internal_new_thread_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return NULL; #else PFS_thread *pfs; @@ -1789,7 +1796,7 @@ void pfs_set_thread_id_v1(PSI_thread *th { PFS_INTERNAL_INC(pfs_internal_set_thread_id_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else DBUG_ASSERT(thread); @@ -1807,7 +1814,7 @@ pfs_get_thread_v1(void) { PFS_INTERNAL_INC(pfs_internal_get_thread_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return NULL; #else if (unlikely(! THR_PFS_initialized)) @@ -1825,7 +1832,7 @@ void pfs_set_thread_user_v1(const char * { PFS_INTERNAL_INC(pfs_internal_set_thread_user_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= get_pfs_thread(); @@ -1878,7 +1885,7 @@ void pfs_set_thread_user_host_v1(const c { PFS_INTERNAL_INC(pfs_internal_set_thread_user_host_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= get_pfs_thread(); @@ -1934,7 +1941,7 @@ void pfs_set_thread_db_v1(const char* db { PFS_INTERNAL_INC(pfs_internal_set_thread_db_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= get_pfs_thread(); @@ -1962,7 +1969,7 @@ void pfs_set_thread_command_v1(int comma { PFS_INTERNAL_INC(pfs_internal_set_thread_command_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= get_pfs_thread(); @@ -1987,7 +1994,7 @@ void pfs_set_thread_start_time_v1(time_t { PFS_INTERNAL_INC(pfs_internal_set_thread_start_time_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= get_pfs_thread(); @@ -2009,7 +2016,7 @@ void pfs_set_thread_state_v1(const char* { PFS_INTERNAL_INC(pfs_internal_set_thread_state_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= get_pfs_thread(); @@ -2034,7 +2041,7 @@ void pfs_set_thread_info_v1(const char* { PFS_INTERNAL_INC(pfs_internal_set_thread_info_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= get_pfs_thread(); @@ -2057,7 +2064,7 @@ void pfs_set_thread_v1(PSI_thread* threa { PFS_INTERNAL_INC(pfs_internal_set_thread_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= reinterpret_cast (thread); @@ -2074,7 +2081,7 @@ void pfs_delete_current_thread_v1(void) { PFS_INTERNAL_INC(pfs_internal_delete_current_thread_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *thread= get_pfs_thread(); @@ -2096,7 +2103,7 @@ void pfs_delete_thread_v1(PSI_thread *th { PFS_INTERNAL_INC(pfs_internal_delete_thread_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_THREAD return; #else PFS_thread *pfs= reinterpret_cast (thread); @@ -2119,24 +2126,20 @@ pfs_get_thread_mutex_locker_v1(PSI_mutex { PFS_INTERNAL_INC(pfs_internal_get_thread_mutex_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_MUTEX return NULL; #else DBUG_ASSERT((int) op >= 0); DBUG_ASSERT((uint) op < array_elements(mutex_operation_map)); DBUG_ASSERT(state != NULL); - if (! flag_global_instrumentation) - return NULL; - PFS_mutex *pfs_mutex= reinterpret_cast (mutex); if (unlikely(pfs_mutex == NULL)) return NULL; DBUG_ASSERT(pfs_mutex->m_class != NULL); - PFS_mutex_class *klass= pfs_mutex->m_class; - if (! klass->m_enabled) + if (! pfs_mutex->m_enabled) return NULL; register uint flags; @@ -2151,7 +2154,7 @@ pfs_get_thread_mutex_locker_v1(PSI_mutex state->m_thread= reinterpret_cast (pfs_thread); flags= STATE_FLAG_THREAD; - if (klass->m_timed) + if (pfs_mutex->m_timed) flags|= STATE_FLAG_TIMED; if (flag_events_waits_current) @@ -2171,7 +2174,7 @@ pfs_get_thread_mutex_locker_v1(PSI_mutex wait->m_nesting_event_type= parent_event->m_event_type; wait->m_thread= pfs_thread; - wait->m_class= klass; + wait->m_class= pfs_mutex->m_class; wait->m_timer_start= 0; wait->m_timer_end= 0; wait->m_object_instance_addr= pfs_mutex->m_identity; @@ -2184,7 +2187,7 @@ pfs_get_thread_mutex_locker_v1(PSI_mutex } else { - if (klass->m_timed) + if (pfs_mutex->m_timed) { flags= STATE_FLAG_TIMED; state->m_thread= NULL; @@ -2217,24 +2220,20 @@ pfs_get_thread_rwlock_locker_v1(PSI_rwlo { PFS_INTERNAL_INC(pfs_internal_get_thread_rwlock_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return NULL; #else DBUG_ASSERT(static_cast (op) >= 0); DBUG_ASSERT(static_cast (op) < array_elements(rwlock_operation_map)); DBUG_ASSERT(state != NULL); - if (! flag_global_instrumentation) - return NULL; - PFS_rwlock *pfs_rwlock= reinterpret_cast (rwlock); if (unlikely(pfs_rwlock == NULL)) return NULL; DBUG_ASSERT(pfs_rwlock->m_class != NULL); - PFS_rwlock_class *klass= pfs_rwlock->m_class; - if (! klass->m_enabled) + if (! pfs_rwlock->m_enabled) return NULL; register uint flags; @@ -2249,7 +2248,7 @@ pfs_get_thread_rwlock_locker_v1(PSI_rwlo state->m_thread= reinterpret_cast (pfs_thread); flags= STATE_FLAG_THREAD; - if (klass->m_timed) + if (pfs_rwlock->m_timed) flags|= STATE_FLAG_TIMED; if (flag_events_waits_current) @@ -2269,7 +2268,7 @@ pfs_get_thread_rwlock_locker_v1(PSI_rwlo wait->m_nesting_event_type= parent_event->m_event_type; wait->m_thread= pfs_thread; - wait->m_class= klass; + wait->m_class= pfs_rwlock->m_class; wait->m_timer_start= 0; wait->m_timer_end= 0; wait->m_object_instance_addr= pfs_rwlock->m_identity; @@ -2282,7 +2281,7 @@ pfs_get_thread_rwlock_locker_v1(PSI_rwlo } else { - if (klass->m_timed) + if (pfs_rwlock->m_timed) { flags= STATE_FLAG_TIMED; state->m_thread= NULL; @@ -2316,7 +2315,7 @@ pfs_get_thread_cond_locker_v1(PSI_cond_l { PFS_INTERNAL_INC(pfs_internal_get_thread_cond_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return NULL; #else /* @@ -2334,22 +2333,18 @@ pfs_get_thread_cond_locker_v1(PSI_cond_l DBUG_ASSERT(static_cast (op) < array_elements(cond_operation_map)); DBUG_ASSERT(state != NULL); - if (! flag_global_instrumentation) - return NULL; - PFS_cond *pfs_cond= reinterpret_cast (cond); if (unlikely(pfs_cond == NULL)) return NULL; DBUG_ASSERT(pfs_cond->m_class != NULL); - PFS_cond_class *klass= pfs_cond->m_class; - if (! klass->m_enabled) + if (! pfs_cond->m_enabled) return NULL; register uint flags; - if (klass->m_timed) + if (pfs_cond->m_timed) state->m_flags= STATE_FLAG_TIMED; else state->m_flags= 0; @@ -2364,7 +2359,7 @@ pfs_get_thread_cond_locker_v1(PSI_cond_l state->m_thread= reinterpret_cast (pfs_thread); flags= STATE_FLAG_THREAD; - if (klass->m_timed) + if (pfs_cond->m_timed) flags|= STATE_FLAG_TIMED; if (flag_events_waits_current) @@ -2384,7 +2379,7 @@ pfs_get_thread_cond_locker_v1(PSI_cond_l wait->m_nesting_event_type= parent_event->m_event_type; wait->m_thread= pfs_thread; - wait->m_class= klass; + wait->m_class= pfs_cond->m_class; wait->m_timer_start= 0; wait->m_timer_end= 0; wait->m_object_instance_addr= pfs_cond->m_identity; @@ -2397,7 +2392,7 @@ pfs_get_thread_cond_locker_v1(PSI_cond_l } else { - if (klass->m_timed) + if (pfs_cond->m_timed) flags= STATE_FLAG_TIMED; else { @@ -2472,16 +2467,13 @@ pfs_get_thread_table_io_locker_v1(PSI_ta { PFS_INTERNAL_INC(pfs_internal_get_thread_table_io_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return NULL; #else DBUG_ASSERT(static_cast (op) >= 0); DBUG_ASSERT(static_cast (op) < array_elements(table_io_operation_map)); DBUG_ASSERT(state != NULL); - if (! flag_global_instrumentation) - return NULL; - PFS_table *pfs_table= reinterpret_cast (table); if (unlikely(pfs_table == NULL)) @@ -2489,13 +2481,9 @@ pfs_get_thread_table_io_locker_v1(PSI_ta DBUG_ASSERT(pfs_table->m_share != NULL); - PFS_table_share *share= pfs_table->m_share; - if (! share->m_io_enabled) + if (! pfs_table->m_io_enabled) return NULL; - PFS_instr_class *klass; - klass= &global_table_io_class; - register uint flags; if (flag_thread_instrumentation) @@ -2508,7 +2496,7 @@ pfs_get_thread_table_io_locker_v1(PSI_ta state->m_thread= reinterpret_cast (pfs_thread); flags= STATE_FLAG_THREAD; - if (share->m_io_timed) + if (pfs_table->m_io_timed) flags|= STATE_FLAG_TIMED; if (flag_events_waits_current) @@ -2522,8 +2510,9 @@ pfs_get_thread_table_io_locker_v1(PSI_ta state->m_wait= wait; flags|= STATE_FLAG_EVENT; + PFS_table_share *share= pfs_table->m_share; wait->m_thread= pfs_thread; - wait->m_class= klass; + wait->m_class= &global_table_io_class; wait->m_timer_start= 0; wait->m_timer_end= 0; wait->m_object_instance_addr= pfs_table->m_identity; @@ -2542,7 +2531,7 @@ pfs_get_thread_table_io_locker_v1(PSI_ta } else { - if (share->m_io_timed) + if (pfs_table->m_io_timed) { flags= STATE_FLAG_TIMED; } @@ -2571,15 +2560,12 @@ pfs_get_thread_table_lock_locker_v1(PSI_ { PFS_INTERNAL_INC(pfs_internal_get_thread_table_lock_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return NULL; #else DBUG_ASSERT(state != NULL); DBUG_ASSERT((op == PSI_TABLE_LOCK) || (op == PSI_TABLE_EXTERNAL_LOCK)); - if (! flag_global_instrumentation) - return NULL; - PFS_table *pfs_table= reinterpret_cast (table); if (unlikely(pfs_table == NULL)) @@ -2587,13 +2573,10 @@ pfs_get_thread_table_lock_locker_v1(PSI_ DBUG_ASSERT(pfs_table->m_share != NULL); - PFS_table_share *share= pfs_table->m_share; - if (! share->m_lock_enabled) + if (! pfs_table->m_lock_enabled) return NULL; - PFS_instr_class *klass; PFS_TL_LOCK_TYPE lock_type; - klass= &global_table_lock_class; switch (op) { @@ -2628,7 +2611,7 @@ pfs_get_thread_table_lock_locker_v1(PSI_ state->m_thread= reinterpret_cast (pfs_thread); flags= STATE_FLAG_THREAD; - if (share->m_lock_timed) + if (pfs_table->m_lock_timed) flags|= STATE_FLAG_TIMED; if (flag_events_waits_current) @@ -2642,8 +2625,9 @@ pfs_get_thread_table_lock_locker_v1(PSI_ state->m_wait= wait; flags|= STATE_FLAG_EVENT; + PFS_table_share *share= pfs_table->m_share; wait->m_thread= pfs_thread; - wait->m_class= klass; + wait->m_class= &global_table_lock_class; wait->m_timer_start= 0; wait->m_timer_end= 0; wait->m_object_instance_addr= pfs_table->m_identity; @@ -2662,7 +2646,7 @@ pfs_get_thread_table_lock_locker_v1(PSI_ } else { - if (share->m_lock_timed) + if (pfs_table->m_lock_timed) { flags= STATE_FLAG_TIMED; } @@ -2692,7 +2676,7 @@ pfs_get_thread_file_name_locker_v1(PSI_f { PFS_INTERNAL_INC(pfs_internal_get_thread_file_name_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return NULL; #else DBUG_ASSERT(static_cast (op) >= 0); @@ -2775,24 +2759,20 @@ pfs_get_thread_file_stream_locker_v1(PSI { PFS_INTERNAL_INC(pfs_internal_get_thread_file_stream_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return NULL; #else DBUG_ASSERT(static_cast (op) >= 0); DBUG_ASSERT(static_cast (op) < array_elements(file_operation_map)); DBUG_ASSERT(state != NULL); - if (! flag_global_instrumentation) - return NULL; - PFS_file *pfs_file= reinterpret_cast (file); if (unlikely(pfs_file == NULL)) return NULL; DBUG_ASSERT(pfs_file->m_class != NULL); - PFS_file_class *klass= pfs_file->m_class; - if (! klass->m_enabled) + if (! pfs_file->m_enabled) return NULL; register uint flags; @@ -2807,7 +2787,7 @@ pfs_get_thread_file_stream_locker_v1(PSI state->m_thread= reinterpret_cast (pfs_thread); flags= STATE_FLAG_THREAD; - if (klass->m_timed) + if (pfs_file->m_timed) flags|= STATE_FLAG_TIMED; if (flag_events_waits_current) @@ -2827,7 +2807,7 @@ pfs_get_thread_file_stream_locker_v1(PSI wait->m_nesting_event_type= parent_event->m_event_type; wait->m_thread= pfs_thread; - wait->m_class= klass; + wait->m_class= pfs_file->m_class; wait->m_timer_start= 0; wait->m_timer_end= 0; wait->m_object_instance_addr= pfs_file; @@ -2843,7 +2823,7 @@ pfs_get_thread_file_stream_locker_v1(PSI else { state->m_thread= NULL; - if (klass->m_timed) + if (pfs_file->m_timed) { flags= STATE_FLAG_TIMED; } @@ -2871,7 +2851,7 @@ pfs_get_thread_file_descriptor_locker_v1 { PFS_INTERNAL_INC(pfs_internal_get_thread_file_descriptor_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return NULL; #else int index= static_cast (file); @@ -2901,8 +2881,7 @@ pfs_get_thread_file_descriptor_locker_v1 file_handle_array[index]= NULL; DBUG_ASSERT(pfs_file->m_class != NULL); - PFS_instr_class *klass= pfs_file->m_class; - if (! klass->m_enabled) + if (! pfs_file->m_enabled) return NULL; register uint flags; @@ -2917,7 +2896,7 @@ pfs_get_thread_file_descriptor_locker_v1 state->m_thread= reinterpret_cast (pfs_thread); flags= STATE_FLAG_THREAD; - if (klass->m_timed) + if (pfs_file->m_timed) flags|= STATE_FLAG_TIMED; if (flag_events_waits_current) @@ -2937,7 +2916,7 @@ pfs_get_thread_file_descriptor_locker_v1 wait->m_nesting_event_type= parent_event->m_event_type; wait->m_thread= pfs_thread; - wait->m_class= klass; + wait->m_class= pfs_file->m_class; wait->m_timer_start= 0; wait->m_timer_end= 0; wait->m_object_instance_addr= pfs_file; @@ -2953,7 +2932,7 @@ pfs_get_thread_file_descriptor_locker_v1 else { state->m_thread= NULL; - if (klass->m_timed) + if (pfs_file->m_timed) { flags= STATE_FLAG_TIMED; } @@ -2979,7 +2958,7 @@ void pfs_unlock_mutex_v1(PSI_mutex *mute { PFS_INTERNAL_INC(pfs_internal_unlock_mutex_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_MUTEX return; #else PFS_mutex *pfs_mutex= reinterpret_cast (mutex); @@ -3030,7 +3009,7 @@ void pfs_unlock_rwlock_v1(PSI_rwlock *rw { PFS_INTERNAL_INC(pfs_internal_unlock_rwlock_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return; #else PFS_rwlock *pfs_rwlock= reinterpret_cast (rwlock); @@ -3119,7 +3098,7 @@ void pfs_signal_cond_v1(PSI_cond* cond) { PFS_INTERNAL_INC(pfs_internal_signal_cond_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return; #else PFS_cond *pfs_cond= reinterpret_cast (cond); @@ -3139,7 +3118,7 @@ void pfs_broadcast_cond_v1(PSI_cond* con { PFS_INTERNAL_INC(pfs_internal_broadcast_cond_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return; #else PFS_cond *pfs_cond= reinterpret_cast (cond); @@ -3160,7 +3139,7 @@ void pfs_start_mutex_wait_v1(PSI_mutex_l { PFS_INTERNAL_INC(pfs_internal_start_mutex_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_MUTEX return; #else PSI_mutex_locker_state *state= reinterpret_cast (locker); @@ -3195,7 +3174,7 @@ void pfs_end_mutex_wait_v1(PSI_mutex_loc { PFS_INTERNAL_INC(pfs_internal_end_mutex_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_MUTEX return; #else PSI_mutex_locker_state *state= reinterpret_cast (locker); @@ -3270,7 +3249,7 @@ void pfs_start_rwlock_rdwait_v1(PSI_rwlo { PFS_INTERNAL_INC(pfs_internal_start_rwlock_rdwait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return; #else ulonglong timer_start= 0; @@ -3303,7 +3282,7 @@ void pfs_end_rwlock_rdwait_v1(PSI_rwlock { PFS_INTERNAL_INC(pfs_internal_end_rwlock_rdwait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return; #else PSI_rwlock_locker_state *state= reinterpret_cast (locker); @@ -3386,7 +3365,7 @@ void pfs_start_rwlock_wrwait_v1(PSI_rwlo { PFS_INTERNAL_INC(pfs_internal_start_rwlock_wrwait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return; #else ulonglong timer_start= 0; @@ -3419,7 +3398,7 @@ void pfs_end_rwlock_wrwait_v1(PSI_rwlock { PFS_INTERNAL_INC(pfs_internal_end_rwlock_wrwait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_RWLOCK return; #else PSI_rwlock_locker_state *state= reinterpret_cast (locker); @@ -3495,7 +3474,7 @@ void pfs_start_cond_wait_v1(PSI_cond_loc { PFS_INTERNAL_INC(pfs_internal_start_cond_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return; #else ulonglong timer_start= 0; @@ -3528,7 +3507,7 @@ void pfs_end_cond_wait_v1(PSI_cond_locke { PFS_INTERNAL_INC(pfs_internal_end_cond_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_COND return; #else PSI_cond_locker_state *state= reinterpret_cast (locker); @@ -3597,7 +3576,7 @@ void pfs_start_table_io_wait_v1(PSI_tabl { PFS_INTERNAL_INC(pfs_internal_start_table_io_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return; #else ulonglong timer_start= 0; @@ -3632,7 +3611,7 @@ void pfs_end_table_io_wait_v1(PSI_table_ { PFS_INTERNAL_INC(pfs_internal_end_table_io_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return; #else PSI_table_locker_state *state= reinterpret_cast (locker); @@ -3709,7 +3688,7 @@ void pfs_start_table_lock_wait_v1(PSI_ta { PFS_INTERNAL_INC(pfs_internal_start_table_lock_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return; #else ulonglong timer_start= 0; @@ -3744,7 +3723,7 @@ void pfs_end_table_lock_wait_v1(PSI_tabl { PFS_INTERNAL_INC(pfs_internal_end_table_lock_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_TABLE return; #else PSI_table_locker_state *state= reinterpret_cast (locker); @@ -3807,7 +3786,7 @@ PSI_file* pfs_start_file_open_wait_v1(PS { PFS_INTERNAL_INC(pfs_internal_start_file_open_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return NULL; #else PSI_file_locker_state *state= reinterpret_cast (locker); @@ -3827,7 +3806,7 @@ void pfs_end_file_open_wait_v1(PSI_file_ { PFS_INTERNAL_INC(pfs_internal_end_file_open_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return; #else pfs_end_file_wait_v1(locker, 0); @@ -3843,7 +3822,7 @@ void pfs_end_file_open_wait_and_bind_to_ { PFS_INTERNAL_INC(pfs_internal_end_file_open_wait_and_bind_to_descriptor_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return; #else int index= (int) file; @@ -3880,7 +3859,7 @@ void pfs_start_file_wait_v1(PSI_file_loc { PFS_INTERNAL_INC(pfs_internal_start_file_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return; #else ulonglong timer_start= 0; @@ -3917,7 +3896,7 @@ void pfs_end_file_wait_v1(PSI_file_locke { PFS_INTERNAL_INC(pfs_internal_end_file_wait_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_FILE return; #else PSI_file_locker_state *state= reinterpret_cast (locker); @@ -4007,7 +3986,7 @@ void pfs_start_stage_v1(PSI_stage_key ke { PFS_INTERNAL_INC(pfs_internal_start_stage_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STAGE return; #else ulonglong timer_value= 0; @@ -4106,7 +4085,7 @@ void pfs_end_stage_v1() { PFS_INTERNAL_INC(pfs_internal_end_stage_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STAGE return; #else ulonglong timer_value= 0; @@ -4172,7 +4151,7 @@ pfs_get_thread_statement_locker_v1(PSI_s { PFS_INTERNAL_INC(pfs_internal_get_thread_statement_locker_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return NULL; #else DBUG_ASSERT(state != NULL); @@ -4297,7 +4276,7 @@ pfs_refine_statement_v1(PSI_statement_lo { PFS_INTERNAL_INC(pfs_internal_refine_statement_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return NULL; #else PSI_statement_locker_state *state= reinterpret_cast (locker); @@ -4350,7 +4329,7 @@ void pfs_start_statement_v1(PSI_statemen { PFS_INTERNAL_INC(pfs_internal_start_statement_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else PSI_statement_locker_state *state= reinterpret_cast (locker); @@ -4389,7 +4368,7 @@ void pfs_set_statement_text_v1(PSI_state { PFS_INTERNAL_INC(pfs_internal_set_statement_text_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else PSI_statement_locker_state *state= reinterpret_cast (locker); @@ -4454,7 +4433,7 @@ void pfs_set_statement_lock_time_v1(PSI_ { PFS_INTERNAL_INC(pfs_internal_set_statement_lock_time_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else SET_STATEMENT_ATTR_BODY(locker, m_lock_time, count); @@ -4466,7 +4445,7 @@ void pfs_set_statement_rows_sent_v1(PSI_ { PFS_INTERNAL_INC(pfs_internal_set_statement_rows_sent_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else SET_STATEMENT_ATTR_BODY(locker, m_rows_sent, count); @@ -4478,7 +4457,7 @@ void pfs_set_statement_rows_examined_v1( { PFS_INTERNAL_INC(pfs_internal_set_statement_rows_examined_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else SET_STATEMENT_ATTR_BODY(locker, m_rows_examined, count); @@ -4490,7 +4469,7 @@ void pfs_inc_statement_created_tmp_disk_ { PFS_INTERNAL_INC(pfs_internal_inc_statement_created_tmp_disk_tables_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_created_tmp_disk_tables, count); @@ -4502,7 +4481,7 @@ void pfs_inc_statement_created_tmp_table { PFS_INTERNAL_INC(pfs_internal_inc_statement_created_tmp_tables_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_created_tmp_tables, count); @@ -4514,7 +4493,7 @@ void pfs_inc_statement_select_full_join_ { PFS_INTERNAL_INC(pfs_internal_inc_statement_select_full_join_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_select_full_join, count); @@ -4526,7 +4505,7 @@ void pfs_inc_statement_select_full_range { PFS_INTERNAL_INC(pfs_internal_inc_statement_select_full_range_join_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_select_full_range_join, count); @@ -4538,7 +4517,7 @@ void pfs_inc_statement_select_range_v1(P { PFS_INTERNAL_INC(pfs_internal_inc_statement_select_range_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_select_range, count); @@ -4550,7 +4529,7 @@ void pfs_inc_statement_select_range_chec { PFS_INTERNAL_INC(pfs_internal_inc_statement_select_range_check_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_select_range_check, count); @@ -4562,7 +4541,7 @@ void pfs_inc_statement_select_scan_v1(PS { PFS_INTERNAL_INC(pfs_internal_inc_statement_select_scan_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_select_scan, count); @@ -4574,7 +4553,7 @@ void pfs_inc_statement_sort_merge_passes { PFS_INTERNAL_INC(pfs_internal_inc_statement_sort_merge_passes_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_sort_merge_passes, count); @@ -4586,7 +4565,7 @@ void pfs_inc_statement_sort_range_v1(PSI { PFS_INTERNAL_INC(pfs_internal_inc_statement_sort_range_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_sort_range, count); @@ -4598,7 +4577,7 @@ void pfs_inc_statement_sort_rows_v1(PSI_ { PFS_INTERNAL_INC(pfs_internal_inc_statement_sort_rows_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_sort_rows, count); @@ -4610,7 +4589,7 @@ void pfs_inc_statement_sort_scan_v1(PSI_ { PFS_INTERNAL_INC(pfs_internal_inc_statement_sort_scan_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else INC_STATEMENT_ATTR_BODY(locker, m_sort_scan, count); @@ -4621,7 +4600,7 @@ void pfs_set_statement_no_index_used_v1( { PFS_INTERNAL_INC(pfs_internal_set_statement_no_index_used_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else SET_STATEMENT_ATTR_BODY(locker, m_no_index_used, 1); @@ -4632,7 +4611,7 @@ void pfs_set_statement_no_good_index_use { PFS_INTERNAL_INC(pfs_internal_set_statement_no_good_index_used_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else SET_STATEMENT_ATTR_BODY(locker, m_no_good_index_used, 1); @@ -4643,7 +4622,7 @@ void pfs_end_statement_v1(PSI_statement_ { PFS_INTERNAL_INC(pfs_internal_end_statement_v1); -#ifdef PFS_NOTHING +#ifdef PFS_NOTHING_STATEMENT return; #else PSI_statement_locker_state *state= reinterpret_cast (locker); === modified file 'storage/perfschema/pfs_instr.cc' --- a/storage/perfschema/pfs_instr.cc 2011-05-26 09:05:41 +0000 +++ b/storage/perfschema/pfs_instr.cc 2011-06-06 20:07:48 +0000 @@ -587,6 +587,7 @@ PFS_mutex* create_mutex(PFS_mutex_class { pfs->m_identity= identity; pfs->m_class= klass; + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; pfs->m_wait_stat.reset(); pfs->m_lock_stat.reset(); pfs->m_owner= NULL; @@ -627,6 +628,7 @@ PFS_mutex* create_mutex(PFS_mutex_class { pfs->m_identity= identity; pfs->m_class= klass; + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; pfs->m_wait_stat.reset(); pfs->m_lock_stat.reset(); pfs->m_owner= NULL; @@ -690,6 +692,7 @@ PFS_rwlock* create_rwlock(PFS_rwlock_cla { pfs->m_identity= identity; pfs->m_class= klass; + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; pfs->m_wait_stat.reset(); pfs->m_lock.dirty_to_allocated(); pfs->m_read_lock_stat.reset(); @@ -733,6 +736,7 @@ PFS_rwlock* create_rwlock(PFS_rwlock_cla { pfs->m_identity= identity; pfs->m_class= klass; + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; pfs->m_wait_stat.reset(); pfs->m_lock.dirty_to_allocated(); pfs->m_read_lock_stat.reset(); @@ -797,6 +801,7 @@ PFS_cond* create_cond(PFS_cond_class *kl { pfs->m_identity= identity; pfs->m_class= klass; + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; pfs->m_cond_stat.m_signal_count= 0; pfs->m_cond_stat.m_broadcast_count= 0; pfs->m_wait_stat.reset(); @@ -1197,6 +1202,7 @@ search: if (pfs->m_lock.free_to_dirty()) { pfs->m_class= klass; + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; strncpy(pfs->m_filename, normalized_filename, normalized_length); pfs->m_filename[normalized_length]= '\0'; pfs->m_filename_length= normalized_length; @@ -1310,6 +1316,12 @@ PFS_table* create_table(PFS_table_share { pfs->m_identity= identity; pfs->m_share= share; + pfs->m_io_enabled= share->m_io_enabled && + flag_global_instrumentation && global_table_io_class.m_enabled; + pfs->m_io_timed= share->m_io_timed && global_table_io_class.m_timed; + pfs->m_lock_enabled= share->m_lock_enabled && + flag_global_instrumentation && global_table_lock_class.m_enabled; + pfs->m_lock_timed= share->m_lock_timed && global_table_lock_class.m_timed; share->inc_refcount(); pfs->m_table_stat.reset(); pfs->m_opening_thread= opening_thread; @@ -1628,4 +1640,130 @@ void aggregate_thread_statements(PFS_thr global_instr_class_statements_array); } +static void update_mutex_derived_flags() +{ + PFS_mutex *pfs= mutex_array; + PFS_mutex *pfs_last= mutex_array + mutex_max; + PFS_mutex_class *klass; + + for ( ; pfs < pfs_last; pfs++) + { + klass= sanitize_mutex_class(pfs->m_class); + if (likely(klass != NULL)) + { + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; + pfs->m_timed= klass->m_timed; + } + else + { + pfs->m_enabled= false; + pfs->m_timed= false; + } + } +} + +static void update_rwlock_derived_flags() +{ + PFS_rwlock *pfs= rwlock_array; + PFS_rwlock *pfs_last= rwlock_array + rwlock_max; + PFS_rwlock_class *klass; + + for ( ; pfs < pfs_last; pfs++) + { + klass= sanitize_rwlock_class(pfs->m_class); + if (likely(klass != NULL)) + { + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; + pfs->m_timed= klass->m_timed; + } + else + { + pfs->m_enabled= false; + pfs->m_timed= false; + } + } +} + +static void update_cond_derived_flags() +{ + PFS_cond *pfs= cond_array; + PFS_cond *pfs_last= cond_array + cond_max; + PFS_cond_class *klass; + + for ( ; pfs < pfs_last; pfs++) + { + klass= sanitize_cond_class(pfs->m_class); + if (likely(klass != NULL)) + { + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; + pfs->m_timed= klass->m_timed; + } + else + { + pfs->m_enabled= false; + pfs->m_timed= false; + } + } +} + +static void update_file_derived_flags() +{ + PFS_file *pfs= file_array; + PFS_file *pfs_last= file_array + file_max; + PFS_file_class *klass; + + for ( ; pfs < pfs_last; pfs++) + { + klass= sanitize_file_class(pfs->m_class); + if (likely(klass != NULL)) + { + pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; + pfs->m_timed= klass->m_timed; + } + else + { + pfs->m_enabled= false; + pfs->m_timed= false; + } + } +} + +static void update_table_derived_flags() +{ + PFS_table *pfs= table_array; + PFS_table *pfs_last= table_array + table_max; + PFS_table_share *share; + + for ( ; pfs < pfs_last; pfs++) + { + share= sanitize_table_share(pfs->m_share); + if (likely(share != NULL)) + { + pfs->m_io_enabled= share->m_io_enabled && + flag_global_instrumentation && global_table_io_class.m_enabled; + pfs->m_io_timed= share->m_io_timed && global_table_io_class.m_timed; + pfs->m_lock_enabled= share->m_lock_enabled && + flag_global_instrumentation && global_table_lock_class.m_enabled; + pfs->m_lock_timed= share->m_lock_timed && global_table_lock_class.m_timed; + } + else + { + pfs->m_io_enabled= false; + pfs->m_io_timed= false; + pfs->m_lock_enabled= false; + pfs->m_lock_timed= false; + } + } +} + +void update_instruments_derived_flags() +{ + update_mutex_derived_flags(); + update_rwlock_derived_flags(); + update_cond_derived_flags(); + update_file_derived_flags(); + update_table_derived_flags(); + /* nothing for stages and statements (no instances) */ +} + /** @} */ === modified file 'storage/perfschema/pfs_instr.h' --- a/storage/perfschema/pfs_instr.h 2011-04-04 14:34:42 +0000 +++ b/storage/perfschema/pfs_instr.h 2011-06-06 20:07:48 +0000 @@ -50,6 +50,10 @@ struct PFS_instr { /** Internal lock. */ pfs_lock m_lock; + /** Enabled flag. */ + bool m_enabled; + /** Timed flag. */ + bool m_timed; /** Instrument wait statistics. */ PFS_single_stat m_wait_stat; }; @@ -138,6 +142,15 @@ struct PFS_file : public PFS_instr /** Instrumented table implementation. @see PSI_table. */ struct PFS_table { + /** True if table io instrumentation is enabled. */ + bool m_io_enabled; + /** True if table lock instrumentation is enabled. */ + bool m_lock_enabled; + /** True if table io instrumentation is timed. */ + bool m_io_timed; + /** True if table lock instrumentation is timed. */ + bool m_lock_timed; + public: /** Aggregate this table handle statistics to the parents. @@ -485,6 +498,9 @@ void aggregate_thread_waits(PFS_thread * void aggregate_thread_stages(PFS_thread *thread); void aggregate_thread_statements(PFS_thread *thread); +/** Update derived flags for all instruments. */ +void update_instruments_derived_flags(); + /** @} */ #endif === modified file 'storage/perfschema/table_setup_consumers.cc' --- a/storage/perfschema/table_setup_consumers.cc 2011-02-14 14:23:55 +0000 +++ b/storage/perfschema/table_setup_consumers.cc 2011-06-06 20:07:48 +0000 @@ -218,6 +218,8 @@ int table_setup_consumers::update_row_va } } + update_instruments_derived_flags(); + return 0; } === modified file 'storage/perfschema/table_setup_instruments.cc' --- a/storage/perfschema/table_setup_instruments.cc 2011-05-13 13:44:31 +0000 +++ b/storage/perfschema/table_setup_instruments.cc 2011-06-06 20:07:48 +0000 @@ -21,6 +21,7 @@ #include "my_global.h" #include "my_pthread.h" #include "pfs_instr_class.h" +#include "pfs_instr.h" #include "pfs_column_types.h" #include "pfs_column_values.h" #include "table_setup_instruments.h" @@ -245,6 +246,8 @@ int table_setup_instruments::update_row_ } } + update_instruments_derived_flags(); + return 0; } === modified file 'storage/perfschema/unittest/pfs-t.cc' --- a/storage/perfschema/unittest/pfs-t.cc 2011-03-17 17:39:31 +0000 +++ b/storage/perfschema/unittest/pfs-t.cc 2011-06-06 20:07:48 +0000 @@ -1003,6 +1003,7 @@ void test_locker_disabled() rwlock_class_A->m_enabled= true; cond_class_A->m_enabled= true; file_class_A->m_enabled= true; + update_instruments_derived_flags(); mutex_locker= psi->get_thread_mutex_locker(&mutex_state, mutex_A1, PSI_MUTEX_LOCK); ok(mutex_locker == NULL, "no locker (global disabled)"); @@ -1017,7 +1018,7 @@ void test_locker_disabled() file_locker= psi->get_thread_file_descriptor_locker(&file_state, (File) 12, PSI_FILE_READ); ok(file_locker == NULL, "no locker (global disabled)"); - /* Pretent the mode is global, counted only */ + /* Pretend the mode is global, counted only */ /* ---------------------------------------- */ setup_thread(thread_1, true); @@ -1031,6 +1032,7 @@ void test_locker_disabled() cond_class_A->m_timed= false; file_class_A->m_enabled= true; file_class_A->m_timed= false; + update_instruments_derived_flags(); mutex_locker= psi->get_thread_mutex_locker(&mutex_state, mutex_A1, PSI_MUTEX_LOCK); ok(mutex_locker == NULL, "no locker (global counted)"); @@ -1063,6 +1065,7 @@ void test_locker_disabled() rwlock_class_A->m_enabled= false; cond_class_A->m_enabled= false; file_class_A->m_enabled= false; + update_instruments_derived_flags(); mutex_locker= psi->get_thread_mutex_locker(&mutex_state, mutex_A1, PSI_MUTEX_LOCK); ok(mutex_locker == NULL, "no locker"); @@ -1092,6 +1095,7 @@ void test_locker_disabled() cond_class_A->m_timed= true; file_class_A->m_enabled= true; file_class_A->m_timed= true; + update_instruments_derived_flags(); mutex_locker= psi->get_thread_mutex_locker(&mutex_state, mutex_A1, PSI_MUTEX_LOCK); ok(mutex_locker != NULL, "locker"); @@ -1127,6 +1131,7 @@ void test_locker_disabled() rwlock_class_A->m_enabled= true; cond_class_A->m_enabled= true; file_class_A->m_enabled= true; + update_instruments_derived_flags(); mutex_locker= psi->get_thread_mutex_locker(&mutex_state, mutex_A1, PSI_MUTEX_LOCK); ok(mutex_locker == NULL, "no locker"); === modified file 'storage/perfschema/unittest/pfs_instr_class-t.cc' --- a/storage/perfschema/unittest/pfs_instr_class-t.cc 2011-03-08 17:24:34 +0000 +++ b/storage/perfschema/unittest/pfs_instr_class-t.cc 2011-06-06 20:07:48 +0000 @@ -567,6 +567,7 @@ void test_instruments_reset() void do_all_tests() { PFS_atomic::init(); + pfs_initialized= true; test_no_registration(); test_mutex_registration(); @@ -578,6 +579,7 @@ void do_all_tests() test_instruments_reset(); PFS_atomic::cleanup(); + pfs_initialized= false; } int main(int, char **) No bundle (reason: useless for push emails).