nfsd: Record request byte count, not count of vectors
authorChuck Lever <chuck.lever@oracle.com>
Tue, 27 Mar 2018 14:52:57 +0000 (10:52 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 3 Apr 2018 19:08:14 +0000 (15:08 -0400)
Byte count is more helpful to know than vector count.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/trace.h
fs/nfsd/vfs.c

index 3aa3f3b1eeaaba8c8898b4933e3c33e1d7c08086..9b7950602fad67d04ac2df0d2ce934c170ee3dab 100644 (file)
@@ -15,26 +15,21 @@ DECLARE_EVENT_CLASS(nfsd_io_class,
        TP_PROTO(struct svc_rqst *rqstp,
                 struct svc_fh  *fhp,
                 loff_t         offset,
-                int            len),
+                unsigned long  len),
        TP_ARGS(rqstp, fhp, offset, len),
        TP_STRUCT__entry(
                __field(u32, xid)
                __field(u32, fh_hash)
                __field(loff_t, offset)
-               __field(int, len)
+               __field(unsigned long, len)
        ),
        TP_fast_assign(
                __entry->xid = be32_to_cpu(rqstp->rq_xid);
-               do {
-                       struct knfsd_fh fh;
-
-                       fh_copy_shallow(&fh, &fhp->fh_handle);
-                       __entry->fh_hash = knfsd_fh_hash(&fh);
-               } while (0);
+               __entry->fh_hash = knfsd_fh_hash(&fhp->fh_handle);
                __entry->offset = offset;
                __entry->len = len;
        ),
-       TP_printk("xid=0x%08x fh_hash=0x%08x offset=%lld len=%d",
+       TP_printk("xid=0x%08x fh_hash=0x%08x offset=%lld len=%lu",
                  __entry->xid, __entry->fh_hash,
                  __entry->offset, __entry->len)
 )
@@ -44,7 +39,7 @@ DEFINE_EVENT(nfsd_io_class, name,             \
        TP_PROTO(struct svc_rqst *rqstp,        \
                 struct svc_fh  *fhp,           \
                 loff_t         offset,         \
-                int            len),           \
+                unsigned long  len),           \
        TP_ARGS(rqstp, fhp, offset, len))
 
 DEFINE_NFSD_IO_EVENT(read_start);
index a3c9bfa77def8da3a2a5d54f21edae47943a4ae1..e2eab4c37030d6e835ef120434cfd2cf2168cbd4 100644 (file)
@@ -1024,27 +1024,27 @@ __be32 nfsd_read(struct svc_rqst *rqstp, struct svc_fh *fhp,
        struct raparms  *ra;
        __be32 err;
 
-       trace_read_start(rqstp, fhp, offset, vlen);
+       trace_read_start(rqstp, fhp, offset, *count);
        err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_READ, &file);
        if (err)
                return err;
 
        ra = nfsd_init_raparms(file);
 
-       trace_read_opened(rqstp, fhp, offset, vlen);
+       trace_read_opened(rqstp, fhp, offset, *count);
 
        if (file->f_op->splice_read && test_bit(RQ_SPLICE_OK, &rqstp->rq_flags))
                err = nfsd_splice_read(rqstp, file, offset, count);
        else
                err = nfsd_readv(file, offset, vec, vlen, count);
 
-       trace_read_io_done(rqstp, fhp, offset, vlen);
+       trace_read_io_done(rqstp, fhp, offset, *count);
 
        if (ra)
                nfsd_put_raparams(file, ra);
        fput(file);
 
-       trace_read_done(rqstp, fhp, offset, vlen);
+       trace_read_done(rqstp, fhp, offset, *count);
 
        return err;
 }
@@ -1061,18 +1061,18 @@ nfsd_write(struct svc_rqst *rqstp, struct svc_fh *fhp, loff_t offset,
        struct file *file = NULL;
        __be32 err = 0;
 
-       trace_write_start(rqstp, fhp, offset, vlen);
+       trace_write_start(rqstp, fhp, offset, *cnt);
 
        err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_WRITE, &file);
        if (err)
                goto out;
 
-       trace_write_opened(rqstp, fhp, offset, vlen);
+       trace_write_opened(rqstp, fhp, offset, *cnt);
        err = nfsd_vfs_write(rqstp, fhp, file, offset, vec, vlen, cnt, stable);
-       trace_write_io_done(rqstp, fhp, offset, vlen);
+       trace_write_io_done(rqstp, fhp, offset, *cnt);
        fput(file);
 out:
-       trace_write_done(rqstp, fhp, offset, vlen);
+       trace_write_done(rqstp, fhp, offset, *cnt);
        return err;
 }