This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug tapsets/15913] on s390x, nd_syscall.execve fails when accessing filename
- From: "dsmith at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Thu, 17 Oct 2013 18:51:19 +0000
- Subject: [Bug tapsets/15913] on s390x, nd_syscall.execve fails when accessing filename
- Auto-submitted: auto-generated
- References: <bug-15913-6586 at http dot sourceware dot org/bugzilla/>
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.