aboutsummaryrefslogtreecommitdiff
path: root/src/include/ChangeLog
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2004-12-06 22:00:26 +0000
committerKen Raeburn <raeburn@mit.edu>2004-12-06 22:00:26 +0000
commit16f278f40c94de0c8e7be80ac665e8126d7ba793 (patch)
tree8c7820e7240e1abeffacf924d24a74351886a772 /src/include/ChangeLog
parent120aa7c023689dddc0187d0f003a4df665c04cd7 (diff)
downloadkrb5-16f278f40c94de0c8e7be80ac665e8126d7ba793.zip
krb5-16f278f40c94de0c8e7be80ac665e8126d7ba793.tar.gz
krb5-16f278f40c94de0c8e7be80ac665e8126d7ba793.tar.bz2
hooks for recording statistics on locking behavior
Finish the hooks (left disabled by default) for logging somewhere the recorded timing behavior relating to the use of locks in the krb5 code. Currently, "reporting" means writing to /dev/tty or stderr, and the data is the number of times a mutex is locked, file and line where it was created, min/avg/max/stddev wait times to acquire the lock and hold times, and stats are only written out for locks that were locked a certain minimum number of times and with a minimum average wait time. The criteria are all controlled in threads.c, and k5-thread.h just has the hooks for gathering data. So turning on/off the data gathering requires a full rebuild, but tweaking the reporting is mostly just a relinking pass. (May also require adding a dependence on the math library to the support library; for a static build that may impact a lot of makefiles.) * include/k5-thread.h [DEBUG_THREADS_STATS]: Include string.h and inttypes.h. (get_current_time) [DEBUG_THREADS_STATS]: Define as inline. (k5_mutex_init_stats) [DEBUG_THREADS_STATS]: Save away current time as creation time. (k5_mutex_stats_tmp): New typedef, k5_debug_time_t if recording stats, dummy int otherwise. (k5_mutex_stats_start): New macro, get current time if recording, zero otherwise. (krb5int_mutex_lock_update_stats, krb5int_mutex_unlock_update_stats, krb5int_mutex_report_stats) [DEBUG_THREADS_STATS]: Declare. (krb5int_mutex_report_stats) [! DEBUG_THREADS_STATS]: New macro, does nothing. (k5_mutex_lock_update_stats, k5_mutex_unlock_update_stats): New macros, map to krb5int_ functions if recording, dummy statements otherwise. (k5_mutex_destroy): Call krb5int_mutex_report_stats. (k5_mutex_lock, k5_mutex_lock_1): Call k5_mutex_stats_start and k5_mutex_lock_update_stats. (k5_mutex_unlock_1): Call k5_mutex_unlock_update_stats. * util/support/threads.c [DEBUG_THREADS_STATS]: Include stdio.h. (stats_logfile) [DEBUG_THREADS_STATS]: New variable. (krb5int_thread_support_init) [DEBUG_THREADS_STATS]: Set it to point to a file on /dev/tty or stderr. (krb5int_thread_support_fini) [DEBUG_THREADS_STATS]: Flush it. (k5_mutex_lock_update_stats, krb5int_mutex_unlock_update_stats, get_stddev, krb5int_mutex_report_stats) [DEBUG_THREADS_STATS]: New functions. * util/support/libkrb5support.exports: Add krb5int_mutex_*_stats. ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16913 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include/ChangeLog')
-rw-r--r--src/include/ChangeLog24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog
index 4646329..b4d1f4b 100644
--- a/src/include/ChangeLog
+++ b/src/include/ChangeLog
@@ -1,3 +1,27 @@
+2004-12-06 Ken Raeburn <raeburn@mit.edu>
+
+ * k5-thread.h [DEBUG_THREADS_STATS]: Include string.h and
+ inttypes.h.
+ (get_current_time) [DEBUG_THREADS_STATS]: Define as inline.
+ (k5_mutex_init_stats) [DEBUG_THREADS_STATS]: Save away current
+ time as creation time.
+ (k5_mutex_stats_tmp): New typedef, k5_debug_time_t if recording
+ stats, dummy int otherwise.
+ (k5_mutex_stats_start): New macro, get current time if recording,
+ zero otherwise.
+ (krb5int_mutex_lock_update_stats,
+ krb5int_mutex_unlock_update_stats, krb5int_mutex_report_stats)
+ [DEBUG_THREADS_STATS]: Declare.
+ (krb5int_mutex_report_stats) [! DEBUG_THREADS_STATS]: New macro,
+ does nothing.
+ (k5_mutex_lock_update_stats, k5_mutex_unlock_update_stats): New
+ macros, map to krb5int_ functions if recording, dummy statements
+ otherwise.
+ (k5_mutex_destroy): Call krb5int_mutex_report_stats.
+ (k5_mutex_lock, k5_mutex_lock_1): Call k5_mutex_stats_start and
+ k5_mutex_lock_update_stats.
+ (k5_mutex_unlock_1): Call k5_mutex_unlock_update_stats.
+
2004-11-19 Ken Raeburn <raeburn@mit.edu>
* win-mac.h (HAVE_GETADDRINFO, HAVE_GETNAMEINFO): Define.