From: phk Date: Tue, 19 Feb 2008 12:05:41 +0000 (+0000) Subject: Make logging of mutex operations or just contests controlled under diag_bitmap X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bfb7fd234ee393f8a4825d8bb442f88346fbde4;p=varnish Make logging of mutex operations or just contests controlled under diag_bitmap git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2518 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- diff --git a/varnish-cache/bin/varnishd/cache.h b/varnish-cache/bin/varnishd/cache.h index 651dc188..5d1396ae 100644 --- a/varnish-cache/bin/varnishd/cache.h +++ b/varnish-cache/bin/varnishd/cache.h @@ -592,24 +592,19 @@ char *WS_Snapshot(struct ws *ws); /* rfc2616.c */ int RFC2616_cache_policy(const struct sess *sp, const struct http *hp); -#if 1 -#define MTX pthread_mutex_t -#define MTX_INIT(foo) AZ(pthread_mutex_init(foo, NULL)) -#define MTX_DESTROY(foo) AZ(pthread_mutex_destroy(foo)) -#define LOCK(foo) AZ(pthread_mutex_lock(foo)) -#define UNLOCK(foo) AZ(pthread_mutex_unlock(foo)) -#else #define MTX pthread_mutex_t #define MTX_INIT(foo) AZ(pthread_mutex_init(foo, NULL)) #define MTX_DESTROY(foo) AZ(pthread_mutex_destroy(foo)) #define LOCK(foo) \ do { \ - if (pthread_mutex_trylock(foo)) { \ + if (!(params->diag_bitmap & 0x18)) { \ + AZ(pthread_mutex_lock(foo)); \ + } else if (pthread_mutex_trylock(foo)) { \ VSL(SLT_Debug, 0, \ "MTX_CONTEST(%s,%s,%d," #foo ")", \ __func__, __FILE__, __LINE__); \ AZ(pthread_mutex_lock(foo)); \ - } else if (1) { \ + } else if (params->diag_bitmap & 0x8) { \ VSL(SLT_Debug, 0, \ "MTX_LOCK(%s,%s,%d," #foo ")", \ __func__, __FILE__, __LINE__); \ @@ -618,12 +613,11 @@ do { \ #define UNLOCK(foo) \ do { \ AZ(pthread_mutex_unlock(foo)); \ - if (1) \ + if (params->diag_bitmap & 0x8) \ VSL(SLT_Debug, 0, \ "MTX_UNLOCK(%s,%s,%d," #foo ")", \ __func__, __FILE__, __LINE__); \ } while (0); -#endif #if defined(HAVE_PTHREAD_MUTEX_ISOWNED_NP) #define ALOCKED(mutex) AN(pthread_mutex_isowned_np((mutex))) diff --git a/varnish-cache/bin/varnishd/mgt_param.c b/varnish-cache/bin/varnishd/mgt_param.c index b89d7379..4cdca97c 100644 --- a/varnish-cache/bin/varnishd/mgt_param.c +++ b/varnish-cache/bin/varnishd/mgt_param.c @@ -641,6 +641,8 @@ static const struct parspec parspec[] = { " 0x00000001 - CNT_Session states.\n" " 0x00000002 - workspace debugging.\n" " 0x00000004 - kqueue debugging.\n" + " 0x00000008 - mutex logging.\n" + " 0x00000010 - mutex contests.\n" "Use 0x notation and do the bitor in your head :-)\n", 0, "0", "bitmap" },