#endif /* !CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK */
/* Disable page statistic by default due to huge performance penalty. */
+static void cs_page_inc(const struct cl_object *obj,
+ enum cache_stats_item item)
+{
#ifdef CONFIG_DEBUG_PAGESTATE_TRACKING
-#define CS_PAGE_INC(o, item) \
- atomic_inc(&cl_object_site(o)->cs_pages.cs_stats[CS_##item])
-#define CS_PAGE_DEC(o, item) \
- atomic_dec(&cl_object_site(o)->cs_pages.cs_stats[CS_##item])
-#define CS_PAGESTATE_INC(o, state) \
- atomic_inc(&cl_object_site(o)->cs_pages_state[state])
-#define CS_PAGESTATE_DEC(o, state) \
- atomic_dec(&cl_object_site(o)->cs_pages_state[state])
-#else
-#define CS_PAGE_INC(o, item)
-#define CS_PAGE_DEC(o, item)
-#define CS_PAGESTATE_INC(o, state)
-#define CS_PAGESTATE_DEC(o, state)
+ atomic_inc(&cl_object_site(obj)->cs_pages.cs_stats[item]);
#endif
+}
+
+static void cs_page_dec(const struct cl_object *obj,
+ enum cache_stats_item item)
+{
+#ifdef CONFIG_DEBUG_PAGESTATE_TRACKING
+ atomic_dec(&cl_object_site(obj)->cs_pages.cs_stats[item]);
+#endif
+}
+
+static void cs_pagestate_inc(const struct cl_object *obj,
+ enum cl_page_state state)
+{
+#ifdef CONFIG_DEBUG_PAGESTATE_TRACKING
+ atomic_inc(&cl_object_site(obj)->cs_pages_state[state]);
+#endif
+}
+
+static void cs_pagestate_dec(const struct cl_object *obj,
+ enum cl_page_state state)
+{
+#ifdef CONFIG_DEBUG_PAGESTATE_TRACKING
+ atomic_dec(&cl_object_site(obj)->cs_pages_state[state]);
+#endif
+}
/**
* Internal version of cl_page_get().
if (unlikely(slice->cpl_ops->cpo_fini != NULL))
slice->cpl_ops->cpo_fini(env, slice);
}
- CS_PAGE_DEC(obj, total);
- CS_PAGESTATE_DEC(obj, page->cp_state);
+ cs_page_dec(obj, CS_total);
+ cs_pagestate_dec(obj, page->cp_state);
lu_object_ref_del_at(&obj->co_lu, &page->cp_obj_ref, "cl_page", page);
cl_object_put(env, obj);
lu_ref_fini(&page->cp_reference);
}
}
if (result == 0) {
- CS_PAGE_INC(o, total);
- CS_PAGE_INC(o, create);
- CS_PAGESTATE_DEC(o, CPS_CACHED);
+ cs_page_inc(o, CS_total);
+ cs_page_inc(o, CS_create);
+ cs_pagestate_dec(o, CPS_CACHED);
}
} else {
page = ERR_PTR(-ENOMEM);
ENTRY;
hdr = cl_object_header(o);
- CS_PAGE_INC(o, lookup);
+ cs_page_inc(o, CS_lookup);
CDEBUG(D_PAGE, "%lu@"DFID" %p %lx %d\n",
idx, PFID(&hdr->coh_lu.loh_fid), vmpage, vmpage->private, type);
*/
page = cl_vmpage_page(vmpage, o);
if (page != NULL) {
- CS_PAGE_INC(o, hit);
+ cs_page_inc(o, CS_hit);
RETURN(page);
}
}
PASSERT(env, page, page->cp_state == old);
PASSERT(env, page, equi(state == CPS_OWNED, page->cp_owner != NULL));
- CS_PAGESTATE_DEC(page->cp_obj, page->cp_state);
- CS_PAGESTATE_INC(page->cp_obj, state);
+ cs_pagestate_dec(page->cp_obj, page->cp_state);
+ cs_pagestate_inc(page->cp_obj, state);
cl_page_state_set_trust(page, state);
EXIT;
}