Bug 1358863

Summary: Current fedora 23 systemtap does not work with the 4.6 kernel
Product: [Fedora] Fedora Reporter: William Cohen <wcohen>
Component: systemtapAssignee: Josh Stone <jistone>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: brolley, dsmith, fche, jdetter, jistone, lberk, mjw, scox, wcohen
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: systemtap-3.0-3.fc23 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-08-08 23:57:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description William Cohen 2016-07-21 15:59:57 UTC
Description of problem:

Changes in 4.6 kernel prevent current systemtap in fedora 23 from working


Version-Release number of selected component (if applicable):
systemtap-3.0-2.fc23.x86_64
kernel-4.6.4-201.fc23.x86_64


How reproducible: everytime


Steps to Reproduce:
1. yum install systemtap*
2. sudo stap-prep
3. cd /usr/share/doc/systemtap-client/examples/memory
5. ./pfaults.stp 


Actual results:

$ ./pfaults.stp 
WARNING: never-assigned local variable 'id' (similar: e, t, name, ftype, fault_type): identifier 'id' at ./pfaults.stp:18:28
 source:   e = t - fault_entry_time[id]
                                    ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h: In function ‘__access_process_vm_’:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:29: error: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                             ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:34: error: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                                  ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:47: error: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                                               ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘struct page **’ but argument is of type ‘int’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:54: error: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                                                      ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘int’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:13: error: too many arguments to function ‘get_user_pages’
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
             ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
include/linux/mm.h:1266:6: note: declared here
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:55:7: error: implicit declaration of function ‘page_cache_release’ [-Werror=implicit-function-declaration]
       page_cache_release (page);
       ^
/tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c: In function ‘function___global_vm_fault_contains__overload_0’:
/tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:1038:34: error: ‘VM_FAULT_MINOR’ undeclared (first use in this function)
  case 2: res = STAP_ARG_value == VM_FAULT_MINOR; break;
                                  ^
/tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.c:1038:34: note: each undeclared identifier is reported only once for each function it appears in
cc1: all warnings being treated as errors
scripts/Makefile.build:291: recipe for target '/tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.o' failed
make[1]: *** [/tmp/stapGb98oM/stap_786b162c487a7c8bde7ba16f2e127e82_8140_src.o] Error 1
Makefile:1433: recipe for target '_module_/tmp/stapGb98oM' failed
make: *** [_module_/tmp/stapGb98oM] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compilation failed.  [man error::pass4]

Expected results:

Script compiled, module loaded, and the script starts logging page faults.


Additional info:

There git checkout of systemtap does not suffer from this problem, so there is a fix in the upstream systemtap.

Comment 1 detter 2016-07-21 16:29:08 UTC
I am having a similar issue after a kernel upgrade on Fedora 23:

In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h: In function ‘__access_process_vm_’:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:29: error: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                             ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:34: error: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                                  ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:47: error: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                                               ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘struct page **’ but argument is of type ‘int’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:54: error: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Werror=int-conversion]
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
                                                      ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
include/linux/mm.h:1266:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘int’
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:13: error: too many arguments to function ‘get_user_pages’
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
             ^
In file included from include/linux/pid_namespace.h:6:0,
                 from include/linux/ptrace.h:8,
                 from include/linux/ftrace.h:13,
                 from include/linux/kprobes.h:42,
                 from /usr/share/systemtap/runtime/linux/runtime.h:21,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
include/linux/mm.h:1266:6: note: declared here
 long get_user_pages(unsigned long start, unsigned long nr_pages,
      ^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:209:0,
                 from /usr/share/systemtap/runtime/runtime.h:24,
                 from /tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:55:7: error: implicit declaration of function ‘page_cache_release’ [-Werror=implicit-function-declaration]
       page_cache_release (page);
       ^
cc1: all warnings being treated as errors
scripts/Makefile.build:291: recipe for target '/tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.o' failed
make[1]: *** [/tmp/stapqENHrE/stap_e6409fd8119a2d60773a128744ff2726_73992_src.o] Error 1
Makefile:1433: recipe for target '_module_/tmp/stapqENHrE' failed
make: *** [_module_/tmp/stapqENHrE] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compilation failed.  [man error::pass4]

Comment 2 Fedora Update System 2016-07-21 19:33:58 UTC
systemtap-3.0-3.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-c87f8f1eb3

Comment 3 Fedora Update System 2016-07-22 19:21:40 UTC
systemtap-3.0-3.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-c87f8f1eb3

Comment 4 Fedora Update System 2016-08-08 23:56:56 UTC
systemtap-3.0-3.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.