summaryrefslogtreecommitdiffstats
path: root/testsuite/buildok/vfs_testcase.stp
diff options
context:
space:
mode:
authorroot <root@srdronam.in.ibm.com>2008-06-27 13:57:52 +0530
committerroot <root@srdronam.in.ibm.com>2008-06-27 13:57:52 +0530
commit471ca45b8e46177b5ee2f1f7eb4bf7d7881793df (patch)
tree725d6d201f858762753e4f8da441c0f9f6e062be /testsuite/buildok/vfs_testcase.stp
parent93126f9efcd0511e2034a44fe8e5dfdcb80095af (diff)
downloadsystemtap-steved-471ca45b8e46177b5ee2f1f7eb4bf7d7881793df.tar.gz
systemtap-steved-471ca45b8e46177b5ee2f1f7eb4bf7d7881793df.tar.xz
systemtap-steved-471ca45b8e46177b5ee2f1f7eb4bf7d7881793df.zip
This commit makes changes to the VFS tapset. The changes include deprecation of
some old probe points to older versions of kernel, adding new helper C functions and probe points for the VFS subsystem. A new testcase is created for the VFS tapset which performs a compile test (i.e. up4) on the probe points to verify sanity. These details can also be found in the ChangeLog.
Diffstat (limited to 'testsuite/buildok/vfs_testcase.stp')
-rw-r--r--testsuite/buildok/vfs_testcase.stp461
1 files changed, 461 insertions, 0 deletions
diff --git a/testsuite/buildok/vfs_testcase.stp b/testsuite/buildok/vfs_testcase.stp
new file mode 100644
index 00000000..dc78399c
--- /dev/null
+++ b/testsuite/buildok/vfs_testcase.stp
@@ -0,0 +1,461 @@
+#! stap -up4
+probe generic.fop.llseek
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("file = %p\n", file);
+ print("offset = %ll\n", offset);
+ print("origin = %d\n", origin);
+ print("maxbyte = %l\n", maxbyte);
+}
+
+probe generic.fop.llseek.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe generic.fop.aio_read
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("file = %p\n", file);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("pos = %ll\n", pos);
+ print("size = %l\n", size);
+ print("buf = %p\n", buf);
+}
+
+probe generic.fop.aio_read.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe generic.fop.aio_write
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("file = %p\n", file);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("pos = %ll\n", pos);
+ print("size = %l\n", size);
+ print("buf = %p\n", buf);
+}
+
+probe generic.fop.aio_write.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+%( kernel_v < "2.6.19" %?
+probe generic.fop.readv
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %lu\n", size);
+ print("pos = %ll\n", pos);
+}
+
+probe generic.fop.readv.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe generic.fop.writev
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %lu\n", size);
+ print("pos = %ll\n", pos);
+}
+
+probe generic.fop.writev.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+%:
+%)
+
+probe generic.fop.mmap
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("file = %p\n", file);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("vm_start = %lu\n", vm_start);
+ print("vm_end = %lu\n", vm_end);
+ print("vm_flags = %lu\n", vm_flags);
+}
+
+probe generic.fop.mmap.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe generic.fop.open
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %lu\n", size);
+ print("filename: %s\n", filename);
+ print("flag = %u\n", flag);
+}
+
+probe generic.fop.open.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+%( kernel_v < "2.6.23" %?
+probe generic.fop.sendfile
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("file = %p\n", file);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("pos = %ll\n", pos);
+ print("size = %l\n", size);
+}
+
+probe generic.fop.sendfile.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+%)
+
+
+probe generic.fop.splice_read
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("file = %p\n", file);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+ print("flags = %u\n", flags);
+}
+
+probe generic.fop.splice_read.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe generic.fop.splice_write
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("file = %p\n", file);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+ print("flags = %u\n", flags);
+}
+
+probe generic.fop.splice_write.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+%( kernel_v < "2.6.19" %?
+probe generic.fop.read
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("file = %p\n", file);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+}
+
+probe generic.fop.read.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe generic.fop.write
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+}
+
+probe generic.fop.write.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+%)
+
+probe generic.aop.writepages
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+}
+
+probe generic.aop.writepages.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe vfs.do_sync_read
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+ print("pos = %ll\n", pos);
+ print("buf = %u\n", buf);
+}
+
+probe vfs.do_sync_read.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe vfs.do_sync_write
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+ print("pos = %ll\n", pos);
+ print("buf = %u\n", buf);
+}
+
+probe vfs.do_sync_write.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe vfs.block_sync_page
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+ print("page_index = %l\n", page_index);
+}
+
+probe vfs.block_sync_page.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+
+probe vfs.__set_page_dirty_buffers
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+ print("index = %l\n", index);
+}
+
+probe vfs.__set_page_dirty_buffers.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe vfs.do_mpage_readpage
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("size = %l\n", size);
+ print("index = %l\n", index);
+}
+
+probe vfs.do_mpage_readpage.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe vfs.add_to_page_cache
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("index = %ll\n", index);
+ print("nrpages = %lu\n", nrpages);
+}
+
+probe vfs.add_to_page_cache.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe vfs.remove_from_page_cache
+{
+ print("Probe hit the function: %s\n", name);
+ print("Probe function argstr: %s\n", argstr);
+ print("dev = %l\n", dev);
+ print("devname = %s\n", devname);
+ print("ino = %l\n", ino);
+ print("index = %ll\n", index);
+}
+
+probe vfs.remove_from_page_cache.return
+{
+ print("Probe return from function: %s with return value = %s\n", name, retstr);
+}
+
+probe vfs.read
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("pos = %p\n", pos);
+ print("buf = %p\n", buf);
+}
+
+probe vfs.read.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+
+probe vfs.readv
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("pos = %p\n", pos);
+ print("vec = %p\n", vec);
+ print("vlen = %lu\n", vlen);
+}
+
+probe vfs.readv.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+
+probe vfs.write
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("pos = %p\n", pos);
+ print("buf = %p\n", buf);
+}
+
+probe vfs.write.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+
+probe vfs.writev
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("pos = %p\n", pos);
+ print("vec = %p\n", vec);
+ print("vlen = %lu\n", vlen);
+}
+
+probe vfs.writev.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+
+probe _vfs.generic_file_readonly_mmap
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("vma = %p\n", vma);
+}
+
+probe _vfs.generic_file_readonly_mmap.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+
+probe _vfs.generic_block_bmap
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("mapping = %p\n", mapping);
+ print("block = %llu\n", block);
+ print("get_block = %p\n", get_block);
+}
+
+probe _vfs.generic_commit_write
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("page = %p\n", page);
+ print("from = %u to=%u\n", from, to);
+}
+
+probe _vfs.block_prepare_write
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("_inode = %p\n", _inode);
+ print("page = %p\n", page);
+ print("write_from = %u write_upto=%u\n", write_from, write_upto);
+}
+probe _vfs.block_prepare_write.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+
+probe _vfs.block_write_begin
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("pos = %llu\n", pos);
+ print("len = %u\n", len);
+ print("flags = %u\n", flags);
+ print("_inode = %l\n", _inode);
+}
+probe _vfs.block_write_begin.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+
+probe _vfs.block_write_end
+{
+ print("Probe hit the function: %s\n", probefunc());
+ print("file = %p\n", file);
+ print("pos = %llu\n", pos);
+ print("len = %u\n", len);
+ print("page = %p\n", page);
+ print("_inode = %l\n", _inode);
+}
+
+probe _vfs.block_write_end.return
+{
+ print("Probe return from function: %s with return value = %s\n", probefunc(), ret);
+}
+