summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWenji Huang <wenji.huang@oracle.com>2009-12-02 17:45:20 +0800
committerWenji Huang <wenji.huang@oracle.com>2009-12-02 17:45:20 +0800
commit379c58568dbb247ed6583434ff4658c0794b977d (patch)
treef873d8e31103b635f8dec236ce328e4f51fd8333
parentae3d9351dec2533ffa4c55b3d7543d5b270efec7 (diff)
downloadsystemtap-steved-379c58568dbb247ed6583434ff4658c0794b977d.tar.gz
systemtap-steved-379c58568dbb247ed6583434ff4658c0794b977d.tar.xz
systemtap-steved-379c58568dbb247ed6583434ff4658c0794b977d.zip
Make tapset and tests compatible with old kernel
* tapset/ioscheduler.stp : Make probe optional. * tapset/irq.stp : Ditto. * tapset/scheduler.stp : Ditto. * tapset/tcpmib.stp : Ditto. * tapset/linuxmib.stp : Switch variable by version. * tapset/tty.stp : Ditto. * testsuite/buildok/irq.stp : Make probe test optional. * testsuite/buildok/tty.stp : Ditto. * testsuite/systemtap.examples/network/netdev.stp : Ditto. * testsuite/buildok/tcpmib-all-probes.stp : Add embedded functions.
-rw-r--r--tapset/ioscheduler.stp16
-rw-r--r--tapset/irq.stp16
-rw-r--r--tapset/linuxmib.stp4
-rw-r--r--tapset/scheduler.stp7
-rw-r--r--tapset/tcpmib.stp16
-rw-r--r--tapset/tty.stp34
-rw-r--r--testsuite/buildok/irq.stp6
-rwxr-xr-xtestsuite/buildok/tcpmib-all-probes.stp22
-rwxr-xr-xtestsuite/buildok/tty.stp8
-rwxr-xr-xtestsuite/systemtap.examples/network/netdev.stp4
10 files changed, 94 insertions, 39 deletions
diff --git a/tapset/ioscheduler.stp b/tapset/ioscheduler.stp
index 7f26cf23..9b353577 100644
--- a/tapset/ioscheduler.stp
+++ b/tapset/ioscheduler.stp
@@ -155,7 +155,7 @@ probe ioscheduler.elv_completed_request
*
*/
probe ioscheduler.elv_add_request.tp
- = kernel.trace("block_rq_insert")
+ = kernel.trace("block_rq_insert") ?
{
q = $q
elevator_name = kernel_string($q->elevator->elevator_type->elevator_name)
@@ -197,7 +197,7 @@ probe ioscheduler.elv_add_request =
*
*/
probe ioscheduler_trace.elv_completed_request
- = kernel.trace("block_rq_complete")
+ = kernel.trace("block_rq_complete") ?
{
elevator_name = kernel_string($q->elevator->elevator_type->elevator_name)
rq = $rq
@@ -224,7 +224,7 @@ rq_flags = $rq==0? 0:$rq->cmd_flags
*
*/
probe ioscheduler_trace.elv_issue_request
- = kernel.trace("block_rq_issue")
+ = kernel.trace("block_rq_issue") ?
{
elevator_name = kernel_string($q->elevator->elevator_type->elevator_name)
rq = $rq
@@ -251,7 +251,7 @@ rq_flags = $rq==0? 0:$rq->cmd_flags
*
*/
probe ioscheduler_trace.elv_requeue_request
- = kernel.trace("block_rq_requeue")
+ = kernel.trace("block_rq_requeue") ?
{
elevator_name = kernel_string($q->elevator->elevator_type->elevator_name)
rq = $rq
@@ -277,7 +277,7 @@ rq_flags = $rq==0? 0:$rq->cmd_flags
*
*/
probe ioscheduler_trace.elv_abort_request
- = kernel.trace("block_rq_abort")
+ = kernel.trace("block_rq_abort") ?
{
elevator_name = kernel_string($q->elevator->elevator_type->elevator_name)
rq = $rq
@@ -299,7 +299,7 @@ rq_flags = $rq==0? 0:$rq->cmd_flags
* @rq_queue : request queue
*
*/
-probe ioscheduler_trace.plug = kernel.trace("block_plug")
+probe ioscheduler_trace.plug = kernel.trace("block_plug") ?
{
rq_queue = $q
}
@@ -311,7 +311,7 @@ probe ioscheduler_trace.plug = kernel.trace("block_plug")
* @rq_queue : request queue
*
*/
-probe ioscheduler_trace.unplug_io = kernel.trace("block_unplug_io")
+probe ioscheduler_trace.unplug_io = kernel.trace("block_unplug_io") ?
{
rq_queue = $q
}
@@ -322,7 +322,7 @@ probe ioscheduler_trace.unplug_io = kernel.trace("block_unplug_io")
* @rq_queue : request queue
*
*/
-probe ioscheduler_trace.unplug_timer = kernel.trace("block_unplug_timer")
+probe ioscheduler_trace.unplug_timer = kernel.trace("block_unplug_timer") ?
{
rq_queue = $q
}
diff --git a/tapset/irq.stp b/tapset/irq.stp
index 6a9b9147..5d919659 100644
--- a/tapset/irq.stp
+++ b/tapset/irq.stp
@@ -17,7 +17,7 @@
* @wq_thread : task_struct of the workqueue thread.
* @cpu : cpu for which the worker thread is created.
*/
-probe workqueue.create = kernel.trace("workqueue_creation")
+probe workqueue.create = kernel.trace("workqueue_creation") ?
{
wq_thread = $wq_thread
cpu = $cpu
@@ -29,7 +29,7 @@ probe workqueue.create = kernel.trace("workqueue_creation")
* @work : work_struct* being queued.
* @work_func : pointer to handler func.
*/
-probe workqueue.insert = kernel.trace("workqueue_insertion")
+probe workqueue.insert = kernel.trace("workqueue_insertion") ?
{
wq_thread = $wq_thread
work = $work
@@ -42,7 +42,7 @@ probe workqueue.insert = kernel.trace("workqueue_insertion")
* @work : work_struct* being executed.
* @work_func : pointer to handler func.
*/
-probe workqueue.execute = kernel.trace("workqueue_execution")
+probe workqueue.execute = kernel.trace("workqueue_execution") ?
{
wq_thread = $wq_thread
work = $work
@@ -53,7 +53,7 @@ probe workqueue.execute = kernel.trace("workqueue_execution")
* probe workqueue.destroy : probes destruction of each worker thread of each cpu for a workqueue.
* @wq_thread : task_struct of the workqueue thread.
*/
-probe workqueue.destroy = kernel.trace("workqueue_destruction")
+probe workqueue.destroy = kernel.trace("workqueue_destruction") ?
{
wq_thread = $wq_thread
}
@@ -84,7 +84,7 @@ probe workqueue.destroy = kernel.trace("workqueue_destruction")
* @thread : thread pointer for threaded interrupts.
* @thread_flags : Flags related to thread.
*/
-probe irq_handler.entry = kernel.trace("irq_handler_entry")
+probe irq_handler.entry = kernel.trace("irq_handler_entry") ?
{
irq = $irq
action = $action
@@ -125,7 +125,7 @@ probe irq_handler.entry = kernel.trace("irq_handler_entry")
* @thread : thread pointer for threaded interrupts.
* @thread_flags : Flags related to thread.
*/
-probe irq_handler.exit = kernel.trace("irq_handler_exit")
+probe irq_handler.exit = kernel.trace("irq_handler_exit") ?
{
irq = $irq
action = $action
@@ -150,7 +150,7 @@ probe irq_handler.exit = kernel.trace("irq_handler_exit")
* @vec : softirq_action vector.
* @action : pointer to softirq handler just about to execute.
*/
-probe softirq.entry = kernel.trace("softirq_entry")
+probe softirq.entry = kernel.trace("softirq_entry") ?
{
h = $h
vec = $vec
@@ -164,7 +164,7 @@ probe softirq.entry = kernel.trace("softirq_entry")
* @vec : softirq_action vector.
* @action : pointer to softirq handler that just finished execution.
*/
-probe softirq.exit = kernel.trace("softirq_exit")
+probe softirq.exit = kernel.trace("softirq_exit") ?
{
h = $h
vec = $vec
diff --git a/tapset/linuxmib.stp b/tapset/linuxmib.stp
index e19755a9..90145b62 100644
--- a/tapset/linuxmib.stp
+++ b/tapset/linuxmib.stp
@@ -94,7 +94,11 @@ probe linuxmib.ListenDrops=kernel.function("tcp_v4_syn_recv_sock").return
*/
probe linuxmib.TCPMemoryPressures=kernel.function("tcp_enter_memory_pressure")
{
+%( kernel_v >= "2.6.27" %?
sk = $sk
+%:
+ sk = 0;
+%)
op = 1;
if ( $tcp_memory_pressure ) next
key = linuxmib_filter_key(sk,op);
diff --git a/tapset/scheduler.stp b/tapset/scheduler.stp
index 324aa769..1610dc0a 100644
--- a/tapset/scheduler.stp
+++ b/tapset/scheduler.stp
@@ -285,7 +285,11 @@ probe __scheduler.migrate.kp1 = kernel.function("pull_task")
}
probe __scheduler.migrate.kp = kernel.function("set_task_cpu")
{
+%( kernel_v >= "2.6.23" %?
cpu_to = $new_cpu
+%:
+ cpu_to = $cpu
+%)
}
probe __scheduler.migrate.tp = kernel.trace("sched_migrate_task")
{
@@ -384,7 +388,8 @@ probe scheduler.process_fork
* @pid: pid of the process sending signal
* @signal_number: signal number
*/
-probe __scheduler.signal_send.kp = kernel.function("__send_signal")
+probe __scheduler.signal_send.kp = kernel.function("__send_signal") !,
+ kernel.function("send_signal")
{
pid = $t->tgid
}
diff --git a/tapset/tcpmib.stp b/tapset/tcpmib.stp
index 8b443309..497fb7dd 100644
--- a/tapset/tcpmib.stp
+++ b/tapset/tcpmib.stp
@@ -99,6 +99,16 @@ function tcpmib_remote_port:long(sk:long)
CATCH_DEREF_FAULT();
%}
+function tcpmib_filter_key:long (sk:long, op:long) {
+ // ensure all these functions will build
+ if ( tcpmib_get_state(sk) ) return 0
+ if ( tcpmib_local_addr(sk) ) return 0
+ if ( tcpmib_remote_addr(sk) ) return 0
+ if ( tcpmib_local_port(sk) ) return 0
+ if ( tcpmib_remote_port(sk) ) return 0
+ return op
+}
+
/**
* probe tcpmib.ActiveOpens - Count an active opening of a socket.
* @sk: Pointer to the struct sock being acted on.
@@ -209,7 +219,7 @@ tcpmib.EstabResets=kernel.function("tcp_set_state")
*
*/
probe
-tcpmib.InSegs=kernel.function("__inet_lookup_established").return
+tcpmib.InSegs=kernel.function("__inet_lookup_established").return ?
{
sk=$return
op=1
@@ -292,7 +302,11 @@ function __tcpmib_input_route_type_new:long (skb:long)
probe
tcpmib.OutRsts.A=kernel.function("tcp_v4_send_reset")
{
+%( kernel_v >= "2.6.20" %?
sk = $sk;
+%:
+ sk = 0;
+%)
skb = $skb
op = 1;
if ( _is_reset(skb) ) next
diff --git a/tapset/tty.stp b/tapset/tty.stp
index f6ce8ea9..2c4507d2 100644
--- a/tapset/tty.stp
+++ b/tapset/tty.stp
@@ -22,7 +22,11 @@ probe tty.open = kernel.function("tty_open") {
inode_state = $inode->i_state
inode_flags = $inode->i_flags
+%( kernel_v >= "2.6.20" %?
file_name = d_name($filp->f_path->dentry)
+%:
+ file_name = d_name($filp->f_dentry)
+%)
file_mode = $filp->f_mode
file_flags = $filp->f_flags
}
@@ -41,7 +45,11 @@ probe tty.release = kernel.function("tty_release") {
inode_state = $inode->i_state
inode_flags = $inode->i_flags
+%( kernel_v >= "2.6.20" %?
file_name = d_name($filp->f_path->dentry)
+%:
+ file_name = d_name($filp->f_dentry)
+%)
file_mode = $filp->f_mode
file_flags = $filp->f_flags
}
@@ -58,7 +66,7 @@ probe tty.release = kernel.function("tty_release") {
* @new_ypixel: the new ypixel value
* @new_xpixel: the new xpixel value
*/
-probe tty.resize = kernel.function("tty_do_resize"){
+probe tty.resize = kernel.function("tty_do_resize") ? {
name = kernel_string($tty->name)
old_row = $tty->winsize->ws_row
old_col = $tty->winsize->ws_col
@@ -78,7 +86,11 @@ probe tty.resize = kernel.function("tty_do_resize"){
* @arg: the ioctl argument
*/
probe tty.ioctl = kernel.function("tty_ioctl"){
+%( kernel_v >= "2.6.20" %?
name = kernel_string($file->f_path->dentry->d_iname)
+%:
+ name = kernel_string($file->f_dentry->d_iname)
+%)
cmd = $cmd
arg = $arg
@@ -90,7 +102,7 @@ probe tty.ioctl = kernel.function("tty_ioctl"){
* @name: the driver .dev_name name
* @module: the module name
*/
-probe tty.init = kernel.function("tty_init_dev"){
+probe tty.init = kernel.function("tty_init_dev") ? {
driver_name = kernel_string($driver->driver_name)
name = kernel_string($driver->name)
module = kernel_string($driver->owner->name)
@@ -130,11 +142,17 @@ probe tty.unregister = kernel.function("tty_unregister_device"){
* @wait_key: the wait queue key
*/
probe tty.poll = kernel.function("tty_poll"){
+%( kernel_v >= "2.6.20" %?
file_name = d_name($filp->f_path->dentry)
+%:
+ file_name = d_name($filp->f_dentry)
+%)
+%( kernel_v >= "2.6.31" %?
if ($wait)
wait_key = $wait->key
else
+%)
wait_key = 0
}
@@ -166,11 +184,15 @@ probe tty.receive = kernel.function("n_tty_receive_buf"){
* @driver_name: the driver name
* @file_name: the file name lreated to the tty
*/
-probe tty.write = kernel.function("n_tty_write"){
+probe tty.write = kernel.function("n_tty_write") ? {
buffer = kernel_string($buf)
nr = $nr
+%( kernel_v >= "2.6.20" %?
file_name = d_name($file->f_path->dentry)
+%:
+ file_name = d_name($file->f_dentry)
+%)
driver_name = kernel_string($tty->driver->driver_name)
}
@@ -181,9 +203,13 @@ probe tty.write = kernel.function("n_tty_write"){
* @driver_name: the driver name
* @file_name: the file name lreated to the tty
*/
-probe tty.read = kernel.function("n_tty_read"){
+probe tty.read = kernel.function("n_tty_read") ? {
buffer = kernel_string($buf)
nr = $nr
+%( kernel_v >= "2.6.20" %?
file_name = d_name($file->f_path->dentry)
+%:
+ file_name = d_name($file->f_dentry)
+%)
driver_name = kernel_string($tty->driver->driver_name)
}
diff --git a/testsuite/buildok/irq.stp b/testsuite/buildok/irq.stp
index b1a141dc..7f1c2ab6 100644
--- a/testsuite/buildok/irq.stp
+++ b/testsuite/buildok/irq.stp
@@ -2,6 +2,6 @@
// Tests if all probes in irq tapset are resolvable
-probe workqueue.* {}
-probe irq_handler.* {}
-probe softirq.* {}
+probe workqueue.* !, never {}
+probe irq_handler.* !, never {}
+probe softirq.* !, never {}
diff --git a/testsuite/buildok/tcpmib-all-probes.stp b/testsuite/buildok/tcpmib-all-probes.stp
index f20ba8bb..8d1105e1 100755
--- a/testsuite/buildok/tcpmib-all-probes.stp
+++ b/testsuite/buildok/tcpmib-all-probes.stp
@@ -4,12 +4,18 @@
probe tcpmib.* {}
-function tcpmib_filter_key:long (sk:long, op:long) {
- // Insure all these functions will build
- if ( tcpmib_get_state(sk) ) return 0
- if ( tcpmib_local_addr(sk) ) return 0
- if ( tcpmib_remote_addr(sk) ) return 0
- if ( tcpmib_local_port(sk) ) return 0
- if ( tcpmib_remote_port(sk) ) return 0
- return op
+probe begin{
+ print(tcpmib_get_state(0) +
+ tcpmib_local_addr(0) +
+ tcpmib_remote_addr(0) +
+ tcpmib_local_port(0) +
+ tcpmib_remote_port(0) +
+ _rtn_local() +
+ _is_reset(0) +
+%( kernel_v < "2.6.31" %?
+ __tcpmib_input_route_type_old(0)
+%:
+ __tcpmib_input_route_type_new(0)
+%)
+ )
}
diff --git a/testsuite/buildok/tty.stp b/testsuite/buildok/tty.stp
index 0b5018d9..3e717f6e 100755
--- a/testsuite/buildok/tty.stp
+++ b/testsuite/buildok/tty.stp
@@ -24,7 +24,7 @@ probe tty.open {
printf("File: %s mode %x flags %x\n", file_name, file_mode, file_flags)
}
-probe tty.resize {
+probe tty.resize ? {
printf("Resizing %s from %dx%d (%d/%d) to %dx%d (%d/%d)\n", name, old_row, old_col, old_xpixel, old_ypixel,
new_row, new_col, new_xpixel, new_ypixel)
}
@@ -33,7 +33,7 @@ probe tty.ioctl {
printf("Ioctling file %s with %d %d\n", name, cmd, arg)
}
-probe tty.init {
+probe tty.init ? {
printf("new tty with name %s from driver %s and module %s\nn", driver_name, name, module)
}
@@ -42,10 +42,10 @@ probe tty.receive {
}
-probe tty.write {
+probe tty.write ? {
printf("Buffer %s (len %d) wrote on file %s (driver %s)\n", buffer, nr, file_name, driver_name)
}
-probe tty.read {
+probe tty.read ? {
printf("Reading tty file %s (driver %s) to a buffer with size %d containing %s\n", file_name, driver_name, nr, buffer)
}
diff --git a/testsuite/systemtap.examples/network/netdev.stp b/testsuite/systemtap.examples/network/netdev.stp
index faf4d2ae..660c8721 100755
--- a/testsuite/systemtap.examples/network/netdev.stp
+++ b/testsuite/systemtap.examples/network/netdev.stp
@@ -8,7 +8,7 @@
############################################################
-probe netdev.get_stats{
+probe netdev.get_stats ? {
printf("%s was asked for statistics structure\n", dev_name)
}
@@ -31,7 +31,7 @@ probe netdev.set_promiscuity {
printf("Device %s leaving promiscuous mode\n", dev_name)
}
-probe netdev.change_rx_flag {
+probe netdev.change_rx_flag ? {
printf("Device %s is changing its RX flags to %d\n", dev_name, flags)
}