AC_DEFINE([USE_LU_REF], 1, [enable lu_ref reference tracking code])
fi
+AC_ARG_ENABLE([pgstate-track],
+ AC_HELP_STRING([--enable-pgstate-track],
+ [enable page state tracking]),
+ [enable_pgstat_track='yes'],[])
+AC_MSG_CHECKING([whether to enable page state tracking])
+AC_MSG_RESULT([$enable_pgstat_track])
+if test x$enable_pgstat_track = xyes ; then
+ AC_DEFINE([LUSTRE_PAGESTATE_TRACKING], 1,
+ [enable page state tracking code])
+fi
+
#2.6.29
LC_WRITE_BEGIN_END
LC_D_OBTAIN_ALIAS
slice->cpl_ops->cpo_fini(env, slice);
}
cfs_atomic_dec(&site->cs_pages.cs_total);
+
+#ifdef LUSTRE_PAGESTATE_TRACKING
cfs_atomic_dec(&site->cs_pages_state[page->cp_state]);
+#endif
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 (err == NULL) {
cfs_atomic_inc(&site->cs_pages.cs_busy);
cfs_atomic_inc(&site->cs_pages.cs_total);
+
+#ifdef LUSTRE_PAGESTATE_TRACKING
cfs_atomic_inc(&site->cs_pages_state[CPS_CACHED]);
+#endif
cfs_atomic_inc(&site->cs_pages.cs_created);
result = 0;
}
struct cl_page *page, enum cl_page_state state)
{
enum cl_page_state old;
+#ifdef LUSTRE_PAGESTATE_TRACKING
struct cl_site *site = cl_object_site(page->cp_obj);
+#endif
/*
* Matrix of allowed state transitions [old][new], for sanity
PASSERT(env, page,
equi(state == CPS_OWNED, page->cp_owner != NULL));
+#ifdef LUSTRE_PAGESTATE_TRACKING
cfs_atomic_dec(&site->cs_pages_state[page->cp_state]);
cfs_atomic_inc(&site->cs_pages_state[state]);
+#endif
cl_page_state_set_trust(page, state);
}
EXIT;