r5571 - trunk/varnish-cache/bin/varnishd
phk at varnish-cache.org
phk at varnish-cache.org
Sun Nov 21 11:13:41 CET 2010
Author: phk
Date: 2010-11-21 11:13:41 +0100 (Sun, 21 Nov 2010)
New Revision: 5571
Modified:
trunk/varnish-cache/bin/varnishd/cache.h
trunk/varnish-cache/bin/varnishd/cache_center.c
trunk/varnish-cache/bin/varnishd/cache_hash.c
trunk/varnish-cache/bin/varnishd/stevedore.c
Log:
Eliminate sp->objhead as a general variable, it was always tracking
sp->objcore and we can find the objhead from the objcore.
Rename it to match its remaining functionality: recording which
busy objhead we are sleeping on.
Modified: trunk/varnish-cache/bin/varnishd/cache.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache.h 2010-11-21 10:07:57 UTC (rev 5570)
+++ trunk/varnish-cache/bin/varnishd/cache.h 2010-11-21 10:13:41 UTC (rev 5571)
@@ -474,9 +474,11 @@
struct vbc *vbc;
struct object *obj;
struct objcore *objcore;
- struct objhead *objhead;
struct VCL_conf *vcl;
+ /* The busy objhead we sleep on */
+ struct objhead *hash_objhead;
+
/* Various internal stuff */
struct sessmem *mem;
Modified: trunk/varnish-cache/bin/varnishd/cache_center.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_center.c 2010-11-21 10:07:57 UTC (rev 5570)
+++ trunk/varnish-cache/bin/varnishd/cache_center.c 2010-11-21 10:13:41 UTC (rev 5571)
@@ -469,10 +469,8 @@
if (i) {
if (sp->objcore != NULL) {
- CHECK_OBJ_NOTNULL(sp->objhead, OBJHEAD_MAGIC);
CHECK_OBJ_NOTNULL(sp->objcore, OBJCORE_MAGIC);
AZ(HSH_Deref(sp->wrk, sp->objcore, NULL));
- sp->objhead = NULL;
sp->objcore = NULL;
}
AZ(sp->obj);
@@ -528,14 +526,10 @@
if (sp->objcore == NULL) {
/* This is a pass from vcl_recv */
- AZ(sp->objhead);
sp->wrk->cacheable = 0;
- } else if (!sp->wrk->cacheable) {
- if (sp->objhead != NULL) {
- AZ(HSH_Deref(sp->wrk, sp->objcore, NULL));
- sp->objhead = NULL;
- sp->objcore = NULL;
- }
+ } else if (!sp->wrk->cacheable && sp->objcore != NULL) {
+ AZ(HSH_Deref(sp->wrk, sp->objcore, NULL));
+ sp->objcore = NULL;
}
/*
@@ -545,7 +539,6 @@
*/
if (sp->wrk->cacheable) {
- CHECK_OBJ_NOTNULL(sp->objhead, OBJHEAD_MAGIC);
CHECK_OBJ_NOTNULL(sp->objcore, OBJCORE_MAGIC);
vary = VRY_Create(sp, sp->wrk->beresp);
if (vary != NULL) {
@@ -553,7 +546,6 @@
assert(varyl > 0);
}
} else {
- AZ(sp->objhead);
AZ(sp->objcore);
}
@@ -743,7 +735,6 @@
/* Drop our object, we won't need it */
(void)HSH_Deref(sp->wrk, NULL, &sp->obj);
sp->objcore = NULL;
- AZ(sp->objhead);
switch(sp->handling) {
case VCL_RET_PASS:
@@ -820,8 +811,6 @@
if (oc->flags & OC_F_BUSY) {
sp->wrk->stats.cache_miss++;
- // AZ(oc->obj);
- sp->objhead = oh;
sp->objcore = oc;
sp->step = STP_MISS;
return (0);
@@ -836,7 +825,6 @@
WSP(sp, SLT_HitPass, "%u", sp->obj->xid);
(void)HSH_Deref(sp->wrk, NULL, &sp->obj);
sp->objcore = NULL;
- sp->objhead = NULL;
sp->step = STP_PASS;
return (0);
}
@@ -879,7 +867,6 @@
AZ(sp->obj);
AN(sp->objcore);
- AN(sp->objhead);
WS_Reset(sp->wrk->ws, NULL);
sp->wrk->bereq = sp->wrk->http[0];
http_Setup(sp->wrk->bereq, sp->wrk->ws);
@@ -892,13 +879,11 @@
switch(sp->handling) {
case VCL_RET_ERROR:
AZ(HSH_Deref(sp->wrk, sp->objcore, NULL));
- sp->objhead = NULL;
sp->objcore = NULL;
sp->step = STP_ERROR;
return (0);
case VCL_RET_PASS:
AZ(HSH_Deref(sp->wrk, sp->objcore, NULL));
- sp->objhead = NULL;
sp->objcore = NULL;
sp->step = STP_PASS;
return (0);
@@ -907,7 +892,6 @@
return (0);
case VCL_RET_RESTART:
AZ(HSH_Deref(sp->wrk, sp->objcore, NULL));
- sp->objhead = NULL;
sp->objcore = NULL;
INCOMPL();
default:
Modified: trunk/varnish-cache/bin/varnishd/cache_hash.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_hash.c 2010-11-21 10:07:57 UTC (rev 5570)
+++ trunk/varnish-cache/bin/varnishd/cache_hash.c 2010-11-21 10:13:41 UTC (rev 5571)
@@ -270,7 +270,7 @@
if (params->diag_bitmap & 0x80000000)
hsh_testmagic(sp->wrk->nobjhead->digest);
- AZ(sp->objhead);
+ AZ(sp->hash_objhead);
AN(w->nobjhead);
oh = hash->lookup(sp, w->nobjhead);
CHECK_OBJ_NOTNULL(oh, OBJHEAD_MAGIC);
@@ -320,14 +320,14 @@
if (params->diag_bitmap & 0x80000000)
hsh_testmagic(sp->wrk->nobjhead->digest);
- if (sp->objhead != NULL) {
+ if (sp->hash_objhead != NULL) {
/*
* This sess came off the waiting list, and brings a
* oh refcnt with it.
*/
- CHECK_OBJ_NOTNULL(sp->objhead, OBJHEAD_MAGIC);
- oh = sp->objhead;
- sp->objhead = NULL;
+ CHECK_OBJ_NOTNULL(sp->hash_objhead, OBJHEAD_MAGIC);
+ oh = sp->hash_objhead;
+ sp->hash_objhead = NULL;
} else {
AN(w->nobjhead);
oh = hash->lookup(sp, w->nobjhead);
@@ -434,7 +434,7 @@
* back when the sess comes off the waiting list and
* calls us again
*/
- sp->objhead = oh;
+ sp->hash_objhead = oh;
sp->wrk = NULL;
Lck_Unlock(&oh->mtx);
return (NULL);
Modified: trunk/varnish-cache/bin/varnishd/stevedore.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/stevedore.c 2010-11-21 10:07:57 UTC (rev 5570)
+++ trunk/varnish-cache/bin/varnishd/stevedore.c 2010-11-21 10:13:41 UTC (rev 5571)
@@ -203,8 +203,6 @@
CHECK_OBJ_NOTNULL(sp->objcore, OBJCORE_MAGIC);
o->objcore = sp->objcore;
-
- sp->objhead = NULL; /* XXX: refcnt follows pointer. */
sp->objcore = NULL; /* refcnt follows pointer. */
BAN_NewObj(o);
More information about the varnish-commit
mailing list