[Bug runtime/13440] New: cast.exp fails on s390x umod cast in (kernel) begin probe

mjw at redhat dot com sourceware-bugzilla@sourceware.org
Sat Nov 26 14:22:00 GMT 2011


http://sourceware.org/bugzilla/show_bug.cgi?id=13440

             Bug #: 13440
           Summary: cast.exp fails on s390x umod cast in (kernel) begin
                    probe
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: runtime
        AssignedTo: systemtap@sourceware.org
        ReportedBy: mjw@redhat.com
    Classification: Unclassified


cast.exp will fail on s390x with a ERROR: kernel read fault at
0x000000004128dbba (addr) near identifier '@cast' at
.../testsuite/systemtap.base/cast.stp:37:17

This is because that line does:

cast_data = @cast(get_sockaddr(data), "sockaddr", "<sys/socket.h>")->sa_data[0]

make_typequery will see the "<sys/socket.h>" and assume this is a user mode
cast and generates a umod, not a kmod. dwarf_cast_query::handle_query_module()
sees the umod and installs the uderef for user mode address access. This will
then fail (correctly?) fail to access the address as user data.

We could fix the test by using "kernel<linux/socket.h>" which will generate a
kmod instead of a umod. But the comment in the testcase seems to assume you can
use a umod @cast in a begin probe.

I think we should not try to provide user space access in begin/end probes
through casts and the test should be rewritten if it wants to also test umod
casts.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Systemtap mailing list