[master] 3bfe3fe De-inline the oc_*() methods by moving them into cache_obj.c.

Poul-Henning Kamp phk at FreeBSD.org
Mon Jun 30 10:14:35 CEST 2014


commit 3bfe3fe793e775d3352de91618ba4da122a7dfa8
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Mon Jun 30 08:14:04 2014 +0000

    De-inline the oc_*() methods by moving them into cache_obj.c.
    
    Rename suitably and always put the objcore argument first.

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 55377d2..7ecaf8f 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -450,58 +450,6 @@ struct objcore {
 	struct ban		*ban;
 };
 
-static inline unsigned
-oc_getxid(struct dstat *ds, struct objcore *oc)
-{
-	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
-
-	AN(oc->methods);
-	AN(oc->methods->getxid);
-	return (oc->methods->getxid(ds, oc));
-}
-
-static inline struct object *
-oc_getobj(struct dstat *ds, struct objcore *oc)
-{
-
-	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
-	// AZ(oc->flags & OC_F_BUSY);
-	AN(oc->methods);
-	AN(oc->methods->getobj);
-	return (oc->methods->getobj(ds, oc));
-}
-
-static inline void
-oc_updatemeta(struct objcore *oc)
-{
-
-	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
-	AN(oc->methods);
-	if (oc->methods->updatemeta != NULL)
-		oc->methods->updatemeta(oc);
-}
-
-static inline void
-oc_freeobj(struct dstat *ds, struct objcore *oc)
-{
-
-	AN(ds);
-	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
-	AN(oc->methods);
-	AN(oc->methods->freeobj);
-	oc->methods->freeobj(ds, oc);
-}
-
-static inline struct lru *
-oc_getlru(const struct objcore *oc)
-{
-
-	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
-	AN(oc->methods);
-	AN(oc->methods->getlru);
-	return (oc->methods->getlru(oc));
-}
-
 /* Busy Object structure ---------------------------------------------
  *
  * The busyobj structure captures the aspects of an object related to,
@@ -1100,7 +1048,12 @@ enum objiter_status {
 struct objiter *ObjIterBegin(struct worker *, struct object *);
 enum objiter_status ObjIter(struct objiter *, void **, ssize_t *);
 void ObjIterEnd(struct objiter **);
-void ObjTrimStore(struct objcore *oc, struct dstat *ds);
+void ObjTrimStore(struct objcore *, struct dstat *);
+unsigned ObjGetXID(struct objcore *, struct dstat *);
+struct object *ObjGetObj(struct objcore *, struct dstat *);
+void ObjUpdateMeta(struct objcore *);
+void ObjFreeObj(struct objcore *, struct dstat *);
+struct lru *ObjGetLRU(const struct objcore *);
 
 /* cache_panic.c */
 void PAN_Init(void);
diff --git a/bin/varnishd/cache/cache_ban.c b/bin/varnishd/cache/cache_ban.c
index 7bd3378..7388acb 100644
--- a/bin/varnishd/cache/cache_ban.c
+++ b/bin/varnishd/cache/cache_ban.c
@@ -958,7 +958,7 @@ ban_check_object(const struct object *o, struct vsl_log *vsl,
 
 	if (b == oc->ban) {	/* not banned */
 		oc->ban = b0;
-		oc_updatemeta(oc);
+		ObjUpdateMeta(oc);
 		return (0);
 	} else {
 		oc->ban = NULL;
@@ -1087,7 +1087,7 @@ ban_lurker_test_ban(struct worker *wrk, struct vsl_log *vsl, struct ban *bt,
 		oc = ban_lurker_getfirst(vsl, bt);
 		if (oc == NULL)
 			return;
-		o = oc_getobj(&wrk->stats, oc);
+		o = ObjGetObj(oc, &wrk->stats);
 		CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
 		i = 0;
 		VTAILQ_FOREACH_REVERSE_SAFE(bl, obans, banhead_s, l_list, bln) {
diff --git a/bin/varnishd/cache/cache_expire.c b/bin/varnishd/cache/cache_expire.c
index e03df79..dd3ed1a 100644
--- a/bin/varnishd/cache/cache_expire.c
+++ b/bin/varnishd/cache/cache_expire.c
@@ -168,7 +168,7 @@ EXP_Insert(struct objcore *oc)
 	AZ(oc->exp_flags & OC_EF_DYING);
 	AN(oc->flags & OC_F_BUSY);
 
-	lru = oc_getlru(oc);
+	lru = ObjGetLRU(oc);
 	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
 
 	Lck_Lock(&lru->mtx);
@@ -201,7 +201,7 @@ EXP_Touch(struct objcore *oc, double now)
 	if (now - oc->last_lru < cache_param->lru_interval)
 		return;
 
-	lru = oc_getlru(oc);
+	lru = ObjGetLRU(oc);
 	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
 
 	/*
@@ -257,7 +257,7 @@ EXP_Rearm(struct objcore *oc, double now, double ttl, double grace, double keep)
 	if (when > oc->exp.t_origin && when > oc->timer_when)
 		return;
 
-	lru = oc_getlru(oc);
+	lru = ObjGetLRU(oc);
 	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
 
 	Lck_Lock(&lru->mtx);
@@ -334,14 +334,14 @@ EXP_NukeOne(struct busyobj *bo, struct lru *lru)
 	}
 
 	/* XXX: We could grab and return one storage segment to our caller */
-	o = oc_getobj(bo->stats, oc);
+	o = ObjGetObj(oc, bo->stats);
 	CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
 	STV_Freestore(o);
 
 	exp_mail_it(oc);
 
 	VSLb(bo->vsl, SLT_ExpKill, "LRU x=%u",
-	    oc_getxid(bo->stats, oc) & VSL_IDENTMASK);
+	    ObjGetXID(oc, bo->stats) & VSL_IDENTMASK);
 	AN(bo->stats);
 	AN(oc);
 	(void)HSH_DerefObjCore(bo->stats, &oc);
@@ -367,7 +367,7 @@ exp_inbox(struct exp_priv *ep, struct objcore *oc, double now)
 
 	// AZ(oc->flags & OC_F_BUSY);
 
-	lru = oc_getlru(oc);
+	lru = ObjGetLRU(oc);
 	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
 
 	/* Evacuate our action-flags, and put it back on the LRU list */
@@ -395,10 +395,10 @@ exp_inbox(struct exp_priv *ep, struct objcore *oc, double now)
 	}
 
 	if (flags & OC_EF_MOVE) {
-		o = oc_getobj(&ep->wrk->stats, oc);
+		o = ObjGetObj(oc, &ep->wrk->stats);
 		CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
 		oc->timer_when = EXP_When(&oc->exp);
-		oc_updatemeta(oc);
+		ObjUpdateMeta(oc);
 	}
 
 	VSLb(&ep->vsl, SLT_ExpKill, "EXP_When p=%p e=%.9f f=0x%x", oc,
@@ -448,7 +448,7 @@ exp_expire(struct exp_priv *ep, double now)
 
 	VSC_C_main->n_expired++;
 
-	lru = oc_getlru(oc);
+	lru = ObjGetLRU(oc);
 	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
 	Lck_Lock(&lru->mtx);
 	// AZ(oc->flags & OC_F_BUSY);
@@ -470,10 +470,10 @@ exp_expire(struct exp_priv *ep, double now)
 	assert(oc->timer_idx == BINHEAP_NOIDX);
 
 	CHECK_OBJ_NOTNULL(oc->objhead, OBJHEAD_MAGIC);
-	o = oc_getobj(&ep->wrk->stats, oc);
+	o = ObjGetObj(oc, &ep->wrk->stats);
 	CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
 	VSLb(&ep->vsl, SLT_ExpKill, "EXP_Expired x=%u t=%.0f",
-	    oc_getxid(&ep->wrk->stats, oc) & VSL_IDENTMASK,
+	    ObjGetXID(oc, &ep->wrk->stats) & VSL_IDENTMASK,
 	    EXP_Ttl(NULL, &oc->exp) - now);
 	(void)HSH_DerefObjCore(&ep->wrk->stats, &oc);
 	return (0);
diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index 8c9acbc..0980c64 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -536,7 +536,7 @@ vbf_stp_fetch(struct worker *wrk, struct busyobj *bo)
 	if (bo->failed && !bo->do_stream) {
 		assert(bo->state < BOS_STREAM);
 		if (bo->fetch_obj != NULL) {
-			oc_freeobj(bo->stats, bo->fetch_objcore);
+			ObjFreeObj(bo->fetch_objcore, bo->stats);
 			bo->fetch_obj = NULL;
 		}
 		return (F_STP_ERROR);
diff --git a/bin/varnishd/cache/cache_hash.c b/bin/varnishd/cache/cache_hash.c
index f03d901..70796e7 100644
--- a/bin/varnishd/cache/cache_hash.c
+++ b/bin/varnishd/cache/cache_hash.c
@@ -423,7 +423,7 @@ HSH_Lookup(struct req *req, struct objcore **ocp, struct objcore **bocp,
 		if (oc->exp.ttl <= 0.)
 			continue;
 
-		o = oc_getobj(&wrk->stats, oc);
+		o = ObjGetObj(oc, &wrk->stats);
 		CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
 
 		if (BAN_CheckObject(o, req))
@@ -801,7 +801,7 @@ HSH_DerefObjCore(struct dstat *ds, struct objcore **ocp)
 	AZ(oc->ban);
 
 	if (oc->methods != NULL)
-		oc_freeobj(ds, oc);
+		ObjFreeObj(oc, ds);
 	FREE_OBJ(oc);
 
 	ds->n_objectcore--;
diff --git a/bin/varnishd/cache/cache_obj.c b/bin/varnishd/cache/cache_obj.c
index 038a751..038255d 100644
--- a/bin/varnishd/cache/cache_obj.c
+++ b/bin/varnishd/cache/cache_obj.c
@@ -145,7 +145,7 @@ ObjTrimStore(struct objcore *oc, struct dstat *ds)
 	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
 	stv = oc->stevedore;
 	CHECK_OBJ_NOTNULL(stv, STEVEDORE_MAGIC);
-	o = oc_getobj(ds, oc);
+	o = ObjGetObj(oc, ds);
 	CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
 	st = VTAILQ_LAST(&o->store, storagehead);
 	if (st == NULL)
@@ -157,3 +157,55 @@ ObjTrimStore(struct objcore *oc, struct dstat *ds)
 		STV_trim(st, st->len, 1);
 	}
 }
+
+unsigned
+ObjGetXID(struct objcore *oc, struct dstat *ds)
+{
+	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+
+	AN(oc->methods);
+	AN(oc->methods->getxid);
+	return (oc->methods->getxid(ds, oc));
+}
+
+struct object *
+ObjGetObj(struct objcore *oc, struct dstat *ds)
+{
+
+	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+	// AZ(oc->flags & OC_F_BUSY);
+	AN(oc->methods);
+	AN(oc->methods->getobj);
+	return (oc->methods->getobj(ds, oc));
+}
+
+void
+ObjUpdateMeta(struct objcore *oc)
+{
+
+	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+	AN(oc->methods);
+	if (oc->methods->updatemeta != NULL)
+		oc->methods->updatemeta(oc);
+}
+
+void
+ObjFreeObj(struct objcore *oc, struct dstat *ds)
+{
+
+	AN(ds);
+	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+	AN(oc->methods);
+	AN(oc->methods->freeobj);
+	oc->methods->freeobj(ds, oc);
+}
+
+struct lru *
+ObjGetLRU(const struct objcore *oc)
+{
+
+	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+	AN(oc->methods);
+	AN(oc->methods->getlru);
+	return (oc->methods->getlru(oc));
+}
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index bc5ffc2..f987568 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -287,7 +287,7 @@ cnt_fetch(struct worker *wrk, struct req *req)
 		return (REQ_FSM_MORE);
 	}
 
-	req->obj = oc_getobj(&wrk->stats, req->objcore);
+	req->obj = ObjGetObj(req->objcore, &wrk->stats);
 	req->objcore = NULL;
 	req->err_code = http_GetStatus(req->obj->http);
 	req->req_step = R_STP_DELIVER;
@@ -381,7 +381,7 @@ cnt_lookup(struct worker *wrk, struct req *req)
 	AZ(oc->flags & OC_F_BUSY);
 	AZ(req->objcore);
 
-	o = oc_getobj(&wrk->stats, oc);
+	o = ObjGetObj(oc, &wrk->stats);
 	CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
 	req->obj = o;
 
diff --git a/bin/varnishd/storage/stevedore.c b/bin/varnishd/storage/stevedore.c
index a20c58b..7ddee95 100644
--- a/bin/varnishd/storage/stevedore.c
+++ b/bin/varnishd/storage/stevedore.c
@@ -53,7 +53,7 @@ default_oc_getxid(struct dstat *ds, struct objcore *oc)
 {
 	struct object *o;
 
-	o = oc_getobj(ds, oc);
+	o = ObjGetObj(oc, ds);
 	return (o->vxid);
 }
 



More information about the varnish-commit mailing list