* [Bug runtime/30617] New: Systemtap unable to successfully build kernel modules linux-6.5 @ 2023-07-05 14:21 wcohen at redhat dot com 2023-07-05 14:24 ` [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 wcohen at redhat dot com ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: wcohen at redhat dot com @ 2023-07-05 14:21 UTC (permalink / raw) To: systemtap https://sourceware.org/bugzilla/show_bug.cgi?id=30617 Bug ID: 30617 Summary: Systemtap unable to successfully build kernel modules linux-6.5 Product: systemtap Version: unspecified Status: NEW Severity: normal Priority: P2 Component: runtime Assignee: systemtap at sourceware dot org Reporter: wcohen at redhat dot com Target Milestone: --- Fedora rawhide recently switched to the linux-6.5 kernels. Systemtap from the git repo works with the earlier linux-6.4, but when attempting to run any systemtap instrumentation on linux-6.5 the build fails. This can be seen with "make installcheck" the smoke test will fail with the following messages. In file included from /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/runtime.h:271, from /home/wcohen/systemtap_write/install/share/systemtap/runtime/runtime.h:26, from /tmp/stapndYBKY/stap_34ef71e6e2ed0e338834720b8dff538e_1736_src.c:21: /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/access_process_vm.h: In function '__access_process_vm_': /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/access_process_vm.h:57:36: error: passing argument 1 of 'get_user_pages_remote' from incompatible pointer type [-Werror=incompatible-pointer-types] 57 | ret = get_user_pages_remote (tsk, mm, addr, 1, write, 1, &page, &vma); | ^~~ | | | struct task_struct * In file included from ./include/linux/kallsyms.h:13, from ./include/linux/ftrace.h:13, from ./include/linux/kprobes.h:28, from /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/runtime.h:21: ./include/linux/mm.h:2377:46: note: expected 'struct mm_struct *' but argument is of type 'struct task_struct *' 2377 | long get_user_pages_remote(struct mm_struct *mm, | ~~~~~~~~~~~~~~~~~~^~ /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/access_process_vm.h:57:41: error: passing argument 2 of 'get_user_pages_remote' makes integer from pointer without a cast [-Werror=int-conversion] 57 | ret = get_user_pages_remote (tsk, mm, addr, 1, write, 1, &page, &vma); | ^~ | | | struct mm_struct * ./include/linux/mm.h:2378:42: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *' 2378 | unsigned long start, unsigned long nr_pages, | ~~~~~~~~~~~~~~^~~~~ /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/access_process_vm.h:57:54: error: passing argument 5 of 'get_user_pages_remote' makes pointer from integer without a cast [-Werror=int-conversion] 57 | ret = get_user_pages_remote (tsk, mm, addr, 1, write, 1, &page, &vma); | ^~~~~ | | | int ./include/linux/mm.h:2379:66: note: expected 'struct page **' but argument is of type 'int' 2379 | unsigned int gup_flags, struct page **pages, | ~~~~~~~~~~~~~~^~~~~ /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/access_process_vm.h:57:61: error: passing argument 6 of 'get_user_pages_remote' makes pointer from integer without a cast [-Werror=int-conversion] 57 | ret = get_user_pages_remote (tsk, mm, addr, 1, write, 1, &page, &vma); | ^ | | | int ./include/linux/mm.h:2380:33: note: expected 'int *' but argument is of type 'int' 2380 | int *locked); | ~~~~~^~~~~~ /home/wcohen/systemtap_write/install/share/systemtap/runtime/linux/access_process_vm.h:57:13: error: too many arguments to function 'get_user_pages_remote' 57 | ret = get_user_pages_remote (tsk, mm, addr, 1, write, 1, &page, &vma); | ^~~~~~~~~~~~~~~~~~~~~ ./include/linux/mm.h:2377:6: note: declared here 2377 | long get_user_pages_remote(struct mm_struct *mm, | ^~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[4]: *** [scripts/Makefile.build:252: /tmp/stapndYBKY/stap_34ef71e6e2ed0e338834720b8dff538e_1736_src.o] Error 1 make[3]: *** [Makefile:2050: /tmp/stapndYBKY] Error 2 WARNING: kbuild exited with status: 2 Pass 4: compilation failed. [man error::pass4] child process exited abnormally -- You are receiving this mail because: You are the assignee for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 2023-07-05 14:21 [Bug runtime/30617] New: Systemtap unable to successfully build kernel modules linux-6.5 wcohen at redhat dot com @ 2023-07-05 14:24 ` wcohen at redhat dot com 2023-07-06 16:05 ` wcohen at redhat dot com ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: wcohen at redhat dot com @ 2023-07-05 14:24 UTC (permalink / raw) To: systemtap https://sourceware.org/bugzilla/show_bug.cgi?id=30617 William Cohen <wcohen at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Systemtap unable to |Systemtap unable to |successfully build kernel |successfully build kernel |modules linux-6.5 |modules for linux-6.5 -- You are receiving this mail because: You are the assignee for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 2023-07-05 14:21 [Bug runtime/30617] New: Systemtap unable to successfully build kernel modules linux-6.5 wcohen at redhat dot com 2023-07-05 14:24 ` [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 wcohen at redhat dot com @ 2023-07-06 16:05 ` wcohen at redhat dot com 2023-07-10 14:16 ` wcohen at redhat dot com 2023-07-10 15:08 ` wcohen at redhat dot com 3 siblings, 0 replies; 5+ messages in thread From: wcohen at redhat dot com @ 2023-07-06 16:05 UTC (permalink / raw) To: systemtap https://sourceware.org/bugzilla/show_bug.cgi?id=30617 William Cohen <wcohen at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED --- Comment #1 from William Cohen <wcohen at redhat dot com> --- Found that the specific upstream linux kernel git commit causing the issue is: commit ca5e863233e8f6acd1792fd85d6bc2729a1b2c10 Author: Lorenzo Stoakes <lstoakes@gmail.com> Date: Wed May 17 20:25:39 2023 +0100 mm/gup: remove vmas parameter from get_user_pages_remote() The only instances of get_user_pages_remote() invocations which used the vmas parameter were for a single page which can instead simply look up the VMA directly. In particular:- - __update_ref_ctr() looked up the VMA but did nothing with it so we simply remove it. - __access_remote_vm() was already using vma_lookup() when the original lookup failed so by doing the lookup directly this also de-duplicates the code. We are able to perform these VMA operations as we already hold the mmap_lock in order to be able to call get_user_pages_remote(). As part of this work we add get_user_page_vma_remote() which abstracts the VMA lookup, error handling and decrementing the page reference count should the VMA lookup fail. This forms part of a broader set of patches intended to eliminate the vmas parameter altogether. [akpm@linux-foundation.org: avoid passing NULL to PTR_ERR] Link: https://lkml.kernel.org/r/d20128c849ecdbf4dd01cc828fcec32127ed939a.1684350871.git.lstoakes@gmail.com Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> (for arm64) Acked-by: David Hildenbrand <david@redhat.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> (for s390) Reviewed-by: Christoph Hellwig <hch@lst.de> Cc: Christian König <christian.koenig@amd.com> Cc: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jarkko Sakkinen <jarkko@kernel.org> Cc: Jason Gunthorpe <jgg@nvidia.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Sakari Ailus <sakari.ailus@linux.intel.com> Cc: Sean Christopherson <seanjc@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> The vma argument is dropped from get_user_pages_remote() and a get_user_page_vma_remote() should be used in situations where vma being passed into get_user_pages_remote() is non-NULL. The plan of action to fix this is to check for get_user_page_vma_remote() as a autoconf test and then use it in the systemtap runtime if it is available. -- You are receiving this mail because: You are the assignee for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 2023-07-05 14:21 [Bug runtime/30617] New: Systemtap unable to successfully build kernel modules linux-6.5 wcohen at redhat dot com 2023-07-05 14:24 ` [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 wcohen at redhat dot com 2023-07-06 16:05 ` wcohen at redhat dot com @ 2023-07-10 14:16 ` wcohen at redhat dot com 2023-07-10 15:08 ` wcohen at redhat dot com 3 siblings, 0 replies; 5+ messages in thread From: wcohen at redhat dot com @ 2023-07-10 14:16 UTC (permalink / raw) To: systemtap https://sourceware.org/bugzilla/show_bug.cgi?id=30617 --- Comment #2 from William Cohen <wcohen at redhat dot com> --- Created attachment 14958 --> https://sourceware.org/bugzilla/attachment.cgi?id=14958&action=edit Patch to use new get_user_page_vma_remote function in linux 6.5 This patch allows things to compile on rawhide linux 6.5 kernel. It also allows things to still build on RHEL 8 and 9. However, need to test that the functionality for userspace access via __access_process_vm_ works. -- You are receiving this mail because: You are the assignee for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 2023-07-05 14:21 [Bug runtime/30617] New: Systemtap unable to successfully build kernel modules linux-6.5 wcohen at redhat dot com ` (2 preceding siblings ...) 2023-07-10 14:16 ` wcohen at redhat dot com @ 2023-07-10 15:08 ` wcohen at redhat dot com 3 siblings, 0 replies; 5+ messages in thread From: wcohen at redhat dot com @ 2023-07-10 15:08 UTC (permalink / raw) To: systemtap https://sourceware.org/bugzilla/show_bug.cgi?id=30617 William Cohen <wcohen at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #3 from William Cohen <wcohen at redhat dot com> --- Following test provided reasonable results on Fedora rawhide and RHEL8: sudo ../install/bin/stap --example para-callgraph.stp 'process("/usr/bin/ls").function("*")' -c /usr/bin/ls The following also produced reasonable results on Fedora rawhide and RHEL8: sudo ../install/bin/stap --example glibc-malloc.stp -c 'stap --dump-functions' The patch is in the master branch as: commit e891a37e366362a12ca311439918d69ffe641cec (HEAD -> master, origin/master, origin/HEAD) Author: William Cohen <wcohen@redhat.com> Date: Sun Jul 9 16:46:20 2023 -0400 Adjust runtime _access_process_vm_ to work with linux 6.5 Linux kernel commit ca5e863233e8f6acd1792fd85d6bc2729a1b2c10 eliminated the vma argument for ‘get_user_pages_remote. For linux 6.5 kernel use the get_user_page_vma_remote function in its place like the __access_remote_vm function in mm/memory.c of the kernel. -- You are receiving this mail because: You are the assignee for the bug. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-07-10 15:08 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-07-05 14:21 [Bug runtime/30617] New: Systemtap unable to successfully build kernel modules linux-6.5 wcohen at redhat dot com 2023-07-05 14:24 ` [Bug runtime/30617] Systemtap unable to successfully build kernel modules for linux-6.5 wcohen at redhat dot com 2023-07-06 16:05 ` wcohen at redhat dot com 2023-07-10 14:16 ` wcohen at redhat dot com 2023-07-10 15:08 ` wcohen at redhat dot com
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).