From 28a7bbdb81cfd8359c39b75ae79948b195a21eef Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Tue, 1 Mar 2022 19:08:02 -0500 Subject: [PATCH] LU-15619 osc: Remove submit time The osc page submit time is an unused bit of debugging information, but it's allocated for every page. Let's just remove it to save memory. Signed-off-by: Patrick Farrell Change-Id: I160d38039332cb17e07735b60ce7979626ed43dc Reviewed-on: https://review.whamcloud.com/46712 Reviewed-by: Andreas Dilger Tested-by: jenkins Tested-by: Maloo Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- lustre/include/lustre_osc.h | 6 +----- lustre/osc/osc_cache.c | 6 ++---- lustre/osc/osc_io.c | 3 +-- lustre/osc/osc_page.c | 15 +++------------ 4 files changed, 7 insertions(+), 23 deletions(-) diff --git a/lustre/include/lustre_osc.h b/lustre/include/lustre_osc.h index bcb9c4a..ca0e2ff 100644 --- a/lustre/include/lustre_osc.h +++ b/lustre/include/lustre_osc.h @@ -531,10 +531,6 @@ struct osc_page { * lru page list. See osc_lru_{del|use}() in osc_page.c for usage. */ struct list_head ops_lru; - /** - * Submit time - the time when the page is starting RPC. For debugging. - */ - ktime_t ops_submit_time; }; struct osc_brw_async_args { @@ -569,7 +565,7 @@ void osc_index2policy(union ldlm_policy_data *policy, const struct cl_object *ob pgoff_t start, pgoff_t end); void osc_lru_add_batch(struct client_obd *cli, struct list_head *list); void osc_page_submit(const struct lu_env *env, struct osc_page *opg, - enum cl_req_type crt, int brw_flags, ktime_t submit_time); + enum cl_req_type crt, int brw_flags); int lru_queue_work(const struct lu_env *env, void *data); long osc_lru_shrink(const struct lu_env *env, struct client_obd *cli, long target, bool force); diff --git a/lustre/osc/osc_cache.c b/lustre/osc/osc_cache.c index cbf4713..0e6e50d 100644 --- a/lustre/osc/osc_cache.c +++ b/lustre/osc/osc_cache.c @@ -1253,16 +1253,15 @@ static inline int osc_is_ready(struct osc_object *osc) static int osc_make_ready(const struct lu_env *env, struct osc_async_page *oap, int cmd) { - struct osc_page *opg = oap2osc_page(oap); struct cl_page *page = oap2cl_page(oap); int result; LASSERT(cmd == OBD_BRW_WRITE); /* no cached reads */ ENTRY; + result = cl_page_make_ready(env, page, CRT_WRITE); - if (result == 0) - opg->ops_submit_time = ktime_get(); + RETURN(result); } @@ -1317,7 +1316,6 @@ static int osc_completion(const struct lu_env *env, struct osc_async_page *oap, /* Clear opg->ops_transfer_pinned before VM lock is released. */ opg->ops_transfer_pinned = 0; - opg->ops_submit_time = ktime_set(0, 0); srvlock = oap->oap_brw_flags & OBD_BRW_SRVLOCK; /* statistic */ diff --git a/lustre/osc/osc_io.c b/lustre/osc/osc_io.c index 8639965..fec986e 100644 --- a/lustre/osc/osc_io.c +++ b/lustre/osc/osc_io.c @@ -133,7 +133,6 @@ int osc_io_submit(const struct lu_env *env, const struct cl_io_slice *ios, unsigned int max_pages; unsigned int ppc_bits; /* pages per chunk bits */ unsigned int ppc; - ktime_t submit_time = ktime_get(); bool sync_queue = false; LASSERT(qin->pl_nr > 0); @@ -201,7 +200,7 @@ int osc_io_submit(const struct lu_env *env, const struct cl_io_slice *ios, spin_unlock(&oap->oap_lock); } - osc_page_submit(env, opg, crt, brw_flags, submit_time); + osc_page_submit(env, opg, crt, brw_flags); list_add_tail(&oap->oap_pending_item, &list); if (page->cp_sync_io != NULL) diff --git a/lustre/osc/osc_page.c b/lustre/osc/osc_page.c index 73a29f6..ecc71aa 100644 --- a/lustre/osc/osc_page.c +++ b/lustre/osc/osc_page.c @@ -110,14 +110,6 @@ void osc_index2policy(union ldlm_policy_data *policy, policy->l_extent.end = cl_offset(obj, end + 1) - 1; } -static inline s64 osc_submit_duration(struct osc_page *opg) -{ - if (ktime_to_ns(opg->ops_submit_time) == 0) - return 0; - - return ktime_ms_delta(ktime_get(), 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) @@ -130,7 +122,7 @@ static int osc_page_print(const struct lu_env *env, return (*printer)(env, cookie, LUSTRE_OSC_NAME"-page@%p %lu: " "1< %#x %d %c %c > " "2< %lld %u %u %#x %#x | %p %p %p > " - "3< %d %lld %d > " + "3< %d %d > " "4< %d %d %d %lu %c | %c %c %c %c > " "5< %c %c %c %c | %d %c | %d %c %c>\n", opg, osc_index(opg), @@ -144,7 +136,7 @@ static int osc_page_print(const struct lu_env *env, oap->oap_request, cli, obj, /* 3 */ opg->ops_transfer_pinned, - osc_submit_duration(opg), opg->ops_srvlock, + opg->ops_srvlock, /* 4 */ cli->cl_r_in_flight, cli->cl_w_in_flight, cli->cl_max_rpcs_in_flight, @@ -300,7 +292,7 @@ EXPORT_SYMBOL(osc_page_init); * transfer (i.e., transferred synchronously). */ void osc_page_submit(const struct lu_env *env, struct osc_page *opg, - enum cl_req_type crt, int brw_flags, ktime_t submit_time) + enum cl_req_type crt, int brw_flags) { struct osc_io *oio = osc_env_io(env); struct osc_async_page *oap = &opg->ops_oap; @@ -320,7 +312,6 @@ void osc_page_submit(const struct lu_env *env, struct osc_page *opg, oap->oap_cmd |= OBD_BRW_SYS_RESOURCE; } - opg->ops_submit_time = submit_time; osc_page_transfer_get(opg, "transfer\0imm"); osc_page_transfer_add(env, opg, crt); } -- 1.8.3.1