]> sourceware.org Git - systemtap.git/commitdiff
Make tapset and tests compatible with old kernel
authorWenji Huang <wenji.huang@oracle.com>
Wed, 2 Dec 2009 09:45:20 +0000 (17:45 +0800)
committerWenji Huang <wenji.huang@oracle.com>
Wed, 2 Dec 2009 09:45:20 +0000 (17:45 +0800)
* 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.

tapset/ioscheduler.stp
tapset/irq.stp
tapset/linuxmib.stp
tapset/scheduler.stp
tapset/tcpmib.stp
tapset/tty.stp
testsuite/buildok/irq.stp
testsuite/buildok/tcpmib-all-probes.stp
testsuite/buildok/tty.stp
testsuite/systemtap.examples/network/netdev.stp

index 7f26cf237b19d0257b333fe56d14e152b8750223..9b35357735878afdc028dda8ca9280e3e23df751 100644 (file)
@@ -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
 }
index 6a9b9147ebdc052a572da5456e1dee35588a1425..5d9196595a9d5931e6ca5b86bf5130ff8b1c74c4 100644 (file)
@@ -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
index e19755a9ebb2847bb9ef0ecde1bcbc80ed73d6a8..90145b62b54b2b8050ee077cffdebc4118684455 100644 (file)
@@ -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);
index 324aa769c6a05512608198bfaa87faa671b764be..1610dc0abaab583d20d5b207da861ae036bf8951 100644 (file)
@@ -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
 }
index 8b443309ad92dcbe961d0bcc016ec45b9b2bc43e..497fb7ddfac76e327ab00f37ad386d19d672406e 100644 (file)
@@ -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
index f6ce8ea90667f1e5c20c849daef8a21c55369c54..2c4507d215192182bd4e926dc5602b482d3b3de0 100644 (file)
@@ -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)
 }
index b1a141dc4f48b5c382b75680d2baf357d837ced6..7f1c2ab66a0b9bc0556d7255b66802a3ebbe1c4b 100644 (file)
@@ -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 {}
index f20ba8bb400ce2034b73ddcb0004bb4b17df36e7..8d1105e1b93fe96c6583b1e656fa8df6932ae594 100755 (executable)
@@ -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)
+%)
+              )
 }
index 0b5018d9586bae0ea2c81ad71d606b0c346fb747..3e717f6e1ca09e754c60feb7a1f0603137c7dbde 100755 (executable)
@@ -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)
 }
index faf4d2aefd25854bae180620a0d8c9044a586c72..660c87219df939e24adfd1fca6cd9d9fafc1b3ae 100755 (executable)
@@ -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)
 }
 
This page took 0.04499 seconds and 5 git commands to generate.