From: Christopher Powers Date: August 19 2010 10:24pm Subject: bzr commit into mysql-5.5-bugfixing branch (chris.powers:3188) Bug#53874 List-Archive: http://lists.mysql.com/commits/116305 X-Bug: 53874 Message-Id: <20100819222413.C2B461DB01EA@xeno.mysql.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3128769306912657087==" --===============3128769306912657087== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/cpowers/work/dev/dev-55-bugfixing/mysql/ based on revid:bar@stripped 3188 Christopher Powers 2010-08-19 Bug#53874, "SETUP_INSTRUMENTS.TIMED='NO' should not change TIMER_WAIT in aggregations" end_*_wait() functions now honor TIMER_STATE_UNTIMED @ storage/perfschema/pfs.cc Don't aggregate stats if TIMER_STATE_UNTIMED modified: storage/perfschema/pfs.cc === modified file 'storage/perfschema/pfs.cc' --- a/storage/perfschema/pfs.cc 2010-08-12 09:51:58 +0000 +++ b/storage/perfschema/pfs.cc 2010-08-19 22:24:07 +0000 @@ -1625,7 +1625,7 @@ static void end_mutex_wait_v1(PSI_mutex_ if (flag_events_waits_history_long) insert_events_waits_history_long(wait); - if (rc == 0) + if (rc == 0 && wait->m_timer_state == TIMER_STATE_TIMED) { /* Thread safe: we are protected by the instrumented mutex */ PFS_single_stat_chain *stat; @@ -1635,9 +1635,8 @@ static void end_mutex_wait_v1(PSI_mutex_ ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; aggregate_single_stat_chain(&mutex->m_wait_stat, wait_time); - stat= find_per_thread_mutex_class_wait_stat(wait->m_thread, - mutex->m_class); - aggregate_single_stat_chain(stat, wait_time); + stat= find_per_thread_mutex_class_wait_stat(wait->m_thread, mutex->m_class); + aggregate_single_stat_chain(stat, wait_time); } wait->m_thread->m_wait_locker_count--; } @@ -1690,11 +1689,13 @@ static void end_rwlock_rdwait_v1(PSI_rwl rwlock->m_writer= NULL; rwlock->m_readers++; - ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; - aggregate_single_stat_chain(&rwlock->m_wait_stat, wait_time); - stat= find_per_thread_rwlock_class_wait_stat(wait->m_thread, - rwlock->m_class); - aggregate_single_stat_chain(stat, wait_time); + if (wait->m_timer_state == TIMER_STATE_TIMED) + { + ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; + aggregate_single_stat_chain(&rwlock->m_wait_stat, wait_time); + stat= find_per_thread_rwlock_class_wait_stat(wait->m_thread, rwlock->m_class); + aggregate_single_stat_chain(stat, wait_time); + } } wait->m_thread->m_wait_locker_count--; } @@ -1742,11 +1743,13 @@ static void end_rwlock_wrwait_v1(PSI_rwl rwlock->m_readers= 0; rwlock->m_last_read= 0; - ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; - aggregate_single_stat_chain(&rwlock->m_wait_stat, wait_time); - stat= find_per_thread_rwlock_class_wait_stat(wait->m_thread, - rwlock->m_class); - aggregate_single_stat_chain(stat, wait_time); + if (wait->m_timer_state == TIMER_STATE_TIMED) + { + ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; + aggregate_single_stat_chain(&rwlock->m_wait_stat, wait_time); + stat= find_per_thread_rwlock_class_wait_stat(wait->m_thread, rwlock->m_class); + aggregate_single_stat_chain(stat, wait_time); + } } wait->m_thread->m_wait_locker_count--; } @@ -1803,11 +1806,13 @@ static void end_cond_wait_v1(PSI_cond_lo PFS_single_stat_chain *stat; PFS_cond *cond= pfs_locker->m_target.m_cond; - ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; - aggregate_single_stat_chain(&cond->m_wait_stat, wait_time); - stat= find_per_thread_cond_class_wait_stat(wait->m_thread, - cond->m_class); - aggregate_single_stat_chain(stat, wait_time); + if (wait->m_timer_state == TIMER_STATE_TIMED) + { + ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; + aggregate_single_stat_chain(&cond->m_wait_stat, wait_time); + stat= find_per_thread_cond_class_wait_stat(wait->m_thread, cond->m_class); + aggregate_single_stat_chain(stat, wait_time); + } } wait->m_thread->m_wait_locker_count--; } @@ -1850,9 +1855,12 @@ static void end_table_wait_v1(PSI_table_ if (flag_events_waits_history_long) insert_events_waits_history_long(wait); - PFS_table *table= pfs_locker->m_target.m_table; - ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; - aggregate_single_stat_chain(&table->m_wait_stat, wait_time); + if (wait->m_timer_state == TIMER_STATE_TIMED) + { + PFS_table *table= pfs_locker->m_target.m_table; + ulonglong wait_time= wait->m_timer_end - wait->m_timer_start; + aggregate_single_stat_chain(&table->m_wait_stat, wait_time); + } /* There is currently no per table and per thread aggregation. --===============3128769306912657087== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/chris.powers@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: chris.powers@stripped # target_branch: file:///home/cpowers/work/dev/dev-55-bugfixing/mysql/ # testament_sha1: c3b28e5f56bb8adacf26b4ad2b38a4dbf5287990 # timestamp: 2010-08-19 17:24:13 -0500 # base_revision_id: bar@stripped # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWW932QsAAotfgFAQWff//38j 3oC////6UAWNtr27QN11W7rMB3bi4SSEmJihgTwTJJ6jym1BtQ9Q9Rpoeo09QeoJRACMiZE2hTTQ PSAAA0ADQ0BJEEJpBo9QPUAAABo0yABoAcZMmTEYmAEyYJkANGEYAhgEkQknmppkaKfqeo00zSg0 aYTQ0AA0Bo8W9gRkunt5g/7VFdFdXOUtVrp0wKCikhB6dHjEtSqUNa5U0ny5PeEkDiStqqwoswhe 28NDMyXp4LHGinFU1LmqaRzGQfreDZQj034odOCGTG4Yrm2Afb+7+qoop78NT4dD5mIjXQ8gHaGz ABxCcw2356qYVTp0jkVVw4QxStRbIcHBw60atFl5kyYPOe5pBUBAMmnUL7vX6EMv9qJb8KAc8onD HE/WvHzZberj05kS8kyU4Jaq5yOTVbQJmDlYZrHC5hFvlEmQ+2ARFmqmLCmIkpA0AmzBc2ScNzBX dUa3W7GdAlRYVvOW1ohWEWBQHVoxnJk33maNaHl/d1LpVzQPbrZBN0scm2IqSzPULcEKdpfxVirw pICUwI5BYCrGDpA4TGRecg7hYlJF1SYCmWT1NJvfB1GNMMJSSU2z0EGSgE4bGiNDf+i+1uG5IoPp O5QV20XnmXXjInUZR0ak2H8ErfMspLo5Kxq8clyV537DTHrUjro6RpcF6PUhpKW5s4GWNFMjDiJv UMUnHbqEZ2sXJlbgtsM2JlBuoSs1lRXqFVVAdsaNTNjXsuW/eJdXGgcqZNusjCgimLo1iivvS8xh i9iKXJcrzfO9YLKI5OmCk5SzkZhRS3VnNeZOmSyb5yCiEkXXffzhzaZBVd/ouELQrtqX83pYqEzN x8gwDP8UB3YEuTAHT7YwPtgO5nK/r1hoVSAbQuJUfVWQldSkiV9qgJPV/KCba7YpSSbYBxhLt7B9 YX7cjo1yQ3rcjEBpgwDgOjLuCcIgnQsdIOKkOXYJrvYPdSBNB0PUMF/6XKMnygfcSDj+Gmumjt9S utRNHYBBwBmQvVBGDwxZhzpWHEuwxYDJCPMgxRSMmTrPicIE8/Wj5fPDTV2gW3nvNw2T95vqErKO UBwFkQjT7vvQx5pA02fEToDfXD5CxSb0Y1FJigxvNj7yV2ancjF33gOkQm3nON+CMdxtNJyisqJh 31tIsx5UGgMA7YHPuIalt8OLXPyXb4aCDtI61m5OoLgslOaZQ3V05qULQK/0gOvgrJgjRHCIXSbT P2XVFtg8ulNmultaLxh2UWQqT4RBtxiHako2EOCvEY+hYPgDIJsV7FIMteSAFCX+sC0C2RaWbeZk 0Z9aY3HCiKQoGoDEIhl4LQO7h8EohUWJagaYkGIY0a/wLEUAwQagbuzrvWAUBS6hw5ANd2/czRAZ xjcBoPBkuFbIIBX0JHMHUwkWma9Vgq2QoDF/BgnUpGnZZ3qNJSwDBLJZlCJIHdwqTuMEnAcL2yDF CIsmWwzpWY3gumgHXPQBKJQXeHQA6Kl43Ua+pUw99CV2fUzA5nhfv1u7SecaNNLSnZaGjRa4cDp0 BBC2OCOYHMIMQp2cCY5cogUTa3U8CAK+J6SA1OEtDOHEjWlJJ5RE5dO3BtrZczATBuwJnO2jyBcB OowOsGD4bGHIU89ApOOeDwTIDPNvFoCkMCFFuIwRSqK24WOYQEgo2Az6TGbITBIA7F0PQLIeeKJT i6gfG5Se4VnDuly11p0+kmXYrAkx6A1IGBwHBQA6w0CozA25MoJphp0kMd4TuE3+LuSKcKEg3u+y Fg== --===============3128769306912657087==--