Mailing List Archive

r2661 - trunk/varnish-cache/bin/varnishd
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);
}