diff mbox series

[19/28] lustre: osc: Add RPC to iotrace

Message ID 1655560330-30743-20-git-send-email-jsimmons@infradead.org (mailing list archive)
State Not Applicable
Headers show
Series lustre: sync to OpenSFS June 15, 2022 | expand

Commit Message

James Simmons June 18, 2022, 1:52 p.m. UTC
From: Patrick Farrell <pfarrell@whamcloud.com>

Add RPCs to iotrace debugging.

To avoid creating too much debug output, this debug
ignores the possiblity that an RPC contains non-contiguous
extents.  Thus the eventual visualization will act as
though the RPC is a continuous whole.  I judge this to be
superior to the amount of log data and complexity of
capturing each extent separately.  If that level of detail
is needed, a higher debug level can be used.

WC-bug-id: https://jira.whamcloud.com/browse/LU-15317
Lustre-commit: 5cb722c384077dd24 ("LU-15317 osc: Add RPC to iotrace")
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/45894
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
---
 fs/lustre/osc/osc_request.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/fs/lustre/osc/osc_request.c b/fs/lustre/osc/osc_request.c
index 124d3c57..d84884f 100644
--- a/fs/lustre/osc/osc_request.c
+++ b/fs/lustre/osc/osc_request.c
@@ -2665,6 +2665,7 @@  int osc_build_rpc(const struct lu_env *env, struct client_obd *cli,
 
 	spin_lock(&cli->cl_loi_list_lock);
 	starting_offset >>= PAGE_SHIFT;
+	ending_offset >>= PAGE_SHIFT;
 	if (cmd == OBD_BRW_READ) {
 		cli->cl_r_in_flight++;
 		lprocfs_oh_tally_log2(&cli->cl_read_page_hist, page_count);
@@ -2681,8 +2682,19 @@  int osc_build_rpc(const struct lu_env *env, struct client_obd *cli,
 	spin_unlock(&cli->cl_loi_list_lock);
 
 	DEBUG_REQ(D_INODE, req, "%d pages, aa %p, now %ur/%dw in flight",
-		  page_count, aa, cli->cl_r_in_flight,
-		  cli->cl_w_in_flight);
+		  page_count, aa, cli->cl_r_in_flight, cli->cl_w_in_flight);
+	if (libcfs_debug & D_IOTRACE) {
+		struct lu_fid fid;
+
+		fid.f_seq = crattr->cra_oa->o_parent_seq;
+		fid.f_oid = crattr->cra_oa->o_parent_oid;
+		fid.f_ver = crattr->cra_oa->o_parent_ver;
+		CDEBUG(D_IOTRACE,
+		       DFID": %d %s pages, start %lld, end %lld, now %ur/%uw in flight\n",
+		       PFID(&fid), page_count,
+		       cmd == OBD_BRW_READ ? "read" : "write", starting_offset,
+		       ending_offset, cli->cl_r_in_flight, cli->cl_w_in_flight);
+	}
 	OBD_FAIL_TIMEOUT(OBD_FAIL_OSC_DELAY_IO, cfs_fail_val);
 
 	ptlrpcd_add_req(req);