On Thu, Jul 31, 2025 at 02:10:09PM -0400, Chuck Lever wrote: > On 7/31/25 1:04 PM, Mike Snitzer wrote: > > On Thu, Jul 31, 2025 at 11:31:29AM -0400, Jeff Layton wrote: > >> On Wed, 2025-07-30 at 19:05 -0400, Mike Snitzer wrote: > >>> From: Mike Snitzer <snitzer@xxxxxxxxxxxxxxx> > >>> > >>> Rename nfsd_read_vector_dio trace event to nfsd_analyze_dio and update > >>> it so that it provides useful tracing for both READ and WRITE. This > >>> prepares for nfsd_vfs_write() to also make use of it when handling > >>> misaligned WRITEs. > >>> > >>> Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxxxxxxx> > >>> --- > >>> fs/nfsd/trace.h | 37 ++++++++++++++++++++++++------------- > >>> fs/nfsd/vfs.c | 11 ++++++----- > >>> 2 files changed, 30 insertions(+), 18 deletions(-) > >>> > >>> diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h > >>> index 55055482f8a8..51b47fd041a8 100644 > >>> --- a/fs/nfsd/trace.h > >>> +++ b/fs/nfsd/trace.h > >>> @@ -473,41 +473,52 @@ DEFINE_NFSD_IO_EVENT(write_done); > >>> DEFINE_NFSD_IO_EVENT(commit_start); > >>> DEFINE_NFSD_IO_EVENT(commit_done); > >>> > >>> -TRACE_EVENT(nfsd_read_vector_dio, > >>> +TRACE_EVENT(nfsd_analyze_dio, > >>> TP_PROTO(struct svc_rqst *rqstp, > >>> struct svc_fh *fhp, > >>> + u32 rw, > >> > >> I would do this a bit differently. You're hardcoding READ and WRITE > >> into both tracepoints. I would turn this trace event into a class a'la > >> DECLARE_EVENT_CLASS, and then just define two different tracepoints > >> (maybe trace_nfsd_analyze_read/write_dio). Then you can just drop the > >> above u32 field, and it'll still be evident whether it's a read or > >> write in the log. > > > > Seems overkill to me, and also forces the need for user to enable > > discrete tracepoints. > > Users can enable trace points with globs, so that's not a big deal in > most cases. What is more important is that, when you define individual > trace points, you can enable tracing for only reads or only writes. > > The common trope is to define a class, as Jeff suggested. The I/O > direction is then recorded in the trace point and the extra field > is no longer necessary. OK, I'll fix it up, thanks.