summaryrefslogtreecommitdiffstats
path: root/tapset
diff options
context:
space:
mode:
Diffstat (limited to 'tapset')
-rw-r--r--tapset/ChangeLog33
-rw-r--r--tapset/aux_syscalls.stp28
-rw-r--r--tapset/queue_stats.stp1
-rw-r--r--tapset/rpc.stp4
-rw-r--r--tapset/syscalls2.stp2
5 files changed, 62 insertions, 6 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index b325a627..287b0823 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,36 @@
+2007-10-10 Martin Hunt <hunt@redhat.com>
+
+ * aux_syscalls.stp (_stp_lookup_str): When defaulting
+ to a numeric value, append, don't overwrite.
+
+2007-10-10 Zhaolei <zhaolei@cn.fujitsu.com>
+
+ From Lai Jiangshan <laijs@cn.fujitsu.com>
+ * aux_syscalls.stp (_stp_lookup_or_str) redirect to _stp_lookup_str
+ if val is 0.
+
+2007-10-09 Mike Mason <mmlnx@us.ibm.com>
+
+ * rpc.stp: Replaced atomic_read()'s with kread()'s
+
+2007-10-09 Martin Hunt <hunt@redhat.com>
+ PR5153
+ * aux_syscalls.stp (_sighandler_str): No
+ sa_restorer field for IA64.
+
+2007-10-09 Martin Hunt <hunt@redhat.com>
+
+ * syscalls2.stp (sys_signal): Call
+ _sighandler_str().
+
+ * aux_syscalls.stp (_stp_sigset_str): Don't
+ include SIG_0.
+ (_sighandler_str): New.
+
+2007-10-09 Zhaolei <zhaolei@cn.fujitsu.com>
+
+ * queue_stats.stp (qsq_start): Add destruction for qs_utime.
+
2007-10-09 Zhaolei <zhaolei@cn.fujitsu.com>
From Cai Fei <caifei@cn.fujitsu.com>
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 3818ae75..05c7dc98 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1520,7 +1520,7 @@ typedef struct {
void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, int len)
{
- int i = 0;
+ int i = 0, slen;
while (array[i].name) {
if (array[i].val == val) {
strlcat (ptr, array[i].name, len);
@@ -1528,11 +1528,18 @@ void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, in
}
i++;
}
- snprintf(ptr, len, "0x%lx", val);
+ slen = strlen(ptr);
+ _stp_snprintf(ptr + slen, len - slen, "0x%lx", val);
}
void _stp_lookup_or_str(const _stp_val_array * const array, long val, char *ptr, int len)
{
int i = 0, flag = 0;
+
+ if (val == 0) {
+ _stp_lookup_str(array, val, ptr, len);
+ return;
+ }
+
while (array[i].name) {
if (array[i].val & val) {
if (flag)
@@ -1587,7 +1594,7 @@ void _stp_sigset_str(sigset_t *mask, char *ptr, int len)
const _stp_val_array * const array = _stp_signal_list;
int i = 0, flag = 0;
while (array[i].name) {
- if (sigismember(mask, array[i].val)) {
+ if (array[i].val && sigismember(mask, array[i].val)) {
if (flag)
strlcat(ptr, "|", len);
strlcat(ptr, array[i].name, len);
@@ -1785,6 +1792,17 @@ function get_mmap_args:string (args:long)
strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN);
%}
+
+function _sighandler_str:string(uaddr:long)
+%{ /* pure */
+ static const _stp_val_array const _stp_sa_handler_list[] = {
+ {0, "SIG_DFL"},
+ {1, "SIG_IGN"},
+ {0, NULL}
+ };
+ _stp_lookup_str(_stp_sa_handler_list, (long)THIS->uaddr, THIS->__retvalue, MAXSTRINGLEN);
+%}
+
function _struct_sigaction_u:string(uaddr:long)
%{ /* pure */
static const _stp_val_array const _stp_sa_handler_list[] = {
@@ -1818,8 +1836,12 @@ function _struct_sigaction_u:string(uaddr:long)
strlcat (THIS->__retvalue, ", ", MAXSTRINGLEN);
_stp_lookup_or_str(_stp_sa_flags_list, act.sa_flags, THIS->__retvalue, MAXSTRINGLEN);
strlcat (THIS->__retvalue, ", ", MAXSTRINGLEN);
+#if !defined (__ia64__)
len = strlen(THIS->__retvalue);
_stp_snprintf(THIS->__retvalue + len, MAXSTRINGLEN - len, "0x%lx, [", (long)act.sa_restorer);
+#else
+ strlcat (THIS->__retvalue, "[", MAXSTRINGLEN);
+#endif
_stp_sigset_str(&act.sa_mask, THIS->__retvalue, MAXSTRINGLEN);
strlcat (THIS->__retvalue, "]", MAXSTRINGLEN);
}
diff --git a/tapset/queue_stats.stp b/tapset/queue_stats.stp
index 75407fee..9d89903c 100644
--- a/tapset/queue_stats.stp
+++ b/tapset/queue_stats.stp
@@ -59,6 +59,7 @@ function qsq_start (qname) { # reset statistics for new baseline
delete qs_wtime[qname]
delete qs_wlentime[qname]
delete qs_dcount[qname]
+ delete qs_utime[qname]
qs_stime[qname] = qs_time ()
}
diff --git a/tapset/rpc.stp b/tapset/rpc.stp
index 3d17d221..eecdb796 100644
--- a/tapset/rpc.stp
+++ b/tapset/rpc.stp
@@ -948,7 +948,7 @@ function clones_from_clnt:long(clnt:long)
%{ /* pure */
struct rpc_clnt *clnt = (struct rpc_clnt *)(long)THIS->clnt;
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22)
- THIS->__retvalue = atomic_read(&clnt->cl_count); /* FIXME: deref hazard! */
+ THIS->__retvalue = kread(&(clnt->cl_count));
#else
THIS->__retvalue = -1;
#endif
@@ -958,7 +958,7 @@ function tasks_from_clnt:long(clnt:long)
%{ /* pure */
struct rpc_clnt *clnt = (struct rpc_clnt *)(long)THIS->clnt;
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22)
- THIS->__retvalue = atomic_read(&clnt->cl_users); /* FIXME: deref hazard! */
+ THIS->__retvalue = kread(&(clnt->cl_users));
#else
THIS->__retvalue = -1;
#endif
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp
index acb2c137..e702bbcd 100644
--- a/tapset/syscalls2.stp
+++ b/tapset/syscalls2.stp
@@ -2122,7 +2122,7 @@ probe syscall.signal = kernel.function("sys_signal") ? {
name = "signal"
sig = $sig
handler = $handler
- argstr = sprintf("%s, %p", _signal_name($sig), $handler)
+ argstr = sprintf("%s, %s", _signal_name($sig), _sighandler_str($handler))
}
probe syscall.signal.return = kernel.function("sys_signal").return ? {
name = "signal"