From: cel@kernel.org
To: NeilBrown <neil@brown.name>, Jeff Layton <jlayton@kernel.org>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <dai.ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
Anna Schumaker <anna@kernel.org>
Cc: sargun@sargun.me, <linux-nfs@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH v4 04/18] nfsd: add a tracepoint to nfsd_lookup_dentry
Date: Sat, 3 May 2025 15:59:22 -0400 [thread overview]
Message-ID: <20250503195936.5083-5-cel@kernel.org> (raw)
In-Reply-To: <20250503195936.5083-1-cel@kernel.org>
From: Jeff Layton <jlayton@kernel.org>
Replace the dprintk in nfsd_lookup_dentry() with a trace point.
nfsd_lookup_dentry() is called frequently enough that enabling this
dprintk call site would result in log floods and performance issues.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
fs/nfsd/trace.h | 23 +++++++++++++++++++++++
fs/nfsd/vfs.c | 2 +-
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h
index b435276a1aaa..661a870d62f5 100644
--- a/fs/nfsd/trace.h
+++ b/fs/nfsd/trace.h
@@ -2394,6 +2394,29 @@ TRACE_EVENT(nfsd_vfs_setattr,
)
)
+TRACE_EVENT(nfsd_vfs_lookup,
+ TP_PROTO(
+ const struct svc_rqst *rqstp,
+ const struct svc_fh *fhp,
+ const char *name,
+ unsigned int len
+ ),
+ TP_ARGS(rqstp, fhp, name, len),
+ TP_STRUCT__entry(
+ NFSD_TRACE_PROC_CALL_FIELDS(rqstp)
+ __field(u32, fh_hash)
+ __string_len(name, name, len)
+ ),
+ TP_fast_assign(
+ NFSD_TRACE_PROC_CALL_ASSIGNMENTS(rqstp);
+ __entry->fh_hash = knfsd_fh_hash(&fhp->fh_handle);
+ __assign_str(name);
+ ),
+ TP_printk("xid=0x%08x fh_hash=0x%08x name=%s",
+ __entry->xid, __entry->fh_hash, __get_str(name)
+ )
+);
+
#endif /* _NFSD_TRACE_H */
#undef TRACE_INCLUDE_PATH
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 9e0a858d2129..657ba0c2da14 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -246,7 +246,7 @@ nfsd_lookup_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp,
struct dentry *dentry;
int host_err;
- dprintk("nfsd: nfsd_lookup(fh %s, %.*s)\n", SVCFH_fmt(fhp), len,name);
+ trace_nfsd_vfs_lookup(rqstp, fhp, name, len);
dparent = fhp->fh_dentry;
exp = exp_get(fhp->fh_export);
--
2.49.0
next prev parent reply other threads:[~2025-05-03 19:59 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-03 19:59 [PATCH v4 00/18] nfsd: observability improvements cel
2025-05-03 19:59 ` [PATCH v4 01/18] NFSD: Use sockaddr instead of a generic array cel
2025-05-03 20:29 ` Jeff Layton
2025-05-03 19:59 ` [PATCH v4 02/18] NFSD: Add a Call equivalent to the NFSD_TRACE_PROC_RES macros cel
2025-05-03 20:30 ` Jeff Layton
2025-05-03 19:59 ` [PATCH v4 03/18] nfsd: add a tracepoint for nfsd_setattr cel
2025-05-03 19:59 ` cel [this message]
2025-05-03 19:59 ` [PATCH v4 05/18] nfsd: add nfsd_vfs_create tracepoints cel
2025-05-03 19:59 ` [PATCH v4 06/18] nfsd: add tracepoint to nfsd_symlink cel
2025-05-03 19:59 ` [PATCH v4 07/18] nfsd: add tracepoint to nfsd_link() cel
2025-05-03 20:30 ` Jeff Layton
2025-05-03 19:59 ` [PATCH v4 08/18] nfsd: add tracepoints for unlink events cel
2025-05-03 19:59 ` [PATCH v4 09/18] nfsd: add tracepoint to nfsd_rename cel
2025-05-03 19:59 ` [PATCH v4 10/18] nfsd: add tracepoint to nfsd_readdir cel
2025-05-03 19:59 ` [PATCH v4 11/18] nfsd: add tracepoint for getattr and statfs events cel
2025-05-03 19:59 ` [PATCH v4 12/18] nfsd: remove old v2/3 create path dprintks cel
2025-05-03 19:59 ` [PATCH v4 13/18] nfsd: remove old v2/3 SYMLINK dprintks cel
2025-05-03 19:59 ` [PATCH v4 14/18] nfsd: remove old LINK dprintks cel
2025-05-03 19:59 ` [PATCH v4 15/18] nfsd: remove REMOVE/RMDIR dprintks cel
2025-05-03 19:59 ` [PATCH v4 16/18] nfsd: remove dprintks for v2/3 RENAME events cel
2025-05-03 19:59 ` [PATCH v4 17/18] nfsd: remove legacy READDIR dprintks cel
2025-05-03 19:59 ` [PATCH v4 18/18] nfsd: remove legacy dprintks from GETATTR and STATFS codepaths cel
2025-05-03 20:32 ` [PATCH v4 00/18] nfsd: observability improvements Jeff Layton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250503195936.5083-5-cel@kernel.org \
--to=cel@kernel.org \
--cc=anna@kernel.org \
--cc=dai.ngo@oracle.com \
--cc=jlayton@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neil@brown.name \
--cc=okorniev@redhat.com \
--cc=sargun@sargun.me \
--cc=tom@talpey.com \
--cc=trond.myklebust@hammerspace.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.