summaryrefslogtreecommitdiffstats
path: root/lket.5.in
diff options
context:
space:
mode:
authorguanglei <guanglei>2006-09-12 09:31:14 +0000
committerguanglei <guanglei>2006-09-12 09:31:14 +0000
commit4a6a795144366840a183f18956a28eefbd5519cc (patch)
tree33b66c1b15f911e162bbc25704fcd6f9b4709fd6 /lket.5.in
parentcf2c2c24c04938193fa64684745eb0356f9b0848 (diff)
downloadsystemtap-steved-4a6a795144366840a183f18956a28eefbd5519cc.tar.gz
systemtap-steved-4a6a795144366840a183f18956a28eefbd5519cc.tar.xz
systemtap-steved-4a6a795144366840a183f18956a28eefbd5519cc.zip
src/lket.5.in:
document nfs trace hooks tapset/nfsd.stp, tapset/nfs_proc.stp, tapset/nfs.stp: Change NFS file identifier. Change NFS version data type from String to INT. Add version variable to nfs_open and nfs_release. LKET/iosyscall.stp: change log_iosyscall_sync() be sync with different timing methods. LKET/utils.stp: add reset_maxaction() since there are too many functions called inside "probe begin". LKET/nfsd.stp, LKET/nfs_proc.stp, LKET/nfs.stp: New trace hooks for NFS, including both NFS client and server side activities. LKET/register_event.stp: Add the register event calls for NFS trace hooks.
Diffstat (limited to 'lket.5.in')
-rw-r--r--lket.5.in533
1 files changed, 533 insertions, 0 deletions
diff --git a/lket.5.in b/lket.5.in
index eb802d59..2ae5305a 100644
--- a/lket.5.in
+++ b/lket.5.in
@@ -479,6 +479,539 @@ Data format is:
.I common_data, ctx_id(INT64), iocb_uaddr(INT64), result_uaddr(INT64)
+.SS NFS (GROUPID=16)
+You could use
+.I addevent.nfs
+to trace the detail activities of nfs on client side.
+It divided into three groups: nfs file operation event hooks(addevent.nfs.fop),
+nfs address space operation event hooks(addevent.nfs.aop), nfs proc event hooks(addevent.nfs.proc).
+It contains 36 entry hooks and 33 corresponding return hooks
+
+All the return hooks will only log the common_data and
+the return value. So in the following subsections, only the entry
+hooks will be listed:
+
+.P
+.TP
+.B addevent.nfs.fop.llseek.entry (HOOKID=1)
+the entry of nfs_file_llseek
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I offset(INT32), origin(INR8)
+
+.TP
+.B addevent.nfs.fop.read.entry (HOOKID=3)
+the entry of do_sync_read
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I buf_addr(INT64), count(INT64) , offset(INT64)
+
+.TP
+.B addevent.nfs.fop.write.entry (HOOKID=5)
+the entry of do_sync_write
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I buf_addr(INT64), count(INT64) , offset(INT64)
+
+.TP
+.B addevent.nfs.fop.aio_read.entry (HOOKID=7)
+the entry of nfs_file_read
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I buf_addr(INT64), count(INT64) , offset(INT64)
+
+.TP
+.B addevent.nfs.fop.aio_write.entry (HOOKID=9)
+the entry of nfs_file_read
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I buf_addr(INT64), count(INT64) , offset(INT64)
+
+.TP
+.B addevent.nfs.fop.mmap.entry (HOOKID=11)
+the entry of nfs_file_mmap
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I vm_start(INT64), vm_end(INT64) , vm_flags(INT32)
+
+.TP
+.B addevent.nfs.fop.open.entry (HOOKID=13)
+the entry of nfs_file_open
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I flag(INT32), filename(STRING)
+
+.TP
+.B addevent.nfs.fop.flush.entry (HOOKID=15)
+the entry of nfs_file_flush
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I ndirty(INT32)
+
+.TP
+.B addevent.nfs.fop.release.entry (HOOKID=17)
+the entry of nfs_file_release
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I mode(INT16)
+
+.TP
+.B addevent.nfs.fop.fsync.entry (HOOKID=19)
+the entry of nfs_fsync
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I ndirty(INT32)
+
+.TP
+.B addevent.nfs.fop.lock.entry (HOOKID= 21)
+the entry of nfs_lock
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I fl_start(INT64), fl_end(INT64), fl_type(INT8), fl_flag(INT8), cmd(INT32)
+
+.TP
+.B addevent.nfs.fop.sendfile.entry (HOOKID= 23)
+the entry of nfs_file_sendfile
+
+Data format is:
+
+.I common_data, major_device(INT8), minor_devide(INT8), fileid(INT32),
+.I count(INT64), ppos(INT64)
+
+.TP
+.B addevent.nfs.fop.checkflags.entry (HOOKID= 25)
+the entry of nfs_check_flags
+
+Data format is:
+
+.I flag(INT32)
+
+.TP
+.B addevent.nfs.aop.readpage.entry (HOOKID= 27)
+the entry of nfs_readpage
+
+Data format is:
+
+.I fileid(INT64), rsize(INT32), page_address(INT64), page_index(INT64)
+
+.TP
+.B addevent.nfs.aop.readpages.entry (HOOKID= 29)
+the entry of nfs_readpages
+
+Data format is:
+
+.I fileid(INT64), rpages(INT32), nr_pages(INT32)
+
+.TP
+.B addevent.nfs.aop.writepage.entry (HOOKID= 31)
+the entry of nfs_writepage
+
+Data format is:
+
+.I fileid(INT64), wsize(INT32), page_address(INT64), page_index(INT64)
+
+.TP
+.B addevent.nfs.aop.writepages.entry (HOOKID= 33)
+the entry of nfs_writepages
+
+Data format is:
+
+.I fileid(INT64), wpages(INT32), nr_to_write(INT64)
+
+.TP
+.B addevent.nfs.aop.prepare_write.entry (HOOKID= 35)
+the entry of nfs_prepare_write
+
+Data format is:
+
+.I fileid(INT64), page_address(INT64), page_index(INT64)
+
+.TP
+.B addevent.nfs.aop.commit_write.entry (HOOKID= 37)
+the entry of nfs_commit_write
+
+Data format is:
+
+.I fileid(INT64), page_address(INT64), page_index(INT64),offset(INT32),count(INT32)
+
+.TP
+.B addevent.nfs.aop.set_page_dirty.entry (HOOKID= 39)
+the entry of __set_page_dirty_nobuffers
+
+Data format is:
+
+.I page_address(INT64), page_flag(INT8)
+
+.TP
+.B addevent.nfs.aop.release_page.entry (HOOKID= 41)
+the entry of nfs_release_page
+
+Data format is:
+
+.I page_address(INT64), page_index(INT64)
+
+.TP
+.B addevent.nfs.proc.lookup.entry (HOOKID= 43)
+the entry of nfs_proc_lookup , nfs3_proc_lookup and nfs4_proc_lookup
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I filename(STRING)
+
+.TP
+.B addevent.nfs.proc.read.entry (HOOKID= 45)
+the entry of nfs_proc_read, nfs3_proc_read and nfs4_proc_read
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I count(INT32),offset(INT64)
+
+.TP
+.B addevent.nfs.proc.write.entry (HOOKID= 47)
+the entry of nfs_proc_write, nfs3_proc_write and nfs4_proc_write
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I count(INT32),offset(INT64)
+
+.TP
+.B addevent.nfs.proc.commit.entry (HOOKID= 49)
+Fires when client writes the buffered data to disk,the buffered data is asynchronously written by client before .
+The commit function works in sync way,not exist in NFSV2
+
+the entry of nfs3_proc_commit and nfs4_proc_commit
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I count(INT32),offset(INT64)
+
+.TP
+.B addevent.nfs.proc.read_setup.entry (HOOKID= 51)
+The read_setup function is used to setup a read rpc task,not do a real read operation
+
+the entry of nfs_proc_read_setup, nfs3_proc_read_setup and nfs4_proc_read_setup
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I count(INT32),offset(INT64)
+
+.TP
+.B addevent.nfs.proc.write_setup.entry (HOOKID= 52)
+The write_setup function is used to setup a write rpc task,not do a real write operation
+
+the entry of nfs_proc_write_setup, nfs3_proc_write_setup and nfs4_proc_write_setup
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I how(INT8), count(INT32),offset(INT64)
+
+.TP
+.B addevent.nfs.proc.commit_setup.entry (HOOKID= 53)
+The commit_setup function is used to setup a commit rpc task,not do a real commit operation.It is not exist in NFSV2
+
+the entry of nfs3_proc_commit_setup and nfs4_proc_commit_setup
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I how(INT8), count(INT32),offset(INT64)
+
+.TP
+.B addevent.nfs.proc.read_done.entry (HOOKID= 54)
+Fires when a read reply is received or some read error occur (timeout or socket shutdown)
+
+the entry of nfs_read_done, nfs3_read_done and nfs4_read_done
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I status(INT32), count(INT32)
+
+.TP
+.B addevent.nfs.proc.write_done.entry (HOOKID= 56)
+Fires when a write reply is received or some write error occur (timeout or socket shutdown)
+
+the entry of nfs_write_done, nfs3_write_done and nfs4_write_done
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I status(INT32), count(INT32)
+
+.TP
+.B addevent.nfs.proc.commit_done.entry (HOOKID= 58)
+Fires when a commit reply is received or some commit operation error occur (timeout or socket shutdown)
+
+the entry of nfs_commit_done, nfs3_commit_done and nfs4_commit_done
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I status(INT32), count(INT32)
+
+.TP
+.B addevent.nfs.proc.open.entry (HOOKID= 60)
+the entry of nfs_open
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I filename(STRING), flag(INT32), mode(INT32)
+
+.TP
+.B addevent.nfs.proc.release.entry (HOOKID= 62)
+the entry of nfs_release
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I filename(STRING), flag(INT32), mode(INT32)
+
+.TP
+.B addevent.nfs.proc.create.entry (HOOKID= 64)
+the entry of nfs_proc_create, nfs3_proc_create, nfs4_proc_create
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I filename(STRING), mode(INT32)
+
+.TP
+.B addevent.nfs.proc.rename.entry (HOOKID= 66)
+the entry of nfs_proc_rename, nfs3_proc_rename, nfs4_proc_rename
+
+Data format is:
+
+.I version(INT8), major_old(INT8), minor_old(INT8), old_fileid(INT64), old_name(STRING),
+.I major_new(INT8), minor_new(INT8), new_fileid(INT64), new_name(STRING)
+
+.TP
+.B addevent.nfs.proc.remove.entry (HOOKID= 68)
+the entry of nfs_proc_remove, nfs3_proc_remove, nfs4_proc_remove
+
+Data format is:
+
+.I major_dev(INT8), minor_dev(INT8), fileid(INT64), version(INT8),
+.I filename(STRING)
+
+.SS NFSD (GROUPID=17)
+You could use
+.I addevent.nfsd
+to trace the detail activities of nfs on server side.
+It divided into two groups: nfsd operation event hooks(addevent.nfsd.op),
+nfsd proc event hooks(addevent.nfsd.proc).
+It contains 19 entry hooks and 19 corresponding return hooks
+
+All the return hooks will only log the common_data and
+the return value. So in the following subsections, only the entry
+hooks will be listed:
+
+.P
+.TP
+.B addevent.nfsd.dispatch.entry (HOOKID= 1)
+Fires when server receives a NFS operation from client
+
+the entry of nfsd_dispatch
+
+Data format is:
+
+.I proto(INT8), version(INT8), xid(INT32), proc(INT32),client_ip(INT32)
+
+.TP
+.B addevent.nfsd.open.entry (HOOKID= 3)
+the entry of nfsd_open
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I type(INT32), access(INT32)
+
+.TP
+.B addevent.nfsd.read.entry (HOOKID= 5)
+the entry of nfsd_read
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I count(INT64), offset(INT64), iov_len(INT64), vlen(INT64)
+
+.TP
+.B addevent.nfsd.write.entry (HOOKID= 7)
+the entry of nfsd_write
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I count(INT64), offset(INT64), iov_len(INT64), vlen(INT64)
+
+.TP
+.B addevent.nfsd.lookup.entry (HOOKID= 9)
+the entry of nfsd_lookup
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I filename(STRING)
+
+.TP
+.B addevent.nfsd.commit.entry (HOOKID= 11)
+the entry of nfsd_commit
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I count(INT64), offset(INT64)
+
+.TP
+.B addevent.nfsd.create.entry (HOOKID= 13)
+Fires when client creates a file(regular,dir,device,fifo) on server side,
+sometimes nfsd will call nfsd_create_v3 instead of this function
+
+the entry of nfsd_create
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I filename(STRING), type(INT32), iap_valid(INT16), iap_mode(INT32)
+
+.TP
+.B addevent.nfsd.createv3.entry (HOOKID= 15)
+Fires when client creates a regular file or set file attributes on server side,
+only called by nfsd3_proc_create and nfsd4_open(op_claim_type is NFS4_OPEN_CLAIM_NULL)
+
+the entry of nfsd_create_v3
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I filename(STRING), createmode(INT8), iap_valid(INT16), iap_mode(INT32)
+
+.TP
+.B addevent.nfsd.unlink.entry (HOOKID= 17)
+the entry of nfsd_unlink
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64),
+.I filename(STRING), type(INT32)
+
+.TP
+.B addevent.nfsd.rename.entry (HOOKID= 19)
+the entry of nfsd_rename
+
+Data format is:
+
+.I old_fhsize(INT8), old_fh0(INT64), old_fh1(INT64), old_fh2(INT64), old_name(STRING)
+.I new_fhsize(INT8), new_fh0(INT64), new_fh1(INT64), new_fh2(INT64), new_name(STRING)
+
+.TP
+.B addevent.nfsd.close.entry (HOOKID= 21)
+the entry of nfsd_close
+
+Data format is:
+
+.I filename(STRING)
+
+.TP
+.B addevent.nfsd.proc.lookup.entry (HOOKID= 23)
+the entry of nfsd_proc_lookup, nfsd3_proc_lookup
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64), version(INT8)
+.I filename(STRING)
+
+.TP
+.B addevent.nfsd.proc.read.entry (HOOKID= 25)
+the entry of nfsd_proc_read, nfsd3_proc_read
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64), version(INT8)
+.I count(INT64), offset(INT64), iov_len(INT64), vlen(INT64)
+
+.TP
+.B addevent.nfsd.proc.write.entry (HOOKID= 27)
+the entry of nfsd_proc_write, nfsd3_proc_write
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64), version(INT8)
+.I count(INT64), offset(INT64), iov_len(INT64), vlen(INT64)
+
+.TP
+.B addevent.nfsd.proc.commit.entry (HOOKID= 29)
+the entry of nfsd_proc_commit, nfsd3_proc_commit
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64), version(INT8)
+.I count(INT64), offset(INT64)
+
+.TP
+.B addevent.nfsd.proc.commit.entry (HOOKID= 31)
+the entry of nfsd4_proc_compound
+
+Data format is:
+
+.I number(INT32)
+
+.TP
+.B addevent.nfsd.proc.remove.entry (HOOKID= 33)
+the entry of nfsd4_proc_compound
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64), version(INT8)
+.I filename(STRING)
+
+.TP
+.B addevent.nfsd.proc.rename.entry (HOOKID= 35)
+the entry of nfsd_proc_rename, nfsd3_proc_rename
+
+Data format is:
+
+.I old_fhsize(INT8), old_fh0(INT64), old_fh1(INT64), old_fh2(INT64), old_name(STRING)
+.I new_fhsize(INT8), new_fh0(INT64), new_fh1(INT64), new_fh2(INT64), new_name(STRING)
+
+.TP
+.B addevent.nfsd.proc.create.entry (HOOKID= 37)
+the entry of nfsd_proc_create, nfsd3_proc_create
+
+Data format is:
+
+.I fh_size(INT8), fhandle0(INT64), fhandle1(INT64), fhandle2(INT64), version(INT8)
+.I filename(STRING)
+
+.TP
.SH TRACE DATA FORMAT
By default, LKET will log the trace data in binary format.