From 7fe8474a7a266329b32e4f64af7f642a591799d7 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Fri, 20 Jun 2008 15:06:42 -0400 Subject: Add test for dev.stp tapset functions. --- testsuite/systemtap.examples/ChangeLog | 4 ++++ testsuite/systemtap.examples/traceio2.meta | 13 +++++++++++++ testsuite/systemtap.examples/traceio2.stp | 20 ++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 testsuite/systemtap.examples/traceio2.meta create mode 100644 testsuite/systemtap.examples/traceio2.stp (limited to 'testsuite/systemtap.examples') diff --git a/testsuite/systemtap.examples/ChangeLog b/testsuite/systemtap.examples/ChangeLog index 7905119b..1f15cfd3 100644 --- a/testsuite/systemtap.examples/ChangeLog +++ b/testsuite/systemtap.examples/ChangeLog @@ -1,3 +1,7 @@ +2008-06-20 William Cohen + + * traceio2.stp, traceio2.meta: New. + 2008-06-18 William Cohen * sleepingBeauties.stp, sleepingBeauties.meta: New. diff --git a/testsuite/systemtap.examples/traceio2.meta b/testsuite/systemtap.examples/traceio2.meta new file mode 100644 index 00000000..89561e71 --- /dev/null +++ b/testsuite/systemtap.examples/traceio2.meta @@ -0,0 +1,13 @@ +title: Watch I/O Activity on a Particular Device +name: traceio2.stp +version: 1.0 +author: Red Hat +keywords: io +subsystem: io +status: production +exit: user-controlled +output: trace +scope: system-wide +description: Print out the executable name and process number as reads and writes to the specified device occur. +test_check: stap -p4 traceio2.stp `stat -c "0x%D" /` +test_installcheck: stap traceio2.stp `stat -c "0x%D" /` -c "sleep 1" diff --git a/testsuite/systemtap.examples/traceio2.stp b/testsuite/systemtap.examples/traceio2.stp new file mode 100644 index 00000000..656c38b3 --- /dev/null +++ b/testsuite/systemtap.examples/traceio2.stp @@ -0,0 +1,20 @@ +global device_of_interest + +probe begin { + /* The following is not the most efficient way to do this. + One could directly put the result of usrdev2kerndev() + into device_of_interest. However, want to test out + the other device functions */ + dev = usrdev2kerndev($1) + device_of_interest = MKDEV(MAJOR(dev), MINOR(dev)) +} + +probe kernel.function ("vfs_write"), + kernel.function ("vfs_read") +{ + dev_nr = $file->f_path->dentry->d_inode->i_sb->s_dev + + if (dev_nr == device_of_interest) + printf ("%s(%d) %s 0x%x\n", + execname(), pid(), probefunc(), dev_nr) +} -- cgit