Mailing List Archive

r2559 - trunk/varnish-cache/bin/varnishd
Author: phk
Date: 2008-03-07 12:13:11 +0100 (Fri, 07 Mar 2008)
New Revision: 2559

Modified:
trunk/varnish-cache/bin/varnishd/cache_backend.c
trunk/varnish-cache/bin/varnishd/cache_hash.c
trunk/varnish-cache/bin/varnishd/cache_session.c
trunk/varnish-cache/bin/varnishd/heritage.h
trunk/varnish-cache/bin/varnishd/mgt_param.c
Log:
Split the http_workspace into sess_workspace and obj_workspace, so they
can be tuned separately.


Modified: trunk/varnish-cache/bin/varnishd/cache_backend.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_backend.c 2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/cache_backend.c 2008-03-07 11:13:11 UTC (rev 2559)
@@ -230,7 +230,7 @@
if (bereq != NULL) {
CHECK_OBJ(bereq, BEREQ_MAGIC);
} else {
- len = params->mem_workspace;
+ len = params->sess_workspace;
bereq = calloc(sizeof *bereq + len, 1);
if (bereq == NULL)
return (NULL);

Modified: trunk/varnish-cache/bin/varnishd/cache_hash.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_hash.c 2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/cache_hash.c 2008-03-07 11:13:11 UTC (rev 2559)
@@ -88,7 +88,7 @@
} else
CHECK_OBJ_NOTNULL(w->nobjhead, OBJHEAD_MAGIC);
if (w->nobj == NULL) {
- st = STV_alloc(sp, params->mem_workspace);
+ st = STV_alloc(sp, params->obj_workspace);
XXXAN(st);
assert(st->space > sizeof *w->nobj);
w->nobj = (void *)st->ptr; /* XXX: align ? */

Modified: trunk/varnish-cache/bin/varnishd/cache_session.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_session.c 2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/cache_session.c 2008-03-07 11:13:11 UTC (rev 2559)
@@ -289,7 +289,7 @@
* need to cache it locally, to make sure we get a
* consistent view of it.
*/
- u = params->mem_workspace;
+ u = params->sess_workspace;
sm = malloc(sizeof *sm + u);
if (sm == NULL)
return (NULL);
@@ -346,7 +346,7 @@
sp->addr, sp->port, sp->t_end - b->first,
b->sess, b->req, b->pipe, b->pass,
b->fetch, b->hdrbytes, b->bodybytes);
- if (sm->workspace != params->mem_workspace) {
+ if (sm->workspace != params->sess_workspace) {
VSL_stats->n_sess_mem--;
free(sm);
} else {

Modified: trunk/varnish-cache/bin/varnishd/heritage.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/heritage.h 2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/heritage.h 2008-03-07 11:13:11 UTC (rev 2559)
@@ -85,7 +85,8 @@
unsigned overflow_max;

/* Memory allocation hints */
- unsigned mem_workspace;
+ unsigned sess_workspace;
+ unsigned obj_workspace;

/* Acceptor hints */
unsigned sess_timeout;

Modified: trunk/varnish-cache/bin/varnishd/mgt_param.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/mgt_param.c 2008-03-07 11:04:51 UTC (rev 2558)
+++ trunk/varnish-cache/bin/varnishd/mgt_param.c 2008-03-07 11:13:11 UTC (rev 2559)
@@ -495,13 +495,21 @@
"number of worker threads. ",
EXPERIMENTAL,
"3", "requests per request" },
- { "http_workspace", tweak_uint, &master.mem_workspace, 1024, UINT_MAX,
- "Bytes of HTTP protocol workspace allocated. "
+ { "sess_workspace", tweak_uint, &master.sess_workspace, 1024, UINT_MAX,
+ "Bytes of HTTP protocol workspace allocated for sessions. "
"This space must be big enough for the entire HTTP protocol "
"header and any edits done to it in the VCL code.\n"
"Minimum is 1024 bytes.",
DELAYED_EFFECT,
"8192", "bytes" },
+ { "obj_workspace", tweak_uint, &master.obj_workspace, 1024, UINT_MAX,
+ "Bytes of HTTP protocol workspace allocated for objects. "
+ "This space must be big enough for the entire HTTP protocol "
+ "header and any edits done to it in the VCL code while it "
+ "is cached.\n"
+ "Minimum is 1024 bytes.",
+ DELAYED_EFFECT,
+ "8192", "bytes" },
{ "sess_timeout", tweak_timeout, &master.sess_timeout, 0, 0,
"Idle timeout for persistent sessions. "
"If a HTTP request has not been received in this many "