X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fosc%2Fosc_page.c;h=62706e1997d74e89a948a2685eb9d1ad471bc618;hp=958f856ae2fe0669de6b257376622d4cdbc46ee0;hb=490fd542a9bc8e8dafd22a8f4ca7b186f87ab21c;hpb=32becabb43b6e8f21c030c23c01c3f02e351eaea diff --git a/lustre/osc/osc_page.c b/lustre/osc/osc_page.c index 958f856..62706e1 100644 --- a/lustre/osc/osc_page.c +++ b/lustre/osc/osc_page.c @@ -280,6 +280,14 @@ static const char *osc_list(struct list_head *head) return list_empty(head) ? "-" : "+"; } +static inline cfs_time_t osc_submit_duration(struct osc_page *opg) +{ + if (opg->ops_submit_time == 0) + return 0; + + return (cfs_time_current() - opg->ops_submit_time); +} + static int osc_page_print(const struct lu_env *env, const struct cl_page_slice *slice, void *cookie, lu_printer_t printer) @@ -290,7 +298,7 @@ static int osc_page_print(const struct lu_env *env, return (*printer)(env, cookie, LUSTRE_OSC_NAME"-page@%p: " "< %#x %d %u %s %s %s >" "< %llu %u %#x %#x %p %p %p %p %p >" - "< %s %p %d >\n", + "< %s %p %d %lu >\n", opg, /* 1 */ oap->oap_magic, oap->oap_cmd, @@ -306,7 +314,8 @@ static int osc_page_print(const struct lu_env *env, oap->oap_caller_data, /* 3 */ osc_list(&opg->ops_inflight), - opg->ops_submitter, opg->ops_transfer_pinned); + opg->ops_submitter, opg->ops_transfer_pinned, + osc_submit_duration(opg)); } static void osc_page_delete(const struct lu_env *env, @@ -397,6 +406,8 @@ static int osc_make_ready(const struct lu_env *env, void *data, int cmd) ENTRY; result = cl_page_make_ready(env, page, CRT_WRITE); + if (result == 0) + opg->ops_submit_time = cfs_time_current(); RETURN(result); } @@ -476,6 +487,8 @@ static int osc_completion(const struct lu_env *env, list_del_init(&opg->ops_inflight); spin_unlock(&obj->oo_seatbelt); + opg->ops_submit_time = 0; + cl_page_completion(env, page, crt, rc); /* statistic */