Skip to content

Commit

Permalink
NFS: Clean up generic file read tracepoints
Browse files Browse the repository at this point in the history
Clean up the generic file read tracepoints so they do pass the
full structures as arguments. Also ensure we report the number
of bytes actually read.

Signed-off-by: Trond Myklebust <[email protected]>
Signed-off-by: Anna Schumaker <[email protected]>
  • Loading branch information
trondmy authored and amschuma-ntap committed Jan 15, 2020
1 parent 0722dc9 commit 2343172
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 26 deletions.
56 changes: 33 additions & 23 deletions fs/nfs/nfstrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -820,75 +820,85 @@ TRACE_EVENT(nfs_sillyrename_unlink,

TRACE_EVENT(nfs_initiate_read,
TP_PROTO(
const struct inode *inode,
loff_t offset, unsigned long count
const struct nfs_pgio_header *hdr
),

TP_ARGS(inode, offset, count),
TP_ARGS(hdr),

TP_STRUCT__entry(
__field(loff_t, offset)
__field(unsigned long, count)
__field(dev_t, dev)
__field(u32, fhandle)
__field(u64, fileid)
__field(loff_t, offset)
__field(u32, count)
),

TP_fast_assign(
const struct inode *inode = hdr->inode;
const struct nfs_inode *nfsi = NFS_I(inode);
const struct nfs_fh *fh = hdr->args.fh ?
hdr->args.fh : &nfsi->fh;

__entry->offset = offset;
__entry->count = count;
__entry->offset = hdr->args.offset;
__entry->count = hdr->args.count;
__entry->dev = inode->i_sb->s_dev;
__entry->fileid = nfsi->fileid;
__entry->fhandle = nfs_fhandle_hash(&nfsi->fh);
__entry->fhandle = nfs_fhandle_hash(fh);
),

TP_printk(
"fileid=%02x:%02x:%llu fhandle=0x%08x "
"offset=%lld count=%lu",
"offset=%lld count=%u",
MAJOR(__entry->dev), MINOR(__entry->dev),
(unsigned long long)__entry->fileid,
__entry->fhandle,
__entry->offset, __entry->count
(long long)__entry->offset, __entry->count
)
);

TRACE_EVENT(nfs_readpage_done,
TP_PROTO(
const struct inode *inode,
int status, loff_t offset, bool eof
const struct rpc_task *task,
const struct nfs_pgio_header *hdr
),

TP_ARGS(inode, status, offset, eof),
TP_ARGS(task, hdr),

TP_STRUCT__entry(
__field(int, status)
__field(loff_t, offset)
__field(bool, eof)
__field(dev_t, dev)
__field(u32, fhandle)
__field(u64, fileid)
__field(loff_t, offset)
__field(u32, arg_count)
__field(u32, res_count)
__field(bool, eof)
__field(int, status)
),

TP_fast_assign(
const struct inode *inode = hdr->inode;
const struct nfs_inode *nfsi = NFS_I(inode);

__entry->status = status;
__entry->offset = offset;
__entry->eof = eof;
const struct nfs_fh *fh = hdr->args.fh ?
hdr->args.fh : &nfsi->fh;

__entry->status = task->tk_status;
__entry->offset = hdr->args.offset;
__entry->arg_count = hdr->args.count;
__entry->res_count = hdr->res.count;
__entry->eof = hdr->res.eof;
__entry->dev = inode->i_sb->s_dev;
__entry->fileid = nfsi->fileid;
__entry->fhandle = nfs_fhandle_hash(&nfsi->fh);
__entry->fhandle = nfs_fhandle_hash(fh);
),

TP_printk(
"fileid=%02x:%02x:%llu fhandle=0x%08x "
"offset=%lld status=%d%s",
"offset=%lld count=%u res=%u status=%d%s",
MAJOR(__entry->dev), MINOR(__entry->dev),
(unsigned long long)__entry->fileid,
__entry->fhandle,
__entry->offset, __entry->status,
(long long)__entry->offset, __entry->arg_count,
__entry->res_count, __entry->status,
__entry->eof ? " eof" : ""
)
);
Expand Down
5 changes: 2 additions & 3 deletions fs/nfs/read.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ static void nfs_initiate_read(struct nfs_pgio_header *hdr,

task_setup_data->flags |= swap_flags;
rpc_ops->read_setup(hdr, msg);
trace_nfs_initiate_read(inode, hdr->io_start, hdr->good_bytes);
trace_nfs_initiate_read(hdr);
}

static void
Expand Down Expand Up @@ -247,8 +247,7 @@ static int nfs_readpage_done(struct rpc_task *task,
return status;

nfs_add_stats(inode, NFSIOS_SERVERREADBYTES, hdr->res.count);
trace_nfs_readpage_done(inode, task->tk_status,
hdr->args.offset, hdr->res.eof);
trace_nfs_readpage_done(task, hdr);

if (task->tk_status == -ESTALE) {
set_bit(NFS_INO_STALE, &NFS_I(inode)->flags);
Expand Down

0 comments on commit 2343172

Please sign in to comment.