[Bug tapsets/15913] on s390x, nd_syscall.execve fails when accessing filename
dsmith at redhat dot com
sourceware-bugzilla@sourceware.org
Thu Oct 17 18:51:00 GMT 2013
https://sourceware.org/bugzilla/show_bug.cgi?id=15913
David Smith <dsmith at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution|--- |FIXED
--- Comment #3 from David Smith <dsmith at redhat dot com> ---
After some discussion with the kernel folks, this is a systemtap problem. Bug
#11763 tried to fix accessing argument 6 on the s390x by using the kernel's
syscall_get_arguments(). However, that function is only guaranteed to work on
the pt_regs structure that gets intialized when a context switch from user
space to kernel space happens due to a system call. This pt_regs structure is
returned by 'task_pt_regs(current)'.
But, when using int_arg(N) in the nd_syscall tapset, we don't want the
syscall's arg N, we want the *current* kernel function's arg N (since the
function we're probing could be several calls away from the actual system
call).
So, after some investigation, I've rewritten the s390x _stp_get_arg() to handle
getting argument 6 (and above) from the stack.
I've tested this on RHEL5, RHEL6, and more recent kernels (3.10).
Fixed in commit eefd579.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Systemtap
mailing list