From 8785346c7b4789a23559ab7811cac692513d0fbf Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 7 Sep 2009 11:36:03 +0200 Subject: PR10613 sys32_ustat is renamed compat_sys_ustat in 2.6.30 kernel. Note that the new compat_sys_ustat is asmlinkage and has a differently named argument for the user struct. * tapset/syscalls2.stp (syscall.ustat32): Add compat_sys_ustat variant. (syscall.ustat.return): Likewise. * tapset/nd_syscalls2.stp (nd_syscall.ustat32): Likewise. (nd_syscall.ustat.return): Likewise. --- tapset/nd_syscalls2.stp | 15 ++++++++++++++- tapset/syscalls2.stp | 12 +++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) (limited to 'tapset') diff --git a/tapset/nd_syscalls2.stp b/tapset/nd_syscalls2.stp index 6e50d256..8b604f94 100644 --- a/tapset/nd_syscalls2.stp +++ b/tapset/nd_syscalls2.stp @@ -4134,10 +4134,23 @@ probe nd_syscall.ustat32 = kprobe.function("sys32_ustat") ? dev = uint_arg(1) argstr = sprintf("%d, %p", dev, pointer_arg(2)) } +# Since 2.6.30 sys32_ustat is called compat_sys_ustat and is now asmlinkage. +#asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u) +probe nd_syscall.ustat32 = kprobe.function("compat_sys_ustat") ? +{ + name = "ustat" + // dev = $dev + // argstr = sprintf("%d, %p", $dev, $u) + // asmlinkage + asmlinkage() + dev = uint_arg(1) + argstr = sprintf("%d, %p", dev, pointer_arg(2)) +} probe nd_syscall.ustat.return = kprobe.function("SyS_ustat").return ?, kprobe.function("sys_ustat").return ?, - kprobe.function("sys32_ustat").return ? + kprobe.function("sys32_ustat").return ?, + kprobe.function("compat_sys_ustat").return ? { name = "ustat" retstr = returnstr(1) diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp index defc50a0..e2be10fc 100644 --- a/tapset/syscalls2.stp +++ b/tapset/syscalls2.stp @@ -3414,10 +3414,20 @@ probe syscall.ustat32 = kernel.function("sys32_ustat") ? dev = $dev argstr = sprintf("%d, %p", $dev, $u32p) } +# Since 2.6.30 sys32_ustat is compat_sys_ustat +# Note that last argument changed name. +#long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u) +probe syscall.ustat32 = kernel.function("compat_sys_ustat") ? +{ + name = "ustat" + dev = $dev + argstr = sprintf("%d, %p", $dev, $u) +} probe syscall.ustat.return = kernel.function("SyS_ustat").return ?, kernel.function("sys_ustat").return ?, - kernel.function("sys32_ustat").return ? + kernel.function("sys32_ustat").return ?, + kernel.function("compat_sys_ustat").return ? { name = "ustat" retstr = returnstr(1) -- cgit From ef0e74fc1131f1d217c78aa839d0de731ea7c940 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Mon, 14 Sep 2009 11:41:23 -0400 Subject: Use the sched_switch tracepoint if available. --- tapset/scheduler.stp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tapset') diff --git a/tapset/scheduler.stp b/tapset/scheduler.stp index d67e0310..3c3d504e 100644 --- a/tapset/scheduler.stp +++ b/tapset/scheduler.stp @@ -33,7 +33,7 @@ function __is_idle:long() * idle - boolean indicating whether current is the idle process */ probe scheduler.cpu_off - = kernel.function("context_switch") + = kernel.trace("sched_switch") !, kernel.function("context_switch") { task_prev = $prev task_next = $next @@ -122,9 +122,9 @@ probe scheduler.balance = kernel.function("idle_balance")? {} */ probe scheduler.ctxswitch = %( arch != "x86_64" && arch != "ia64" %? - kernel.function("__switch_to") + kernel.trace("sched_switch") !, kernel.function("__switch_to") %: - kernel.function("context_switch") + kernel.trace("sched_switch") !, kernel.function("context_switch") %) { %( arch == "powerpc" %? -- cgit