This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tapsets/15913] on s390x, nd_syscall.execve fails when accessing filename


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]