r2661 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Tue Jun 10 16:37:15 CEST 2008


Author: phk
Date: 2008-06-10 16:37:14 +0200 (Tue, 10 Jun 2008)
New Revision: 2661

Added:
   trunk/varnish-cache/bin/varnishd/acct_fields.h
Modified:
   trunk/varnish-cache/bin/varnishd/cache.h
   trunk/varnish-cache/bin/varnishd/cache_cli.c
   trunk/varnish-cache/bin/varnishd/cache_session.c
Log:
Refactor the fields of struct acct so we don't have to remember them three
different places in the code.



Added: trunk/varnish-cache/bin/varnishd/acct_fields.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/acct_fields.h	                        (rev 0)
+++ trunk/varnish-cache/bin/varnishd/acct_fields.h	2008-06-10 14:37:14 UTC (rev 2661)
@@ -0,0 +1,38 @@
+/*-
+ * Copyright (c) 2008 Verdens Gang AS
+ * Copyright (c) 2008 Linpro AS
+ * All rights reserved.
+ *
+ * Author: Poul-Henning Kamp <phk at phk.freebsd.dk>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id: steps.h 2415 2008-01-31 11:57:51Z des $
+ */
+
+ACCT(sess)
+ACCT(req)
+ACCT(pipe)
+ACCT(pass)
+ACCT(fetch)
+ACCT(hdrbytes)
+ACCT(bodybytes)

Modified: trunk/varnish-cache/bin/varnishd/cache.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache.h	2008-06-10 13:29:08 UTC (rev 2660)
+++ trunk/varnish-cache/bin/varnishd/cache.h	2008-06-10 14:37:14 UTC (rev 2661)
@@ -159,13 +159,9 @@
 
 struct acct {
 	double			first;
-	uint64_t		sess;
-	uint64_t		req;
-	uint64_t		pipe;
-	uint64_t		pass;
-	uint64_t		fetch;
-	uint64_t		hdrbytes;
-	uint64_t		bodybytes;
+#define ACCT(foo)	uint64_t	foo;
+#include "acct_fields.h"
+#undef ACCT
 };
 
 /*--------------------------------------------------------------------*/

Modified: trunk/varnish-cache/bin/varnishd/cache_cli.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_cli.c	2008-06-10 13:29:08 UTC (rev 2660)
+++ trunk/varnish-cache/bin/varnishd/cache_cli.c	2008-06-10 14:37:14 UTC (rev 2661)
@@ -193,6 +193,7 @@
         SZOF(struct objhead);
         SZOF(struct sess);
         SZOF(struct vbe_conn);
+        SZOF(struct varnish_stats);
 }
 
 /*--------------------------------------------------------------------*/

Modified: trunk/varnish-cache/bin/varnishd/cache_session.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_session.c	2008-06-10 13:29:08 UTC (rev 2660)
+++ trunk/varnish-cache/bin/varnishd/cache_session.c	2008-06-10 14:37:14 UTC (rev 2661)
@@ -213,13 +213,9 @@
 ses_sum_acct(struct acct *sum, const struct acct *inc)
 {
 
-	sum->sess += inc->sess;
-	sum->req += inc->req;
-	sum->pipe += inc->pipe;
-	sum->pass += inc->pass;
-	sum->fetch += inc->fetch;
-	sum->hdrbytes += inc->hdrbytes;
-	sum->bodybytes += inc->bodybytes;
+#define ACCT(foo)	sum->foo += inc->foo;
+#include "acct_fields.h"
+#undef ACCT
 }
 
 void
@@ -243,13 +239,9 @@
 		    b.fetch, b.hdrbytes, b.bodybytes);
 	}
 	LOCK(&stat_mtx);
-	VSL_stats->s_sess += a->sess;
-	VSL_stats->s_req += a->req;
-	VSL_stats->s_pipe += a->pipe;
-	VSL_stats->s_pass += a->pass;
-	VSL_stats->s_fetch += a->fetch;
-	VSL_stats->s_hdrbytes += a->hdrbytes;
-	VSL_stats->s_bodybytes += a->bodybytes;
+#define ACCT(foo)	VSL_stats->s_##foo += a->foo;
+#include "acct_fields.h"
+#undef ACCT
 	UNLOCK(&stat_mtx);
 	memset(a, 0, sizeof *a);
 }




More information about the varnish-commit mailing list