summaryrefslogtreecommitdiffstats
path: root/tapset/LKET
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/LKET')
-rw-r--r--tapset/LKET/Changelog10
-rwxr-xr-xtapset/LKET/ioscheduler.stp28
-rwxr-xr-xtapset/LKET/lket_trace.stp33
-rwxr-xr-xtapset/LKET/netdev.stp6
-rwxr-xr-xtapset/LKET/pagefault.stp2
-rwxr-xr-xtapset/LKET/process.stp4
-rwxr-xr-xtapset/LKET/scsi.stp36
-rwxr-xr-xtapset/LKET/tskdispatch.stp13
8 files changed, 78 insertions, 54 deletions
diff --git a/tapset/LKET/Changelog b/tapset/LKET/Changelog
index af1b9dab..780ceefe 100644
--- a/tapset/LKET/Changelog
+++ b/tapset/LKET/Changelog
@@ -1,7 +1,13 @@
+2006-05-25 Li Guanglei <guanglei@cn.ibm.com>
+
+ * hookid_defs.stp, ioscheduler.stp, lket_trace.stp, netdev.stp,
+ pagefault.stp, process.stp, scsi.stp, syscalls.stp, tskdispatch.stp,
+ utils.stp: explicitly add type qualifier for different arch to
+ make _stp_vsnprintf get the argument by va_arg correctly.
+
2006-05-18 Li Guanglei <guanglei@cn.ibm.com>
Initial version by Li Guanglei.
* hookid_defs.stp, ioscheduler.stp, lket_trace.stp, netdev.stp,
- pagefault.stp, process.stp, scsi.stp, syscalls.stp, tskdispatch.stp,
- utils.stp
+ pagefault.stp, process.stp, scsi.stp, syscalls.stp, tskdispatch.stp, utils.stp
diff --git a/tapset/LKET/ioscheduler.stp b/tapset/LKET/ioscheduler.stp
index 8e238a8d..4d68537c 100755
--- a/tapset/LKET/ioscheduler.stp
+++ b/tapset/LKET/ioscheduler.stp
@@ -63,10 +63,10 @@ function log_ioscheduler_tracedata_others(var_id:long, var_q:long, var_rq:long,
_stp_stack_sprint (str, CONTEXT->regs, 0);
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b%0s", q->elevator->elevator_type->elevator_name,
- rq->rq_disk->major, rq->rq_disk->first_minor, _stp_string_ptr(str));
+ (_FMT_)rq->rq_disk->major, (_FMT_)rq->rq_disk->first_minor, _stp_string_ptr(str));
} else {
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b", q->elevator->elevator_type->elevator_name,
- rq->rq_disk->major, rq->rq_disk->first_minor);
+ (_FMT_)rq->rq_disk->major, (_FMT_)rq->rq_disk->first_minor);
}
%}
@@ -85,10 +85,10 @@ function log_ioscheduler_tracedata_others(var_id:long, var_q:long, var_rq:long,
_stp_stack_sprint (str, CONTEXT->regs, 0);
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b%0s", q->elevator.elevator_name,
- rq->rq_disk->major, rq->rq_disk->first_minor, _stp_string_ptr(str));
+ (_FMT_)rq->rq_disk->major, (_FMT_)rq->rq_disk->first_minor, _stp_string_ptr(str));
} else {
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b", q->elevator.elevator_name,
- rq->rq_disk->major, rq->rq_disk->first_minor);
+ (_FMT_)rq->rq_disk->major, (_FMT_)rq->rq_disk->first_minor);
}
%}
@@ -118,22 +118,22 @@ function log_ioscheduler_tracedata_elv_next(var_id:long, var:long, backtrace:lon
if(list_empty(&(q->queue_head))) {
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b%0s",
- q->elevator->elevator_type->elevator_name, -1, -1, _stp_string_ptr(str));
+ q->elevator->elevator_type->elevator_name, (_FMT_)-1, (_FMT_)-1, _stp_string_ptr(str));
} else {
rq = list_entry_rq(q->queue_head.next);
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b%0s",
- q->elevator->elevator_type->elevator_name, rq->rq_disk->major,
- rq->rq_disk->first_minor, _stp_string_ptr(str));
+ q->elevator->elevator_type->elevator_name, (_FMT_)rq->rq_disk->major,
+ (_FMT_)rq->rq_disk->first_minor, _stp_string_ptr(str));
}
} else {
if(list_empty(&(q->queue_head))) {
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b",
- q->elevator->elevator_type->elevator_name, -1, -1);
+ q->elevator->elevator_type->elevator_name, (_FMT_)-1, (_FMT_)-1);
} else {
rq = list_entry_rq(q->queue_head.next);
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b",
- q->elevator->elevator_type->elevator_name, rq->rq_disk->major,
- rq->rq_disk->first_minor);
+ q->elevator->elevator_type->elevator_name, (_FMT_)rq->rq_disk->major,
+ (_FMT_)rq->rq_disk->first_minor);
}
}
@@ -160,20 +160,20 @@ function log_ioscheduler_tracedata_elv_next(var_id:long, var:long, backtrace:lon
if(list_empty(&(q->queue_head))) {
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b%0s",
- q->elevator.elevator_name, -1, -1, _stp_string_ptr(str));
+ q->elevator.elevator_name, (_FMT_)-1, (_FMT_)-1, _stp_string_ptr(str));
} else {
rq = list_entry_rq(q->queue_head.next);
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b%0s", q->elevator.elevator_name,
- rq->rq_disk->major, rq->rq_disk->first_minor, _stp_string_ptr(str));
+ (_FMT_)rq->rq_disk->major, (_FMT_)rq->rq_disk->first_minor, _stp_string_ptr(str));
}
} else {
if(list_empty(&(q->queue_head))) {
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b",
- q->elevator.elevator_name, -1, -1);
+ q->elevator.elevator_name, (_FMT_)-1, (_FMT_)-1);
} else {
rq = list_entry_rq(q->queue_head.next);
_lket_trace(_GROUP_IOSCHED, THIS->var_id, "%0s%1b%1b", q->elevator.elevator_name,
- rq->rq_disk->major, rq->rq_disk->first_minor);
+ (_FMT_)rq->rq_disk->major, (_FMT_)rq->rq_disk->first_minor);
}
}
diff --git a/tapset/LKET/lket_trace.stp b/tapset/LKET/lket_trace.stp
index d06d09d2..5e3739d4 100755
--- a/tapset/LKET/lket_trace.stp
+++ b/tapset/LKET/lket_trace.stp
@@ -5,11 +5,23 @@
// Public License (GPL); either version 2, or (at your option) any
// later version.
+%{
+#if defined(ASCII_TRACE)
+#ifndef _FMT_
+#define _FMT_ unsigned int
+#endif
+#else
+#ifndef _FMT_
+#define _FMT_ int64_t
+#endif
+#endif
+%}
+
function lket_trace_header_init()
%{
/* header info for binary format*/
-#if !defined(ASCII_TRACE) && !defined(ASCII_TRACE_LEGACY)
+#if !defined(ASCII_TRACE)
#define MAGIC_NUMBER 0xAEFCDB6B
#define LKET_TRACE_VER_MAJOR 0x01
@@ -21,8 +33,9 @@ function lket_trace_header_init()
#define LKET_HEADER_LEN 0 /* fake number, bin_write will fill in the
actual length of trace header */
- _stp_printf("%4b%2n%1b%1b%1b%1b", MAGIC_NUMBER, LKET_HEADER_LEN, LKET_TRACE_VER_MAJOR,
- LKET_TRACE_VER_MINOR, BIG_ENDIAN, BITS_WIDTH);
+ _stp_printf("%4b%2n%1b%1b%1b%1b", (_FMT_)MAGIC_NUMBER, (_FMT_)LKET_HEADER_LEN,
+ (_FMT_)LKET_TRACE_VER_MAJOR, (_FMT_)LKET_TRACE_VER_MINOR,
+ (_FMT_)BIG_ENDIAN, (_FMT_)BITS_WIDTH);
_stp_print_flush();
#endif
@@ -101,9 +114,9 @@ void fmt_change(char *oldfmt)
do_gettimeofday (&tv); \
fmt_change(fmt); \
_stp_printf(newfmt, \
- GroupID, hookID, tv.tv_sec, tv.tv_usec, current->tgid, \
- current->parent->pid, current->pid, \
- current->thread_info->cpu, args);\
+ (_FMT_)GroupID, (_FMT_)hookID, (_FMT_)tv.tv_sec, (_FMT_)tv.tv_usec,\
+ (_FMT_)current->tgid, (_FMT_)current->parent->pid,\
+ (_FMT_)current->pid, (_FMT_)current->thread_info->cpu, args);\
} while(0)
#else //binary trace
@@ -118,10 +131,10 @@ static inline int this_event_len(void)
struct timeval tv; \
do_gettimeofday (&tv); \
_stp_printf("%1b%2n%1b%1b%4b%4b%4b%4b%4b%1b"fmt, \
- (int64_t)STP_BIN_PACKET, (int64_t)GroupID, (int64_t)hookID, \
- (int64_t)tv.tv_sec, (int64_t)tv.tv_usec, (int64_t)current->tgid, \
- (int64_t)current->parent->pid, (int64_t)current->pid, \
- (int64_t)current->thread_info->cpu, args);\
+ (_FMT_)STP_BIN_PACKET, (_FMT_)GroupID, (_FMT_)hookID, \
+ (_FMT_)tv.tv_sec, (_FMT_)tv.tv_usec, (_FMT_)current->tgid, \
+ (_FMT_)current->parent->pid, (_FMT_)current->pid, \
+ (_FMT_)current->thread_info->cpu, args);\
} while(0)
#endif
diff --git a/tapset/LKET/netdev.stp b/tapset/LKET/netdev.stp
index 04413b23..9c79d036 100755
--- a/tapset/LKET/netdev.stp
+++ b/tapset/LKET/netdev.stp
@@ -33,7 +33,7 @@ probe addevent.netdev.transmit
function log_netdev_extra(var_id:long, var:long, backtrace:long)
%{
- struct sk_buff *skb = (struct sk_buff *)THIS->var;
+ struct sk_buff *skb = (struct sk_buff *)((long)THIS->var);
/* dev_name | Length of actual data | protocol | Buffer size
@@ -58,9 +58,9 @@ function log_netdev_extra(var_id:long, var:long, backtrace:long)
_stp_stack_sprint (str, CONTEXT->regs, 0);
_lket_trace(_GROUP_NETDEV, THIS->var_id, "%0s%4b%2b%4b%0s", skb->dev->name,
- skb->len, skb->protocol, skb->truesize, _stp_string_ptr(str));
+ (_FMT_)skb->len, (_FMT_)skb->protocol, (_FMT_)skb->truesize, _stp_string_ptr(str));
} else {
_lket_trace(_GROUP_NETDEV, THIS->var_id, "%0s%4b%2b%4b", skb->dev->name,
- skb->len, skb->protocol, skb->truesize);
+ (_FMT_)skb->len, (_FMT_)skb->protocol, (_FMT_)skb->truesize);
}
%}
diff --git a/tapset/LKET/pagefault.stp b/tapset/LKET/pagefault.stp
index bdef3fcc..0675f4e8 100755
--- a/tapset/LKET/pagefault.stp
+++ b/tapset/LKET/pagefault.stp
@@ -7,7 +7,7 @@
function log_pagefault_tracedata(var_id:long, var_addr:long, var_rwflag:long)
%{
- _lket_trace(_GROUP_PAGEFAULT, THIS->var_id, "%8b%1b", (long)(THIS->var_addr), (THIS->var_rwflag)?1:0);
+ _lket_trace(_GROUP_PAGEFAULT, THIS->var_id, "%8b%1b", (int64_t)(THIS->var_addr), (_FMT_)((THIS->var_rwflag)?1:0));
%}
diff --git a/tapset/LKET/process.stp b/tapset/LKET/process.stp
index e17a5514..039847b3 100755
--- a/tapset/LKET/process.stp
+++ b/tapset/LKET/process.stp
@@ -17,7 +17,7 @@ function log_execve_tracedata(var_id:long, var:long)
function log_fork_tracedata(var_id:long, var:long)
%{
pid_t pid = (pid_t)THIS->var;
- _lket_trace(_GROUP_PROCESS, THIS->var_id, "%4b", pid);
+ _lket_trace(_GROUP_PROCESS, THIS->var_id, "%4b", (_FMT_)pid);
%}
@@ -36,7 +36,7 @@ function process_snapshot()
name for each entry */
list_for_each(cur, head) {
tsk = (struct task_struct *)(list_entry(cur, struct task_struct, tasks));
- _lket_trace(_GROUP_PROCESS, _HOOKID_PROCESS_SNAPSHOT, "%4b%0s", tsk->pid, tsk->comm);
+ _lket_trace(_GROUP_PROCESS, _HOOKID_PROCESS_SNAPSHOT, "%4b%0s", (_FMT_)tsk->pid, tsk->comm);
_stp_print_flush();
}
%}
diff --git a/tapset/LKET/scsi.stp b/tapset/LKET/scsi.stp
index 0f38b33c..d6e254e0 100755
--- a/tapset/LKET/scsi.stp
+++ b/tapset/LKET/scsi.stp
@@ -78,11 +78,11 @@ function log_scsi_ioentry(var_id:long, var_q:long, var_rq:long, backtrace:long)
if(THIS->backtrace == 1) {
String str = _stp_string_init (0);
_stp_stack_sprint (str, CONTEXT->regs, 0);
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%1b%1b%0s", rq->rq_disk->major,
- rq->rq_disk->first_minor, sdev->sdev_state, _stp_string_ptr(str));
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%1b%1b%0s", (_FMT_)rq->rq_disk->major,
+ (_FMT_)rq->rq_disk->first_minor, (_FMT_)sdev->sdev_state, _stp_string_ptr(str));
} else {
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%1b%1b", rq->rq_disk->major,
- rq->rq_disk->first_minor, sdev->sdev_state);
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%1b%1b", (_FMT_)rq->rq_disk->major,
+ (_FMT_)rq->rq_disk->first_minor, (_FMT_)sdev->sdev_state);
}
%}
@@ -129,14 +129,14 @@ function log_scsi_dispatch(var_id:long, var:long, backtrace:long)
String str = _stp_string_init (0);
_stp_stack_sprint (str, CONTEXT->regs, 0);
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b%0s", cmd->device->sdev_state,
- scsi_info, cmd->sc_data_direction, cmd->request_buffer, cmd->request_bufflen,
- cmd->device->host->cmd_pid, _stp_string_ptr(str));
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b%0s", (_FMT_)cmd->device->sdev_state,
+ (_FMT_)scsi_info, (_FMT_)cmd->sc_data_direction, (int64_t)((long)cmd->request_buffer),
+ (_FMT_)cmd->request_bufflen, (int64_t)cmd->device->host->cmd_pid, _stp_string_ptr(str));
} else {
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b", cmd->device->sdev_state,
- scsi_info, cmd->sc_data_direction, cmd->request_buffer, cmd->request_bufflen,
- cmd->device->host->cmd_pid);
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b", (_FMT_)cmd->device->sdev_state,
+ (_FMT_)scsi_info, (_FMT_)cmd->sc_data_direction, (int64_t)((long)cmd->request_buffer),
+ (_FMT_)cmd->request_bufflen, (int64_t)cmd->device->host->cmd_pid);
}
%}
@@ -165,11 +165,13 @@ function log_scsi_dispatch(var_id:long, var:long, backtrace:long)
String str = _stp_string_init (0);
_stp_stack_sprint (str, CONTEXT->regs, 0);
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b%0s", cmd->device->sdev_state, scsi_info,
- cmd->sc_data_direction, cmd->request_buffer, cmd->request_bufflen, 0, _stp_string_ptr(str));
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b%0s", (_FMT_)cmd->device->sdev_state,
+ (_FMT_)scsi_info, (_FMT_)cmd->sc_data_direction, (int64_t)((long)cmd->request_buffer),
+ (_FMT_)cmd->request_bufflen, (int64_t)0, _stp_string_ptr(str));
} else {
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b", cmd->device->sdev_state, scsi_info,
- cmd->sc_data_direction, cmd->request_buffer, cmd->request_bufflen, 0);
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%1b%4b%1b%8b%4b%8b", (_FMT_)cmd->device->sdev_state,
+ (_FMT_)scsi_info, (_FMT_)cmd->sc_data_direction, (int64_t)((long)cmd->request_buffer),
+ (_FMT_)cmd->request_bufflen, (int64_t)0);
}
%}
%)
@@ -186,7 +188,8 @@ function log_scsi_iodone_extra(var_id:long, var:long)
(cmd->device->id & 0xFF);
/* scsi_info|data_direction|cmd_identifier| */
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%4b%1b%8b", scsi_info, cmd->sc_data_direction, cmd->pid);
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%4b%1b%8b", (_FMT_)scsi_info, (_FMT_)cmd->sc_data_direction,
+ (int64_t)cmd->pid);
%}
/* log the info about scsi_dispatching_cmd */
@@ -202,5 +205,6 @@ function log_scsi_iocompleted(var_id:long, var_cmd:long, var_goodbytes:long)
(cmd->device->id & 0xFF);
/* scsi_info|data_direction|cmd_identifier|goodbytes */
- _lket_trace(_GROUP_SCSI, THIS->var_id, "%4b%1b%8b%4b", scsi_info, cmd->sc_data_direction, cmd->pid, goodbytes);
+ _lket_trace(_GROUP_SCSI, THIS->var_id, "%4b%1b%8b%4b", (_FMT_)scsi_info, (_FMT_)cmd->sc_data_direction,
+ (int64_t)cmd->pid, (_FMT_)goodbytes);
%}
diff --git a/tapset/LKET/tskdispatch.stp b/tapset/LKET/tskdispatch.stp
index bb758144..9cc3bf4f 100755
--- a/tapset/LKET/tskdispatch.stp
+++ b/tapset/LKET/tskdispatch.stp
@@ -37,9 +37,9 @@ probe addevent.tskdispatch.ctxswitch
target_pid = target()
cur_pid = pid()
if( stp_pid() != cur_pid ) { /* skip stpd itself */
- if(target_pid == 0 || (target_pid !=0 && ($prev->pid == target_pid
- || $new->pid == target_pid))) {
- log_ctxswitch_tracedata(HOOKID_TASK_CTXSWITCH, $prev, $new)
+ if(target_pid == 0 || (target_pid !=0 && (prev_pid == target_pid
+ || next_pid == target_pid))) {
+ log_ctxswitch_tracedata(HOOKID_TASK_CTXSWITCH, prev_task, next_task)
}
}
}
@@ -51,7 +51,8 @@ function log_ctxswitch_tracedata(var_id:long, prev:long, next_pid:long)
prev_tsk = (struct task_struct *)((long)THIS->prev);
next_tsk = (struct task_struct *)((long)THIS->next_pid);
- _lket_trace(_GROUP_TASK, THIS->var_id, "%4b%4b%1b", prev_tsk->pid, next_tsk->pid, prev_tsk->state);
+ _lket_trace(_GROUP_TASK, THIS->var_id, "%4b%4b%1b", (_FMT_)prev_tsk->pid, (_FMT_)next_tsk->pid,
+ (_FMT_)prev_tsk->state);
%}
function log_cpuidle_tracedata(var_id:long, backtrace:long)
@@ -61,9 +62,9 @@ function log_cpuidle_tracedata(var_id:long, backtrace:long)
if(THIS->backtrace == 1) {
String str = _stp_string_init (0);
_stp_stack_sprint (str, CONTEXT->regs, 0);
- _lket_trace(_GROUP_TASK, THIS->var_id, "%4b%0s", cur->pid, _stp_string_ptr(str));
+ _lket_trace(_GROUP_TASK, THIS->var_id, "%4b%0s", (_FMT_)cur->pid, _stp_string_ptr(str));
} else {
- _lket_trace(_GROUP_TASK, THIS->var_id, "%4b", cur->pid);
+ _lket_trace(_GROUP_TASK, THIS->var_id, "%4b", (_FMT_)cur->pid);
}
%}