summaryrefslogtreecommitdiffstats
path: root/tapset/nfs.stp
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 /tapset/nfs.stp
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 'tapset/nfs.stp')
-rw-r--r--tapset/nfs.stp45
1 files changed, 41 insertions, 4 deletions
diff --git a/tapset/nfs.stp b/tapset/nfs.stp
index 56054851..2bdd170f 100644
--- a/tapset/nfs.stp
+++ b/tapset/nfs.stp
@@ -84,6 +84,18 @@ function __nfs_server_rsize:long (inode:long) %{ /* pure */
THIS->__retvalue = NFS_SERVER(inode)->rsize;
%}
+/*Get version from struct inode*/
+function __nfs_version:long (inode:long) %{ /* pure */
+ struct inode * inode = (struct inode *)(THIS->inode);
+
+ if(inode == NULL)
+ {
+ THIS->__retvalue = -1;
+ return;
+ }
+ THIS->__retvalue = NFS_PROTO(inode)->version;
+%}
+
/*Get wsize from struct inode*/
function __nfs_server_wsize:long (inode:long) %{ /* pure */
struct inode * inode = (struct inode *)(THIS->inode);
@@ -273,6 +285,9 @@ probe nfs.fop.llseek = kernel.function ("nfs_file_llseek") ?,
{
dev = $filp->f_dentry->d_inode->i_sb->s_dev
ino = $filp->f_dentry->d_inode->i_ino
+ s_id = $filp->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
+
maxbyte = $filp->f_dentry->d_inode->i_sb->s_maxbytes
offset = $offset
origin = $origin
@@ -298,6 +313,8 @@ probe nfs.fop.llseek.return = kernel.function ("nfs_file_llseek").return ?,
*/
probe nfs.fop.read = vfs.do_sync_read
{
+ s_id = $filp->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
name = "nfs.fop.read"
}
@@ -318,6 +335,8 @@ probe nfs.fop.read.return = vfs.do_sync_read.return
probe nfs.fop.write = vfs.do_sync_write
{
+ s_id = $filp->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
name = "nfs.fop.write"
}
@@ -351,6 +370,8 @@ probe nfs.fop.aio_read = kernel.function ("nfs_file_read") ?,
{
dev = $iocb->ki_filp->f_dentry->d_inode->i_sb->s_dev
ino = $iocb->ki_filp->f_dentry->d_inode->i_ino
+ s_id = $iocb->ki_filp->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
count = $count
pos = $pos
@@ -404,6 +425,8 @@ probe nfs.fop.aio_write = kernel.function("nfs_file_write") ?,
{
dev = $iocb->ki_filp->f_dentry->d_inode->i_sb->s_dev
ino = $iocb->ki_filp->f_dentry->d_inode->i_ino
+ s_id = $iocb->ki_filp->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
count = $count
pos = $pos
@@ -458,6 +481,8 @@ probe nfs.fop.mmap = kernel.function("nfs_file_mmap") ?,
{
dev = $file->f_dentry->d_inode->i_sb->s_dev
ino = $file->f_dentry->d_inode->i_ino
+ s_id = $file->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
vm_start = $vma->vm_start
vm_end = $vma->vm_end
@@ -498,6 +523,8 @@ probe nfs.fop.open = kernel.function("nfs_file_open") ?,
{
dev = $filp->f_dentry->d_inode->i_sb->s_dev
ino = $inode->i_ino
+ s_id = $inode->i_sb->s_id
+ devname = kernel_string(s_id)
filename = kernel_string($filp->f_dentry->d_name->name)
flag = $filp->f_flags
@@ -531,6 +558,8 @@ probe nfs.fop.flush = kernel.function("nfs_file_flush") ?,
{
dev = $file->f_dentry->d_inode->i_sb->s_dev
ino = $file->f_dentry->d_inode->i_ino;
+ s_id = $file->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
mode = $file->f_mode
ndirty = __nfsi_ndirty($file->f_dentry->d_inode)
@@ -561,6 +590,8 @@ probe nfs.fop.release = kernel.function("nfs_file_release") ?,
{
dev = $filp->f_dentry->d_inode->i_sb->s_dev
ino = $inode->i_ino
+ s_id = $inode->i_sb->s_id
+ devname = kernel_string(s_id)
mode = $filp->f_mode
@@ -590,6 +621,8 @@ probe nfs.fop.fsync = kernel.function("nfs_fsync") ?,
{
dev = $file->f_dentry->d_inode->i_sb->s_dev
ino = $file->f_dentry->d_inode->i_ino
+ s_id = $file->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
ndirty = __nfsi_ndirty($file->f_dentry->d_inode)
@@ -624,6 +657,8 @@ probe nfs.fop.lock = kernel.function("nfs_lock") ?,
{
dev = $filp->f_dentry->d_inode->i_sb->s_dev
ino = $filp->f_dentry->d_inode->i_ino
+ s_id = $filp->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
i_mode = $filp->f_dentry->d_inode->i_mode
cmd = $cmd
@@ -669,6 +704,8 @@ probe nfs.fop.sendfile = kernel.function("nfs_file_sendfile") ?,
dev = $filp->f_dentry->d_inode->i_sb->s_dev
ino = $filp->f_dentry->d_inode->i_ino
+ s_id = $filp->f_dentry->d_inode->i_sb->s_id
+ devname = kernel_string(s_id)
count = $count
ppos = __d_loff_t($ppos)
@@ -801,11 +838,11 @@ probe nfs.aop.readpage.return = kernel.function ("nfs_readpage").return ?,
* Arguments:
* dev : device identifier
* ino : inode number
- * nr_pages : number of pages to be read in this execution
+ * nr_pages : number of pages attempted to read in this execution
* file : filp argument
* rpages : read size (in pages)
* rsize : read size (in bytes)
- * size : number of pages to be read in this execution
+ * size : number of pages attempted to read in this execution
*/
probe nfs.aop.readpages = kernel.function ("nfs_readpages") ?,
module("nfs").function ("nfs_readpages") ?
@@ -939,8 +976,8 @@ probe nfs.aop.writepage.return = kernel.function ("nfs_writepage").return ?,
* The priority of wb is decided by above two flags
* wsize : write size
* wpages : write size (in pages)
- * nr_to_write : number of pages to be written in this execution
- * size : number of pages to be written in this execution
+ * nr_to_write : number of pages attempted to be written in this execution
+ * size : number of pages attempted to be written in this execution
*/
probe nfs.aop.writepages = kernel.function ("nfs_writepages") ?,
module("nfs").function ("nfs_writepages") ?