[master] 56a073e Don't schedule req's using sess' task structure, that doesn't scale to parallism.

Poul-Henning Kamp phk at FreeBSD.org
Tue Mar 17 20:27:47 CET 2015


commit 56a073e5b232b44664790e3069604ddb06557e47
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Mar 17 19:27:17 2015 +0000

    Don't schedule req's using sess' task structure, that doesn't
    scale to parallism.

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 2e41149..1e43663 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -556,6 +556,7 @@ struct req {
 
 	struct sess		*sp;
 	struct worker		*wrk;
+	struct pool_task	task;
 	enum req_step		req_step;
 	VTAILQ_ENTRY(req)	w_list;
 
diff --git a/bin/varnishd/cache/cache_session.c b/bin/varnishd/cache/cache_session.c
index 4a2e02f..896f1b1 100644
--- a/bin/varnishd/cache/cache_session.c
+++ b/bin/varnishd/cache/cache_session.c
@@ -161,10 +161,10 @@ SES_ScheduleReq(struct req *req)
 	CHECK_OBJ_NOTNULL(pp, SESSPOOL_MAGIC);
 	AN(pp->pool);
 
-	sp->task.func = ses_req_pool_task;
-	sp->task.priv = req;
+	req->task.func = ses_req_pool_task;
+	req->task.priv = req;
 
-	return (Pool_Task(pp->pool, &sp->task, POOL_QUEUE_FRONT));
+	return (Pool_Task(pp->pool, &req->task, POOL_QUEUE_FRONT));
 }
 
 /*--------------------------------------------------------------------



More information about the varnish-commit mailing list