Bug 11763 - on s390x, nd_syscall probes that use $arg6 fail
Summary: on s390x, nd_syscall probes that use $arg6 fail
Status: RESOLVED FIXED
Alias: None
Product: systemtap
Classification: Unclassified
Component: tapsets (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Unassigned
URL:
Keywords:
: 13377 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-06-28 20:04 UTC by David Smith
Modified: 2012-04-23 19:30 UTC (History)
1 user (show)

See Also:
Host: s390x
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Smith 2010-06-28 20:04:23 UTC
In tapsets/s390x/registers.stp, the function _stp_arg() has this comment before it:

/*
 * Return the value of function arg #argnum (1=first arg).
 ...
 * We don't yet support extracting arg #6 and beyond, which are passed
 * on stack
 */

Since the s390x doesn't support extracting arg6 (or greater), this means that
the following nd_syscall probes fail:

nd_syscall.epoll_pwait *
nd_syscall.fork
nd_syscall.futex
nd_syscall.compat_futex
nd_syscall.mbind *
nd_syscall.move_pages *
nd_syscall.pselect6
nd_syscall.compat_pselect6
nd_syscall.pselect7
nd_syscall.compat_pselect7a
nd_syscall.recvfrom
nd_syscall.sendto
nd_syscall.splice

Note that the optional probes marked with '*' don't actually exist on RHEL5
s390x (kernel 2.6.18-194.el5), but might exist in newer kernels.

When the nd_syscalls.exp testcase is run, errors like the following will be seen:

ERROR: Cannot access arg(6)
Comment 1 David Smith 2012-04-19 15:25:17 UTC
*** Bug 13377 has been marked as a duplicate of this bug. ***
Comment 2 David Smith 2012-04-23 19:30:47 UTC
Fixed in commit f861d05.  The s390x _stp_arg() function now uses syscall_get_arguments().

On RHEL5, nd_syscall.exp goes from 44 FAILs to 0 FAILs, 6 KPASS.

On RHEL6, nd_syscall.exp goes from 7 FAILs to 0 FAILs.