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 kprobes/23186] New: struct flowi4 not found in kernel<net/flow.h> on kernel 3.10.0-862.2.3.el7.x86_64


https://sourceware.org/bugzilla/show_bug.cgi?id=23186

            Bug ID: 23186
           Summary: struct flowi4 not found in kernel<net/flow.h> on
                    kernel 3.10.0-862.2.3.el7.x86_64
           Product: systemtap
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: kprobes
          Assignee: systemtap at sourceware dot org
          Reporter: cmedved at cloudamize dot com
  Target Milestone: ---

Created attachment 11018
  --> https://sourceware.org/bugzilla/attachment.cgi?id=11018&action=edit
Sample script and error log.

SystemTap Version: 3.2/0.170, rpm 3.2-4.el7
Kernel: Linux stap-rhel7 3.10.0-862.2.3.el7.x86_64 #1 SMP Mon Apr 30 12:37:51
EDT 2018 x86_64 x86_64 x86_64 GNU/Linux

I'm trying to monitor udp_send_skb via dwarfless kprobes (kprobe.function). For
RHEL7 3.10.0-862 kernels, SystemTap fails to build my script with the error
"struct flowi4 not found in kernel<net/flow.h>". I would usually suspect
modifications in the kernel, but that does not appear to be the case.
/usr/src/kernels/3.10.0-862.2.3.el7.x86_64/include/net/flow.h contains the
definition of struct flowi4.

The script works fine when cross-compiling for any RHEL7 3.10.0-693 kernel
(among many others). A diff of include/net/flow.h between the two kernel
versions shows no differences.

Exact error from -vvv output:

semantic error: while processing probe kprobe.function("udp_send_skb")
   thrown from: elaborate.cxx:5751
semantic error: type definition 'struct flowi4' not found in
'kernel<net/flow.h>': operator '@cast' at test.stp:3:21
   thrown from: elaborate.cxx:6380
        source:     saddr = ip_ntop(@cast(fl4,"struct
flowi4","kernel<net/flow.h>")->saddr)
                                    ^

Attached is a sample script showing the issue, the -vvv log, and
/usr/src/kernels/3.10.0-862.2.3.el7.x86_64/include/net/flow.h, just in case.

Also, in case it's necessary, definition for udp_send_skb is here:
https://github.com/torvalds/linux/blob/v3.10/net/ipv4/udp.c#L743

Versions:
[root@stap-rhel7 ~]# rpm -qa --qf %{name}-%{version}-%{release}.%{arch}\\n |
egrep 'systemtap|elfutils|kernel|gcc' | sort
devtoolset-4-gcc-5.3.1-6.1.el7.x86_64
elfutils-default-yama-scope-0.170-4.el7.noarch
elfutils-libelf-0.170-4.el7.x86_64
elfutils-libs-0.170-4.el7.x86_64
gcc-4.8.5-28.el7_5.1.x86_64
kernel-3.10.0-693.el7.x86_64
kernel-3.10.0-862.2.3.el7.x86_64
kernel-debug-devel-3.10.0-862.2.3.el7.x86_64
kernel-devel-3.10.0-862.2.3.el7.x86_64
kernel-headers-3.10.0-862.2.3.el7.x86_64
kernel-tools-3.10.0-862.2.3.el7.x86_64
kernel-tools-libs-3.10.0-862.2.3.el7.x86_64
libgcc-4.8.5-28.el7_5.1.x86_64
systemtap-3.2-4.el7.x86_64
systemtap-client-3.2-4.el7.x86_64
systemtap-devel-3.2-4.el7.x86_64
systemtap-runtime-3.2-4.el7.x86_64

-- 
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]