This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug kprobes/23186] New: struct flowi4 not found in kernel<net/flow.h> on kernel 3.10.0-862.2.3.el7.x86_64
- From: "cmedved at cloudamize dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Tue, 15 May 2018 19:27:33 +0000
- Subject: [Bug kprobes/23186] New: struct flowi4 not found in kernel<net/flow.h> on kernel 3.10.0-862.2.3.el7.x86_64
- Auto-submitted: auto-generated
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.