summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2006-07-12 17:05:45 +0000
committerhunt <hunt>2006-07-12 17:05:45 +0000
commit0a6626c316a4fe76a2752ae003dd26f8ed8764df (patch)
treee5e7032bc79fc862697aa4d8a958cf8ac13801b7
parentcb6ac9b911f1ede63726b4f85a520b79c3d91f4c (diff)
downloadsystemtap-steved-0a6626c316a4fe76a2752ae003dd26f8ed8764df.tar.gz
systemtap-steved-0a6626c316a4fe76a2752ae003dd26f8ed8764df.tar.xz
systemtap-steved-0a6626c316a4fe76a2752ae003dd26f8ed8764df.zip
Workarounds for bad debug info on x86_64.
-rw-r--r--tapset/syscalls.stp12
-rw-r--r--tapset/syscalls2.stp10
2 files changed, 16 insertions, 6 deletions
diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp
index 1823a8a3..36a5e22e 100644
--- a/tapset/syscalls.stp
+++ b/tapset/syscalls.stp
@@ -1451,13 +1451,13 @@ probe syscall.io_submit.return = kernel.function("sys_io_submit").return {
# ioprio_get _________________________________________________
# long sys_ioprio_get(int which, int who)
#
-probe syscall.ioprio_get = kernel.function("sys_ioprio_get") {
+probe syscall.ioprio_get = kernel.function("sys_ioprio_get") ? {
name = "ioprio_get"
which = $which
who = $who
argstr = sprintf("%d, %d", $which, $who)
}
-probe syscall.ioprio_get.return = kernel.function("sys_ioprio_get").return {
+probe syscall.ioprio_get.return = kernel.function("sys_ioprio_get").return ? {
name = "ioprio_get"
retstr = returnstr(1)
}
@@ -1465,14 +1465,14 @@ probe syscall.ioprio_get.return = kernel.function("sys_ioprio_get").return {
# ioprio_set _________________________________________________
# long sys_ioprio_set(int which, int who, int ioprio)
#
-probe syscall.ioprio_set = kernel.function("sys_ioprio_set") {
+probe syscall.ioprio_set = kernel.function("sys_ioprio_set") ? {
name = "ioprio_set"
which = $which
who = $who
ioprio = $ioprio
argstr = sprintf("%d, %d, %d", $which, $who, $ioprio)
}
-probe syscall.ioprio_set.return = kernel.function("sys_ioprio_set").return {
+probe syscall.ioprio_set.return = kernel.function("sys_ioprio_set").return ? {
name = "ioprio_set"
retstr = returnstr(1)
}
@@ -1483,7 +1483,7 @@ probe syscall.ioprio_set.return = kernel.function("sys_ioprio_set").return {
# struct kexec_segment __user *segments,
# unsigned long flags)
#
-probe syscall.kexec_load = kernel.function("sys_kexec_load") {
+probe syscall.kexec_load = kernel.function("sys_kexec_load") ? {
name = "kexec_load"
entry = $entry
nr_segments = $nr_segments
@@ -1491,7 +1491,7 @@ probe syscall.kexec_load = kernel.function("sys_kexec_load") {
flags = $flags
argstr = sprintf("%p, %d, %p, %d", $entry, $nr_segments, $segments, $flags)
}
-probe syscall.kexec_load.return = kernel.function("sys_kexec_load").return {
+probe syscall.kexec_load.return = kernel.function("sys_kexec_load").return ? {
name = "kexec_load"
retstr = returnstr(1)
}
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp
index d0d0e85f..d0dc19ff 100644
--- a/tapset/syscalls2.stp
+++ b/tapset/syscalls2.stp
@@ -898,6 +898,7 @@ probe syscall.sched_rr_get_interval.return =
# unsigned int len,
# unsigned long __user *user_mask_ptr)
#
+%( arch != "x86_64" %?
probe syscall.sched_setaffinity = kernel.function("sys_sched_setaffinity") {
name = "sched_setaffinity"
pid = $pid
@@ -905,6 +906,15 @@ probe syscall.sched_setaffinity = kernel.function("sys_sched_setaffinity") {
mask_uaddr = $user_mask_ptr
argstr = sprintf("%d, %d, %p", $pid, $len, $user_mask_ptr)
}
+%:
+probe syscall.sched_setaffinity = kernel.function("sys_sched_setaffinity") {
+ name = "sched_setaffinity"
+ pid = $pid
+ len = 0
+ mask_uaddr = $user_mask_ptr
+ argstr = sprintf("%d, <unknown>, %p", $pid, $user_mask_ptr)
+}
+%)
probe syscall.sched_setaffinity.return = kernel.function("sys_sched_setaffinity").return {
name = "sched_setaffinity"
retstr = returnstr(1)