[experimental-ims] fe8ec80 Argument strength-reduction: from worker to dstats
Geoff Simmons
geoff at varnish-cache.org
Tue Feb 14 17:49:35 CET 2012
commit fe8ec801f6ed776522df03c7ff271406b76bc298
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Feb 14 11:19:22 2012 +0000
Argument strength-reduction: from worker to dstats
diff --git a/bin/varnishd/cache/cache_ban.c b/bin/varnishd/cache/cache_ban.c
index 6dc3618..b02e5f9 100644
--- a/bin/varnishd/cache/cache_ban.c
+++ b/bin/varnishd/cache/cache_ban.c
@@ -908,7 +908,7 @@ ban_lurker_work(const struct sess *sp, unsigned pass)
if (cache_param->diag_bitmap & 0x80000)
VSL(SLT_Debug, 0, "lurker done: %p %u %u",
oc, oc->flags & OC_F_LURK, pass);
- (void)HSH_Deref(sp->wrk, NULL, &o);
+ (void)HSH_Deref(&sp->wrk->stats, NULL, &o);
VTIM_sleep(cache_param->ban_lurker_sleep);
}
Lck_AssertHeld(&ban_mtx);
diff --git a/bin/varnishd/cache/cache_center.c b/bin/varnishd/cache/cache_center.c
index 57e5616..61d1a94 100644
--- a/bin/varnishd/cache/cache_center.c
+++ b/bin/varnishd/cache/cache_center.c
@@ -289,7 +289,7 @@ cnt_prepresp(struct sess *sp, struct worker *wrk, struct req *req)
HSH_Drop(wrk);
VBO_DerefBusyObj(wrk, &wrk->busyobj);
} else {
- (void)HSH_Deref(wrk, NULL, &req->obj);
+ (void)HSH_Deref(&wrk->stats, NULL, &req->obj);
}
AZ(req->obj);
req->restarts++;
@@ -338,7 +338,7 @@ cnt_deliver(struct sess *sp, struct worker *wrk, struct req *req)
RES_WriteObj(sp);
assert(WRW_IsReleased(wrk));
- (void)HSH_Deref(wrk, NULL, &req->obj);
+ (void)HSH_Deref(&wrk->stats, NULL, &req->obj);
http_Teardown(req->resp);
sp->step = STP_DONE;
return (0);
@@ -641,7 +641,7 @@ cnt_fetch(struct sess *sp, struct worker *wrk, struct req *req)
if (req->objcore != NULL) {
CHECK_OBJ_NOTNULL(req->objcore, OBJCORE_MAGIC);
- AZ(HSH_Deref(wrk, req->objcore, NULL));
+ AZ(HSH_Deref(&wrk->stats, req->objcore, NULL));
req->objcore = NULL;
}
VBO_DerefBusyObj(wrk, &wrk->busyobj);
@@ -972,7 +972,7 @@ cnt_streambody(struct sess *sp, struct worker *wrk, struct req *req)
RES_StreamEnd(sp);
assert(WRW_IsReleased(wrk));
- (void)HSH_Deref(wrk, NULL, &req->obj);
+ (void)HSH_Deref(&wrk->stats, NULL, &req->obj);
VBO_DerefBusyObj(wrk, &wrk->busyobj);
http_Teardown(req->resp);
sp->step = STP_DONE;
@@ -1065,7 +1065,7 @@ cnt_hit(struct sess *sp, struct worker *wrk, struct req *req)
}
/* Drop our object, we won't need it */
- (void)HSH_Deref(wrk, NULL, &req->obj);
+ (void)HSH_Deref(&wrk->stats, NULL, &req->obj);
req->objcore = NULL;
switch(req->handling) {
@@ -1183,7 +1183,7 @@ cnt_lookup(struct sess *sp, struct worker *wrk, struct req *req)
if (oc->flags & OC_F_PASS) {
wrk->stats.cache_hitpass++;
WSP(sp, SLT_HitPass, "%u", req->obj->xid);
- (void)HSH_Deref(wrk, NULL, &req->obj);
+ (void)HSH_Deref(&wrk->stats, NULL, &req->obj);
AZ(req->objcore);
sp->step = STP_PASS;
return (0);
@@ -1242,7 +1242,7 @@ cnt_miss(struct sess *sp, struct worker *wrk, struct req *req)
return (0);
}
- AZ(HSH_Deref(wrk, req->objcore, NULL));
+ AZ(HSH_Deref(&wrk->stats, req->objcore, NULL));
req->objcore = NULL;
http_Teardown(wrk->busyobj->bereq);
VBO_DerefBusyObj(wrk, &wrk->busyobj);
diff --git a/bin/varnishd/cache/cache_expire.c b/bin/varnishd/cache/cache_expire.c
index 1060bac..840e0b7 100644
--- a/bin/varnishd/cache/cache_expire.c
+++ b/bin/varnishd/cache/cache_expire.c
@@ -402,7 +402,7 @@ exp_timer(struct sess *sp, void *priv)
o = oc_getobj(sp->wrk, oc);
WSL(sp->wrk->vsl, SLT_ExpKill, 0, "%u %.0f",
oc_getxid(sp->wrk, oc), EXP_Ttl(NULL, o) - t);
- (void)HSH_Deref(sp->wrk, oc, NULL);
+ (void)HSH_Deref(&sp->wrk->stats, oc, NULL);
}
NEEDLESS_RETURN(NULL);
}
@@ -446,7 +446,7 @@ EXP_NukeOne(struct worker *wrk, struct lru *lru)
/* XXX: bad idea for -spersistent */
WSL(wrk->vsl, SLT_ExpKill, 0, "%u LRU", oc_getxid(wrk, oc));
- (void)HSH_Deref(wrk, oc, NULL);
+ (void)HSH_Deref(&wrk->stats, oc, NULL);
return (1);
}
diff --git a/bin/varnishd/cache/cache_hash.c b/bin/varnishd/cache/cache_hash.c
index 49f6d30..eebb999 100644
--- a/bin/varnishd/cache/cache_hash.c
+++ b/bin/varnishd/cache/cache_hash.c
@@ -139,13 +139,13 @@ HSH_Cleanup(struct worker *wrk)
}
void
-HSH_DeleteObjHead(struct worker *wrk, struct objhead *oh)
+HSH_DeleteObjHead(struct dstat *ds, struct objhead *oh)
{
AZ(oh->refcnt);
assert(VTAILQ_EMPTY(&oh->objcs));
Lck_Delete(&oh->mtx);
- wrk->stats.n_objecthead--;
+ ds->n_objecthead--;
FREE_OBJ(oh);
}
@@ -564,7 +564,7 @@ HSH_Purge(const struct sess *sp, struct objhead *oh, double ttl, double grace)
o->exp.ttl = ttl;
o->exp.grace = grace;
EXP_Rearm(o);
- (void)HSH_Deref(sp->wrk, NULL, &o);
+ (void)HSH_Deref(&sp->wrk->stats, NULL, &o);
}
WS_Release(sp->req->ws, 0);
}
@@ -588,7 +588,7 @@ HSH_Drop(struct worker *wrk)
o->exp.ttl = -1.;
if (o->objcore != NULL) /* Pass has no objcore */
HSH_Unbusy(wrk);
- (void)HSH_Deref(wrk, NULL, &wrk->sp->req->obj);
+ (void)HSH_Deref(&wrk->stats, NULL, &wrk->sp->req->obj);
}
void
@@ -660,7 +660,7 @@ HSH_Ref(struct objcore *oc)
*/
int
-HSH_Deref(struct worker *wrk, struct objcore *oc, struct object **oo)
+HSH_Deref(struct dstat *ds, struct objcore *oc, struct object **oo)
{
struct object *o = NULL;
struct objhead *oh;
@@ -683,7 +683,7 @@ HSH_Deref(struct worker *wrk, struct objcore *oc, struct object **oo)
*/
STV_Freestore(o);
STV_free(o->objstore);
- wrk->stats.n_object--;
+ ds->n_object--;
return (0);
}
@@ -713,16 +713,16 @@ HSH_Deref(struct worker *wrk, struct objcore *oc, struct object **oo)
if (oc->methods != NULL) {
oc_freeobj(oc);
- wrk->stats.n_object--;
+ ds->n_object--;
}
FREE_OBJ(oc);
- wrk->stats.n_objectcore--;
+ ds->n_objectcore--;
/* Drop our ref on the objhead */
assert(oh->refcnt > 0);
if (hash->deref(oh))
return (0);
- HSH_DeleteObjHead(wrk, oh);
+ HSH_DeleteObjHead(ds, oh);
return (0);
}
diff --git a/bin/varnishd/hash/hash_critbit.c b/bin/varnishd/hash/hash_critbit.c
index 5fafac5..069a1c2 100644
--- a/bin/varnishd/hash/hash_critbit.c
+++ b/bin/varnishd/hash/hash_critbit.c
@@ -359,7 +359,7 @@ hcb_cleaner(struct sess *sp, void *priv)
}
VTAILQ_FOREACH_SAFE(oh, &dead_h, hoh_list, oh2) {
VTAILQ_REMOVE(&dead_h, oh, hoh_list);
- HSH_DeleteObjHead(wrk, oh);
+ HSH_DeleteObjHead(&wrk->stats, oh);
}
Lck_Lock(&hcb_mtx);
VSTAILQ_CONCAT(&dead_y, &cool_y);
diff --git a/bin/varnishd/hash/hash_slinger.h b/bin/varnishd/hash/hash_slinger.h
index b45e604..1bc08b1 100644
--- a/bin/varnishd/hash/hash_slinger.h
+++ b/bin/varnishd/hash/hash_slinger.h
@@ -95,8 +95,8 @@ struct objhead {
#define hoh_head _u.n.u_n_hoh_head
};
-void HSH_DeleteObjHead(struct worker *w, struct objhead *oh);
-int HSH_Deref(struct worker *w, struct objcore *oc, struct object **o);
+void HSH_DeleteObjHead(struct dstat *, struct objhead *oh);
+int HSH_Deref(struct dstat *, struct objcore *oc, struct object **o);
#endif /* VARNISH_CACHE_CHILD */
extern const struct hash_slinger hsl_slinger;
More information about the varnish-commit
mailing list