Message ID | 0c2a00011b37de03efc17626123ce1571b103c7a.1659714518.git.olivier.dion@polymtl.ca |
---|---|
State | New |
Headers |
Return-Path: <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 6432827BBEA; Fri, 5 Aug 2022 16:51:43 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2B7EA27BBE9 for <patchwork@mira.cbaines.net>; Fri, 5 Aug 2022 16:51:43 +0100 (BST) Received: from localhost ([::1]:59472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org>) id 1oJzby-0002xZ-9y for patchwork@mira.cbaines.net; Fri, 05 Aug 2022 11:51:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35292) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1oJzaM-00010p-LQ for guix-patches@gnu.org; Fri, 05 Aug 2022 11:50:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:42339) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1oJzaM-000426-8t for guix-patches@gnu.org; Fri, 05 Aug 2022 11:50:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1oJzaM-0000AD-1a for guix-patches@gnu.org; Fri, 05 Aug 2022 11:50:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#57008] [PATCH] gnu: perf-tools: Patch executable paths Resent-From: Olivier Dion <olivier.dion@polymtl.ca> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 05 Aug 2022 15:50:01 +0000 Resent-Message-ID: <handler.57008.B.1659714594607@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 57008 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 57008@debbugs.gnu.org Cc: Olivier Dion <olivier.dion@polymtl.ca>, othacehe@gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.1659714594607 (code B ref -1); Fri, 05 Aug 2022 15:50:01 +0000 Received: (at submit) by debbugs.gnu.org; 5 Aug 2022 15:49:54 +0000 Received: from localhost ([127.0.0.1]:60321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1oJzaE-00009j-Cx for submit@debbugs.gnu.org; Fri, 05 Aug 2022 11:49:54 -0400 Received: from lists.gnu.org ([209.51.188.17]:44094) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <olivier.dion@polymtl.ca>) id 1oJza9-00009Y-FS for submit@debbugs.gnu.org; Fri, 05 Aug 2022 11:49:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35248) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <olivier.dion@polymtl.ca>) id 1oJza7-0000uf-UF for guix-patches@gnu.org; Fri, 05 Aug 2022 11:49:49 -0400 Received: from smtp.polymtl.ca ([132.207.4.11]:33886) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <olivier.dion@polymtl.ca>) id 1oJza5-0003zo-Hh; Fri, 05 Aug 2022 11:49:46 -0400 Received: from laura.hitronhub.home (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 275FnWfN015868 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Fri, 5 Aug 2022 11:49:40 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 275FnWfN015868 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=polymtl.ca; s=default; t=1659714580; bh=5hqby6MGkPC4mV0/TZs3G2L2Y/NZwrDSqJ3V4laA+ug=; h=From:To:Cc:Subject:Date:From; b=vTVeKJ55PQHesbmrElB0IqgLIekuogz92ujxYJKzZGRYag7P/e9CD5YLaLUZgbkD8 OwVLp7TfUfsWcV3DnSj6dKd02BbQUkDZNhSHjRAQp63lhkiE7cZymn47E27OkExrvW 317WMEWkQZRJYWKaP1JN4YtH7X6BqjQF+wv4rDIc= Date: Fri, 5 Aug 2022 11:49:26 -0400 Message-Id: <0c2a00011b37de03efc17626123ce1571b103c7a.1659714518.git.olivier.dion@polymtl.ca> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Poly-FromMTA: (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) at Fri, 5 Aug 2022 15:49:32 +0000 Received-SPF: pass client-ip=132.207.4.11; envelope-from=olivier.dion@polymtl.ca; helo=smtp.polymtl.ca X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: <guix-patches.gnu.org> List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=unsubscribe> List-Archive: <https://lists.gnu.org/archive/html/guix-patches> List-Post: <mailto:guix-patches@gnu.org> List-Help: <mailto:guix-patches-request@gnu.org?subject=help> List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=subscribe> Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> Reply-to: Olivier Dion <olivier.dion@polymtl.ca> X-ACL-Warn: , Olivier Dion via Guix-patches <guix-patches@gnu.org> From: Olivier Dion via Guix-patches via <guix-patches@gnu.org> X-getmail-retrieved-from-mailbox: Patches |
Series |
[bug#57008] gnu: perf-tools: Patch executable paths
|
|
Commit Message
Olivier Dion
Aug. 5, 2022, 3:49 p.m. UTC
* gnu/packages/instrumentation.scm (perf-tools): Add patch phase. [phases]: Add patch-paths. --- gnu/packages/instrumentation.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
Comments
Hello Olivier, > * gnu/packages/instrumentation.scm (perf-tools): Add patch phase. > [phases]: Add patch-paths. Somehow I still have the same error. Here a complete report: --8<---------------cut here---------------start------------->8--- mathieu@meije ~/guix [env]$ sudo bash -x execsnoop + tracing=/sys/kernel/debug/tracing + flock=/var/tmp/.ftrace-lock + wroteflock=0 + opt_duration=0 + duration= + opt_name=0 + name= + opt_time=0 + opt_reexec=0 + opt_argc=0 + argc=8 + max_argc=16 + ftext= + trap : INT QUIT TERM PIPE HUP + getopts a:d:hrt opt + shift 0 + (( 0 )) + (( 0 )) + (( opt_pid && opt_name )) + (( opt_pid )) + (( opt_name )) + (( opt_file )) + (( opt_argc && argc > max_argc )) + (( opt_duration )) + echo 'Tracing exec()s. Ctrl-C to end.' Tracing exec()s. Ctrl-C to end. + (( opt_duration )) + [[ -x /gnu/store/55q02v1a3qz8n7rlhy3jva9qjkfwj8y0-gawk-5.1.0/bin/awk ]] + awk=gawk + cd /sys/kernel/debug/tracing + [[ -e /var/tmp/.ftrace-lock ]] + echo 25361 + wroteflock=1 + [[ -x /gnu/store/bxh206gz379wkn8cvb2ghlkvpqgwfd2v-gcc-toolchain-10.3.0/bin/getconf ]] ++ getconf LONG_BIT + bits=64 + (( offset = bits / 8 )) + makeprobe sys_execve + func=sys_execve + kname=execsnoop_sys_execve + kprobe='p:execsnoop_sys_execve sys_execve' + i=0 + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string +0(+56(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_sys_execve sys_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string +0(+56(%si)):string +0(+64(%si)):string' + (( i++ )) + (( i < argc + 1 )) + echo nop + echo p:execsnoop_sys_execve sys_execve '+0(+0(%si)):string' '+0(+8(%si)):string' '+0(+16(%si)):string' '+0(+24(%si)):string' '+0(+32(%si)):string' '+0(+40(%si)):string' '+0(+48(%si)):string' '+0(+56(%si)):string' '+0(+64(%si)):string' + makeprobe stub_execve + func=stub_execve + kname=execsnoop_stub_execve + kprobe='p:execsnoop_stub_execve stub_execve' + i=0 + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string +0(+56(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_stub_execve stub_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string +0(+56(%si)):string +0(+64(%si)):string' + (( i++ )) + (( i < argc + 1 )) + echo p:execsnoop_stub_execve stub_execve '+0(+0(%si)):string' '+0(+8(%si)):string' '+0(+16(%si)):string' '+0(+24(%si)):string' '+0(+32(%si)):string' '+0(+40(%si)):string' '+0(+48(%si)):string' '+0(+56(%si)):string' '+0(+64(%si)):string' + makeprobe do_execve + func=do_execve + kname=execsnoop_do_execve + kprobe='p:execsnoop_do_execve do_execve' + i=0 + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string +0(+56(%si)):string' + (( i++ )) + (( i < argc + 1 )) + kprobe='p:execsnoop_do_execve do_execve +0(+0(%si)):string +0(+8(%si)):string +0(+16(%si)):string +0(+24(%si)):string +0(+32(%si)):string +0(+40(%si)):string +0(+48(%si)):string +0(+56(%si)):string +0(+64(%si)):string' + (( i++ )) + (( i < argc + 1 )) + echo p:execsnoop_do_execve do_execve '+0(+0(%si)):string' '+0(+8(%si)):string' '+0(+16(%si)):string' '+0(+24(%si)):string' '+0(+32(%si)):string' '+0(+40(%si)):string' '+0(+48(%si)):string' '+0(+56(%si)):string' '+0(+64(%si)):string' + edie 'ERROR: adding a kprobe for execve. Exiting.' + echo 'ERROR: adding a kprobe for execve. Exiting.' ERROR: adding a kprobe for execve. Exiting. + exec --8<---------------cut here---------------end--------------->8--- Any idea why? Thanks, Mathieu
On Sat, 06 Aug 2022, Mathieu Othacehe <othacehe@gnu.org> wrote: > Hello Olivier, > >> * gnu/packages/instrumentation.scm (perf-tools): Add patch phase. >> [phases]: Add patch-paths. > > Somehow I still have the same error. Here a complete report: Right. There's still a problem with kprobe and execsnoop. However, this patch does fix some other scripts that are using awk and getconf. > Any idea why? The only thing I can think of is that the symbol used by execsnoop for instrumenting the kernel was changed and is not in /proc/kallsyms. I'll try to dig that later this week.
Hi Olivier & Mathieu, Olivier Dion <olivier.dion@polymtl.ca> skribis: > * gnu/packages/instrumentation.scm (perf-tools): Add patch phase. > [phases]: Add patch-paths. [...] > + (substitute* '("execsnoop" "killsnoop" "kernel/funcslower") > + (("/usr/bin/gawk") (which "awk"))) > + (substitute* '"execsnoop" > + (("/usr/bin/getconf") (which "getconf")))))) I went ahead and applied a modified version of this patch that uses ‘search-input-file’ instead of ‘which’. Thanks, Ludo’.
Hey, > I went ahead and applied a modified version of this patch that uses > ‘search-input-file’ instead of ‘which’. Thanks Ludo! Olivier, any progress on the execsnoop issue :) ? Mathieu
On Thu, 01 Sep 2022, Mathieu Othacehe <othacehe@gnu.org> wrote: > Hey, > >> I went ahead and applied a modified version of this patch that uses >> ‘search-input-file’ instead of ‘which’. > > Thanks Ludo! Olivier, any progress on the execsnoop issue :) ? Nope. I did not had time to check it again sorry :-/ Maybe there's somehing missing on the kernel side. I will would check that /sys/kernel/debug/tracing/events has the tracepoints used by execsnoop and that the tracers ftrace and kprobe are correctly configured.
diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm index f52cf11505..95724f976b 100644 --- a/gnu/packages/instrumentation.scm +++ b/gnu/packages/instrumentation.scm @@ -308,7 +308,15 @@ (define-public perf-tools (base32 "1ab735idi0h62yvhzd7822jj3555vygixv4xjrfrdvi8d2hhz6qn")))) (build-system copy-build-system) (arguments - `(#:install-plan + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda _ + (substitute* '("execsnoop" "killsnoop" "kernel/funcslower") + (("/usr/bin/gawk") (which "awk"))) + (substitute* '"execsnoop" + (("/usr/bin/getconf") (which "getconf")))))) + #:install-plan ',(append (map (cut list <> "bin/") '("disk/bitesize"