r523 - in trunk/varnish-cache: bin/varnishd include

phk at projects.linpro.no phk at projects.linpro.no
Thu Jul 20 15:29:13 CEST 2006


Author: phk
Date: 2006-07-20 15:29:13 +0200 (Thu, 20 Jul 2006)
New Revision: 523

Modified:
   trunk/varnish-cache/bin/varnishd/cache_session.c
   trunk/varnish-cache/include/stat_field.h
Log:
Keep track of active source addresses


Modified: trunk/varnish-cache/bin/varnishd/cache_session.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_session.c	2006-07-20 12:15:49 UTC (rev 522)
+++ trunk/varnish-cache/bin/varnishd/cache_session.c	2006-07-20 13:29:13 UTC (rev 523)
@@ -73,11 +73,18 @@
 	c3 = NULL;
 	TAILQ_FOREACH_SAFE(c, ch, list, c2) {
 		if (c->sum == u && !strcmp(c->addr, sp->addr)) {
+			if (c->nsess == 0)
+				VSL_stats->n_srcaddr_act++;
 			c->nsess++;
 			c->ttl = now + CLIENT_TTL;
 			sp->srcaddr = c;
 			TAILQ_REMOVE(ch, c, list);
 			TAILQ_INSERT_TAIL(ch, c, list);
+			if (0 && c3 != NULL) {
+				TAILQ_REMOVE(ch, c3, list);
+				VSL_stats->n_srcaddr--;
+				free(c3);
+			}
 			AZ(pthread_mutex_unlock(&ses_mtx));
 			return;
 		}
@@ -93,6 +100,7 @@
 	}
 	if (c3 == NULL) {
 		c3 = malloc(sizeof *c3);
+		assert(c3 != NULL);
 		if (c3 != NULL)
 			VSL_stats->n_srcaddr++;
 	} else
@@ -105,6 +113,7 @@
 		c3->ttl = now + CLIENT_TTL;
 		c3->nsess = 1;
 		c3->sah = ch;
+		VSL_stats->n_srcaddr_act++;
 		TAILQ_INSERT_TAIL(ch, c3, list);
 	}
 	sp->srcaddr = c3;
@@ -135,14 +144,17 @@
 SES_RelSrcAddr(struct sess *sp)
 {
 
-	if (sp->srcaddr == NULL) {
+	if (0 && sp->srcaddr == NULL) {
 		/* XXX who comes this way ? */
 		VSL(SLT_Debug, sp->fd, "had no srcaddr");
 		return;
 	}
 	assert(sp->srcaddr != NULL);
 	AZ(pthread_mutex_lock(&ses_mtx));
+	assert(sp->srcaddr->nsess > 0);
 	sp->srcaddr->nsess--;
+	if (sp->srcaddr->nsess == 0)
+		VSL_stats->n_srcaddr_act--;
 	sp->srcaddr = NULL;
 	AZ(pthread_mutex_unlock(&ses_mtx));
 }

Modified: trunk/varnish-cache/include/stat_field.h
===================================================================
--- trunk/varnish-cache/include/stat_field.h	2006-07-20 12:15:49 UTC (rev 522)
+++ trunk/varnish-cache/include/stat_field.h	2006-07-20 13:29:13 UTC (rev 523)
@@ -11,6 +11,7 @@
 MAC_STAT(backend_recycle,	uint64_t, "u", "Backend connections recyles")
 
 MAC_STAT(n_srcaddr,		uint64_t, "u", "N struct srcaddr")
+MAC_STAT(n_srcaddr_act,		uint64_t, "u", "N active struct srcaddr")
 MAC_STAT(n_sess,		uint64_t, "u", "N struct sess")
 MAC_STAT(n_object,		uint64_t, "u", "N struct object")
 MAC_STAT(n_objecthead,		uint64_t, "u", "N struct objecthead")




More information about the varnish-commit mailing list