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

phk at projects.linpro.no phk at projects.linpro.no
Fri Sep 15 18:18:27 CEST 2006


Author: phk
Date: 2006-09-15 18:18:27 +0200 (Fri, 15 Sep 2006)
New Revision: 995

Modified:
   trunk/varnish-cache/bin/varnishd/cache_center.c
   trunk/varnish-cache/bin/varnishd/mgt_param.c
   trunk/varnish-cache/include/stat_field.h
Log:
Eliminate the session_grace thing, the inter-request interval is to
large in general (think RTT) for this to make sense, it costs a syscall
and if a delay is used, at least two context switches.

We still capture sessions that do pipe-line avoiding the context switch
in that case, without incurring the syscall overhead.


Modified: trunk/varnish-cache/bin/varnishd/cache_center.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_center.c	2006-09-15 16:10:15 UTC (rev 994)
+++ trunk/varnish-cache/bin/varnishd/cache_center.c	2006-09-15 16:18:27 UTC (rev 995)
@@ -33,7 +33,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <poll.h>
 
 #include "shmlog.h"
 #include "heritage.h"
@@ -124,8 +123,6 @@
 cnt_done(struct sess *sp)
 {
 	double dh, dp, da;
-	struct pollfd fds[1];
-	int i;
 
 	AZ(sp->obj);
 	AZ(sp->vbc);
@@ -171,26 +168,7 @@
 		sp->step = STP_AGAIN;
 		return (0);
 	}
-	if (params->session_grace == 0) {
-		VSL_stats->sess_herd++;
-		sp->wrk->idle = sp->t_open.tv_sec;
-		vca_return_session(sp);
-		return (1);
-	}
-	fds[0].fd = sp->fd;
-	fds[0].events = POLLIN;
-	fds[0].revents = 0;
-	i = poll(fds, 1, params->session_grace);
-	if (i == 1 && (fds[0].revents & POLLHUP)) {
-		VSL_stats->sess_EOF++;
-		vca_close_session(sp, "EOF");
-	} else if (i == 1 && (fds[0].revents & POLLIN)) {
-		VSL_stats->sess_ready++;
-		sp->step = STP_AGAIN;
-		return (0);
-	} else {
-		VSL_stats->sess_herd++;
-	}
+	VSL_stats->sess_herd++;
 	sp->wrk->idle = sp->t_open.tv_sec;
 	vca_return_session(sp);
 	return (1);

Modified: trunk/varnish-cache/bin/varnishd/mgt_param.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/mgt_param.c	2006-09-15 16:10:15 UTC (rev 994)
+++ trunk/varnish-cache/bin/varnishd/mgt_param.c	2006-09-15 16:18:27 UTC (rev 995)
@@ -169,23 +169,6 @@
 /*--------------------------------------------------------------------*/
 
 static void
-tweak_session_grace(struct cli *cli, struct parspec *par, const char *arg)
-{
-	unsigned u;
-
-	(void)par;
-	if (arg != NULL) {
-		u = strtoul(arg, NULL, 0);
-		params->session_grace = u;
-	}
-	if (cli == NULL)
-		return;
-	cli_out(cli, "%u [milliseconds]\n", params->session_grace);
-}
-
-/*--------------------------------------------------------------------*/
-
-static void
 tweak_auto_restart(struct cli *cli, struct parspec *par, const char *arg)
 {
 	unsigned u;
@@ -318,11 +301,6 @@
 		"The minimum size of objects transmitted with sendfile.\n"
 		"Default is 8192 bytes.", "8192" },
 #endif /* HAVE_SENDFILE */
-	{ "session_grace", tweak_session_grace,
-		"How long a workerthread waits for a new request to arrive "
-		"before sending the session to the herder.\n"
-	        "Units are milliseconds, zero disables.\n"
-		"Default is disabled.", "0" },
 	{ NULL, NULL, NULL }
 };
 

Modified: trunk/varnish-cache/include/stat_field.h
===================================================================
--- trunk/varnish-cache/include/stat_field.h	2006-09-15 16:10:15 UTC (rev 994)
+++ trunk/varnish-cache/include/stat_field.h	2006-09-15 16:18:27 UTC (rev 995)
@@ -47,6 +47,4 @@
 MAC_STAT(sess_closed,		uint64_t, "u", "Session Closed")
 MAC_STAT(sess_pipeline,		uint64_t, "u", "Session Pipeline")
 MAC_STAT(sess_readahead,	uint64_t, "u", "Session Read Ahead")
-MAC_STAT(sess_EOF,		uint64_t, "u", "Session EOF")
-MAC_STAT(sess_ready,		uint64_t, "u", "Session Ready")
 MAC_STAT(sess_herd,		uint64_t, "u", "Session herd")




More information about the varnish-commit mailing list