public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* Systemtap is broken on latest ElRepo LT kernels (4.4.x)
@ 2019-02-01  9:38 Kirill Borodin
  2019-02-01 11:35 ` Hou Tao
  0 siblings, 1 reply; 4+ messages in thread
From: Kirill Borodin @ 2019-02-01  9:38 UTC (permalink / raw)
  To: systemtap

Hi, All!

I've tried all systemtap versions 3.x and 4.x for ELRepo LT-kernels, latest
kernels are not supported, for example 4.4.169, 4.4.172 (last one) but it
is working on 4.4.145 !

If it's known bug, please, point me to the thread

I've builded systemtap on the same machines where I trying to use it and
got following errors:

# stap -ve 'probe begin { log("hello world") exit () }' 2>&1 | less


Pass 1: parsed user script and 483 library scripts using
275600virt/76472res/6872shr/69832data kb, in 650usr/30sys/688real ms.

Pass 2: analyzed script: 1 probe, 2 functions, 0 embeds, 0 globals using
277184virt/78116res/6944shr/71416data kb, in 10usr/0sys/9real ms.

Pass 3: translated to C into
"/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c" using
277316virt/79084res/7828shr/71548data kb, in 0usr/0sys/0real ms.

In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,

                 from /usr/share/systemtap/runtime/runtime.h:26,

                 from
/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_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:54:7: error: passing
argument 6 of ‘get_user_pages’ makes pointer from integer without a cast
[-Werror]

       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:26,

                 from
/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:

include/linux/mm.h:1200:6: note: expected ‘struct page **’ but argument is
of type ‘int’

 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,

      ^

In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,

                 from /usr/share/systemtap/runtime/runtime.h:26,

                 from
/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:

/usr/share/systemtap/runtime/linux/access_process_vm.h:54:7: error: passing
argument 7 of ‘get_user_pages’ from incompatible pointer type [-Werror]

       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:26,

                 from
/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:

include/linux/mm.h:1200:6: note: expected ‘struct vm_area_struct **’ but
argument is of type ‘struct page **’

 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,

      ^

In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,

                 from /usr/share/systemtap/runtime/runtime.h:26,

                 from
/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:

/usr/share/systemtap/runtime/linux/access_process_vm.h:54:7: 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:26,

                 from
/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:

include/linux/mm.h:1200:6: note: declared here

 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,

      ^

/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c: At top
level:

cc1: error: unrecognized command line option "-Wno-tautological-compare"
[-Werror]

cc1: all warnings being treated as errors

make[1]: ***
[/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.o] Error 1

make: *** [_module_/tmp/stap38hdTg] Error 2

WARNING: kbuild exited with status: 2

Pass 4: compiled C into "stap_4937637228108ffaaea1709160cfed96_1147.ko" in
8030usr/1810sys/9721real ms.

Pass 4: compilation failed.  [man error::pass4]

Thanks!

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Systemtap is broken on latest ElRepo LT kernels (4.4.x)
  2019-02-01  9:38 Systemtap is broken on latest ElRepo LT kernels (4.4.x) Kirill Borodin
@ 2019-02-01 11:35 ` Hou Tao
  2019-02-01 13:32   ` Kirill Borodin
  0 siblings, 1 reply; 4+ messages in thread
From: Hou Tao @ 2019-02-01 11:35 UTC (permalink / raw)
  To: Kirill Borodin, systemtap

[-- Attachment #1: Type: text/plain, Size: 6198 bytes --]

Hi,

On 2019/2/1 17:38, Kirill Borodin wrote:
> Hi, All!
> 
> I've tried all systemtap versions 3.x and 4.x for ELRepo LT-kernels, latest
> kernels are not supported, for example 4.4.169, 4.4.172 (last one) but it
> is working on 4.4.145 !
> 
> If it's known bug, please, point me to the thread
That's because commit 768ae309a961 ("mm: replace get_user_pages() write/force parameters with gup_flags")
is back-ported to linux-stable-4.4 (the corresponding commit is 8e50b8b07f46), and it changes the function
signature of get_user_pages() as showed in the following diff-stat:

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 5c18cd9c72d2..d1cfd3657cce 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1199,7 +1199,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                      struct vm_area_struct **vmas, int *nonblocking);
 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                    unsigned long start, unsigned long nr_pages,
-                   int write, int force, struct page **pages,
+                   unsigned int gup_flags, struct page **pages,
                    struct vm_area_struct **vmas);
 long get_user_pages_locked(struct task_struct *tsk, struct mm_struct *mm,
                    unsigned long start, unsigned long nr_pages,

Could you please try the attached patch for Systemtap ?

Regards,
Tao
> 
> I've builded systemtap on the same machines where I trying to use it and
> got following errors:
> 
> # stap -ve 'probe begin { log("hello world") exit () }' 2>&1 | less
> 
> 
> Pass 1: parsed user script and 483 library scripts using
> 275600virt/76472res/6872shr/69832data kb, in 650usr/30sys/688real ms.
> 
> Pass 2: analyzed script: 1 probe, 2 functions, 0 embeds, 0 globals using
> 277184virt/78116res/6944shr/71416data kb, in 10usr/0sys/9real ms.
> 
> Pass 3: translated to C into
> "/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c" using
> 277316virt/79084res/7828shr/71548data kb, in 0usr/0sys/0real ms.
> 
> In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,
> 
>                  from /usr/share/systemtap/runtime/runtime.h:26,
> 
>                  from
> /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_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:54:7: error: passing
> argument 6 of ‘get_user_pages’ makes pointer from integer without a cast
> [-Werror]
> 
>        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:26,
> 
>                  from
> /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> 
> include/linux/mm.h:1200:6: note: expected ‘struct page **’ but argument is
> of type ‘int’
> 
>  long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
> 
>       ^
> 
> In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,
> 
>                  from /usr/share/systemtap/runtime/runtime.h:26,
> 
>                  from
> /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> 
> /usr/share/systemtap/runtime/linux/access_process_vm.h:54:7: error: passing
> argument 7 of ‘get_user_pages’ from incompatible pointer type [-Werror]
> 
>        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:26,
> 
>                  from
> /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> 
> include/linux/mm.h:1200:6: note: expected ‘struct vm_area_struct **’ but
> argument is of type ‘struct page **’
> 
>  long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
> 
>       ^
> 
> In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,
> 
>                  from /usr/share/systemtap/runtime/runtime.h:26,
> 
>                  from
> /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> 
> /usr/share/systemtap/runtime/linux/access_process_vm.h:54:7: 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:26,
> 
>                  from
> /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> 
> include/linux/mm.h:1200:6: note: declared here
> 
>  long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
> 
>       ^
> 
> /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c: At top
> level:
> 
> cc1: error: unrecognized command line option "-Wno-tautological-compare"
> [-Werror]
> 
> cc1: all warnings being treated as errors
> 
> make[1]: ***
> [/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.o] Error 1
> 
> make: *** [_module_/tmp/stap38hdTg] Error 2
> 
> WARNING: kbuild exited with status: 2
> 
> Pass 4: compiled C into "stap_4937637228108ffaaea1709160cfed96_1147.ko" in
> 8030usr/1810sys/9721real ms.
> 
> Pass 4: compilation failed.  [man error::pass4]
> 
> Thanks!
> 
> .
> 

[-- Attachment #2: 0001-Fix-get_user_pages-autoconf-test-for-4.4.y-kernel.patch --]
[-- Type: text/plain, Size: 4545 bytes --]

From 5aac815209f36bbfd1f696ac1cb8b65bf48fe102 Mon Sep 17 00:00:00 2001
From: Hou Tao <houtao1@huawei.com>
Date: Fri, 1 Feb 2019 19:22:57 +0800
Subject: [PATCH] Fix get_user_pages() autoconf test for 4.4.y kernel

The following kernel commit has been back-ported to linux-4.4.y kernel:

    commit 8e50b8b07f462ab4b91bc1491b1c91bd75e4ad40
    Author: Lorenzo Stoakes <lstoakes@gmail.com>
    Date:   Thu Oct 13 01:20:16 2016 +0100

	mm: replace get_user_pages() write/force parameters with gup_flags

	commit 768ae309a96103ed02eb1e111e838c87854d8b51 upstream.

	This removes the 'write' and 'force' from get_user_pages() and replaces
	them with 'gup_flags' to make the use of FOLL_FORCE explicit in callers
	as use of this flag can result in surprising behaviour (and hence bugs)
	within the mm subsystem.

And it changes the function signature of get_user_pages(), so introduce
an extra flag STAPCONF_GET_USER_PAGES_FLAGS and the corresponding test program
to fix it.

Signed-off-by: Hou Tao <houtao1@huawei.com>
---
 buildrun.cxx                                  |  2 ++
 runtime/linux/access_process_vm.h             |  7 +++++
 runtime/linux/autoconf-get_user_pages-flags.c | 41 +++++++++++++++++++++++++++
 3 files changed, 50 insertions(+)
 create mode 100644 runtime/linux/autoconf-get_user_pages-flags.c

diff --git a/buildrun.cxx b/buildrun.cxx
index cef14addc..3bc5cfdd6 100644
--- a/buildrun.cxx
+++ b/buildrun.cxx
@@ -463,6 +463,8 @@ compile_pass (systemtap_session& s)
 		  "STAPCONF_GET_USER_PAGES_REMOTE_FLAGS", NULL);
   output_autoconf(s, o, "autoconf-get_user_pages_remote-flags_locked.c",
 		  "STAPCONF_GET_USER_PAGES_REMOTE_FLAGS_LOCKED", NULL);
+  output_autoconf(s, o, "autoconf-get_user_pages-flags.c",
+		  "STAPCONF_GET_USER_PAGES_FLAGS", NULL);
   output_autoconf(s, o, "autoconf-bio-bi_opf.c", "STAPCONF_BIO_BI_OPF", NULL);
   output_autoconf(s, o, "autoconf-linux-sched_headers.c",
 		  "STAPCONF_LINUX_SCHED_HEADERS", NULL);
diff --git a/runtime/linux/access_process_vm.h b/runtime/linux/access_process_vm.h
index 52144e725..94c480496 100644
--- a/runtime/linux/access_process_vm.h
+++ b/runtime/linux/access_process_vm.h
@@ -51,7 +51,14 @@ __access_process_vm_ (struct task_struct *tsk, unsigned long addr, void *buf,
       ret = get_user_pages_remote (tsk, mm, addr, 1, write, 1, &page, &vma);
 #endif
 #else /* !STAPCONF_GET_USER_PAGES_REMOTE* */
+#if defined(STAPCONF_GET_USER_PAGES_FLAGS)
+      unsigned int flags = FOLL_FORCE;
+      if (write)
+	  flags |= FOLL_WRITE;
+      ret = get_user_pages (tsk, mm, addr, 1, flags, &page, &vma);
+#else
       ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
+#endif
 #endif
       if (ret <= 0)
 	break;
diff --git a/runtime/linux/autoconf-get_user_pages-flags.c b/runtime/linux/autoconf-get_user_pages-flags.c
new file mode 100644
index 000000000..f135afa11
--- /dev/null
+++ b/runtime/linux/autoconf-get_user_pages-flags.c
@@ -0,0 +1,41 @@
+#include <linux/mm.h>
+
+//
+// The following kernel commit changed the get_user_pages() function signature
+// on linux-4.4.y:
+//
+// commit 8e50b8b07f462ab4b91bc1491b1c91bd75e4ad40
+// Author: Lorenzo Stoakes <lstoakes@gmail.com>
+// Date:   Thu Oct 13 01:20:16 2016 +0100
+//
+//     mm: replace get_user_pages() write/force parameters with gup_flags
+//
+//     commit 768ae309a96103ed02eb1e111e838c87854d8b51 upstream.
+//
+//     This removes the 'write' and 'force' from get_user_pages() and replaces
+//     them with 'gup_flags' to make the use of FOLL_FORCE explicit in callers
+//     as use of this flag can result in surprising behaviour (and hence bugs)
+//     within the mm subsystem.
+//
+// This changed the function signature from:
+//
+// long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
+//                     unsigned long start, unsigned long nr_pages,
+//                     int write, int force, struct page **pages,
+//                     struct vm_area_struct **vmas);
+//
+// to:
+//
+// long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
+//                     unsigned long start, unsigned long nr_pages,
+//                     unsigned int gup_flags, struct page **pages,
+//                     struct vm_area_struct **vmas);
+//
+
+long gupr_wrapper(struct task_struct *tsk, struct mm_struct *mm,
+		  unsigned long start, unsigned long nr_pages,
+		  unsigned int gup_flags, struct page **pages,
+		  struct vm_area_struct **vmas)
+{
+    return get_user_pages(tsk, mm, start, nr_pages, gup_flags, pages, vmas);
+}
-- 
2.16.2.dirty


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Systemtap is broken on latest ElRepo LT kernels (4.4.x)
  2019-02-01 11:35 ` Hou Tao
@ 2019-02-01 13:32   ` Kirill Borodin
  2019-02-04 16:58     ` Frank Ch. Eigler
  0 siblings, 1 reply; 4+ messages in thread
From: Kirill Borodin @ 2019-02-01 13:32 UTC (permalink / raw)
  To: Hou Tao; +Cc: systemtap

Hi Hou!

Thanks, patch works fine for 4.0 systemtap and for both el6/el7 lt-kernels!

I think we need ping ElRepo with this patch, but they support only 3.3
version AFAIK

Thanks again Hou!

On Fri, Feb 1, 2019 at 2:35 PM Hou Tao <houtao1@huawei.com> wrote:

> Hi,
>
> On 2019/2/1 17:38, Kirill Borodin wrote:
> > Hi, All!
> >
> > I've tried all systemtap versions 3.x and 4.x for ELRepo LT-kernels,
> latest
> > kernels are not supported, for example 4.4.169, 4.4.172 (last one) but it
> > is working on 4.4.145 !
> >
> > If it's known bug, please, point me to the thread
> That's because commit 768ae309a961 ("mm: replace get_user_pages()
> write/force parameters with gup_flags")
> is back-ported to linux-stable-4.4 (the corresponding commit is
> 8e50b8b07f46), and it changes the function
> signature of get_user_pages() as showed in the following diff-stat:
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 5c18cd9c72d2..d1cfd3657cce 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -1199,7 +1199,7 @@ long __get_user_pages(struct task_struct *tsk,
> struct mm_struct *mm,
>                       struct vm_area_struct **vmas, int *nonblocking);
>  long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
>                     unsigned long start, unsigned long nr_pages,
> -                   int write, int force, struct page **pages,
> +                   unsigned int gup_flags, struct page **pages,
>                     struct vm_area_struct **vmas);
>  long get_user_pages_locked(struct task_struct *tsk, struct mm_struct *mm,
>                     unsigned long start, unsigned long nr_pages,
>
> Could you please try the attached patch for Systemtap ?
>
> Regards,
> Tao
> >
> > I've builded systemtap on the same machines where I trying to use it and
> > got following errors:
> >
> > # stap -ve 'probe begin { log("hello world") exit () }' 2>&1 | less
> >
> >
> > Pass 1: parsed user script and 483 library scripts using
> > 275600virt/76472res/6872shr/69832data kb, in 650usr/30sys/688real ms.
> >
> > Pass 2: analyzed script: 1 probe, 2 functions, 0 embeds, 0 globals using
> > 277184virt/78116res/6944shr/71416data kb, in 10usr/0sys/9real ms.
> >
> > Pass 3: translated to C into
> > "/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c" using
> > 277316virt/79084res/7828shr/71548data kb, in 0usr/0sys/0real ms.
> >
> > In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,
> >
> >                  from /usr/share/systemtap/runtime/runtime.h:26,
> >
> >                  from
> > /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_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:54:7: error:
> passing
> > argument 6 of ‘get_user_pages’ makes pointer from integer without a cast
> > [-Werror]
> >
> >        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:26,
> >
> >                  from
> > /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> >
> > include/linux/mm.h:1200:6: note: expected ‘struct page **’ but argument
> is
> > of type ‘int’
> >
> >  long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
> >
> >       ^
> >
> > In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,
> >
> >                  from /usr/share/systemtap/runtime/runtime.h:26,
> >
> >                  from
> > /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> >
> > /usr/share/systemtap/runtime/linux/access_process_vm.h:54:7: error:
> passing
> > argument 7 of ‘get_user_pages’ from incompatible pointer type [-Werror]
> >
> >        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:26,
> >
> >                  from
> > /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> >
> > include/linux/mm.h:1200:6: note: expected ‘struct vm_area_struct **’ but
> > argument is of type ‘struct page **’
> >
> >  long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
> >
> >       ^
> >
> > In file included from /usr/share/systemtap/runtime/linux/runtime.h:214:0,
> >
> >                  from /usr/share/systemtap/runtime/runtime.h:26,
> >
> >                  from
> > /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> >
> > /usr/share/systemtap/runtime/linux/access_process_vm.h:54:7: 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:26,
> >
> >                  from
> > /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c:25:
> >
> > include/linux/mm.h:1200:6: note: declared here
> >
> >  long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
> >
> >       ^
> >
> > /tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.c: At top
> > level:
> >
> > cc1: error: unrecognized command line option "-Wno-tautological-compare"
> > [-Werror]
> >
> > cc1: all warnings being treated as errors
> >
> > make[1]: ***
> > [/tmp/stap38hdTg/stap_4937637228108ffaaea1709160cfed96_1147_src.o] Error
> 1
> >
> > make: *** [_module_/tmp/stap38hdTg] Error 2
> >
> > WARNING: kbuild exited with status: 2
> >
> > Pass 4: compiled C into "stap_4937637228108ffaaea1709160cfed96_1147.ko"
> in
> > 8030usr/1810sys/9721real ms.
> >
> > Pass 4: compilation failed.  [man error::pass4]
> >
> > Thanks!
> >
> > .
> >
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Systemtap is broken on latest ElRepo LT kernels (4.4.x)
  2019-02-01 13:32   ` Kirill Borodin
@ 2019-02-04 16:58     ` Frank Ch. Eigler
  0 siblings, 0 replies; 4+ messages in thread
From: Frank Ch. Eigler @ 2019-02-04 16:58 UTC (permalink / raw)
  To: Kirill Borodin; +Cc: Hou Tao, systemtap


> Thanks, patch works fine for 4.0 systemtap and for both el6/el7 lt-kernels!

Thanks for the patch & testing: merged!

- FChE

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-04 16:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-01  9:38 Systemtap is broken on latest ElRepo LT kernels (4.4.x) Kirill Borodin
2019-02-01 11:35 ` Hou Tao
2019-02-01 13:32   ` Kirill Borodin
2019-02-04 16:58     ` Frank Ch. Eigler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).