From nobody Mon Jun 29 22:04:26 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F5F5C433EF for ; Wed, 2 Feb 2022 07:08:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230328AbiBBHIh (ORCPT ); Wed, 2 Feb 2022 02:08:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230026AbiBBHIc (ORCPT ); Wed, 2 Feb 2022 02:08:32 -0500 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 975EFC061714 for ; Tue, 1 Feb 2022 23:08:32 -0800 (PST) Received: by mail-pj1-x102d.google.com with SMTP id y5-20020a17090aca8500b001b8127e3d3aso5126231pjt.3 for ; Tue, 01 Feb 2022 23:08:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=isRldP9fFyPZZ4AnoT4OlDoHYssmiFfl/ObaGaQurAg=; b=nS16NWpCQJ0kR87VFI43GxIKH09pjmc9NbU1DK7DjTHpNbKPvk7/eqQ+DiCtOL+Fm5 z2T1Sf5yPHE6qYUhqi9M2ajk5qXbx2CRKQWCmZnkhQ0U7QoBPSZmtHW9wcadkKxnqBT1 SSuzROuRnHWwueUEEKF0Ed7VeUqb44i55cQnFNF+02Gh/r3WCF5lnaGvS3XTOcTwDOdq 9Jv1sIZf+qY2AyLS0VwBT9uAZbNuUh/i0GAsWhiqcXEgn3bl2vTkpnx/lDuaGUwlGEWV cS2DYhxgXYhv4qhjfNVyJiRuniGca/Uwk+g7SM4Z9oYUrMvpqU+3h8uCSoST8keQC5R/ eyBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=isRldP9fFyPZZ4AnoT4OlDoHYssmiFfl/ObaGaQurAg=; b=Wt7VFW9Nb0W/wiBTKVi2e+dNJVpOqZtwr4grbJbaJDDspuNRuXNEdlEKrT3DAuJqaF XZV/oJuc9F+YJsAYwkbG7Ysn2UXFol+qEfNEEPmgjqfc4jjwVUcx65sNtWAlo/UNiUtF VlUdZ+jLIup6td1DcjwrGZghsE0rkk6ix9GrUE5nB6yCZlxlATsKJn0N0BvbE9SUG1jL opzxA52BKahi/ArhW6vebeomD2ZnltiAgA/BfuJ+Yo2vQrSfWvuOyNPC3eAShZK5L1yi JveY3GGASUXsUZaQNnf4SFboDeZ95y0aryBlv8pizn/3lt/xONJTLSwKA7Igk8bj/Soz zghA== X-Gm-Message-State: AOAM532uvXbO9NqW6g93L9bXsNBAHoQOj3v6BK4PW9pRr9Mg4S/JoGGT PlC/riY77I9NLhONB8PAYIY= X-Google-Smtp-Source: ABdhPJxXVQqKJwLjCW5ETn9ZwYT2Pam5UB89A0RLxhwDvwKr1k/zRFgQswDhtml75VqfPmcauazf8w== X-Received: by 2002:a17:902:70ca:: with SMTP id l10mr29535064plt.121.1643785712164; Tue, 01 Feb 2022 23:08:32 -0800 (PST) Received: from balhae.hsd1.ca.comcast.net ([2601:647:4800:c6f0:9c9f:e426:5704:d42b]) by smtp.gmail.com with ESMTPSA id e15sm4936879pjd.52.2022.02.01.23.08.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Feb 2022 23:08:31 -0800 (PST) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Andi Kleen , Ian Rogers Subject: [PATCH 1/4] perf annotate: Set error stream of objdump process for TUI Date: Tue, 1 Feb 2022 23:08:25 -0800 Message-Id: <20220202070828.143303-2-namhyung@kernel.org> X-Mailer: git-send-email 2.35.0.rc2.247.g8bbb082509-goog In-Reply-To: <20220202070828.143303-1-namhyung@kernel.org> References: <20220202070828.143303-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The stderr should be set to a pipe when using TUI. Otherwise it'd print to stdout and break TUI windows with an error message. Signed-off-by: Namhyung Kim --- tools/perf/util/annotate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 01900689dc00..8190a124b99d 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -2036,6 +2036,7 @@ static int symbol__disassemble(struct symbol *sym, st= ruct annotate_args *args) memset(&objdump_process, 0, sizeof(objdump_process)); objdump_process.argv =3D objdump_argv; objdump_process.out =3D -1; + objdump_process.err =3D -1; if (start_command(&objdump_process)) { pr_err("Failure starting to run %s\n", command); err =3D -1; --=20 2.35.0.rc2.247.g8bbb082509-goog From nobody Mon Jun 29 22:04:26 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D05F6C433EF for ; Wed, 2 Feb 2022 07:08:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232058AbiBBHIk (ORCPT ); Wed, 2 Feb 2022 02:08:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54560 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230252AbiBBHIe (ORCPT ); Wed, 2 Feb 2022 02:08:34 -0500 Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B1F1C061714 for ; Tue, 1 Feb 2022 23:08:34 -0800 (PST) Received: by mail-pj1-x102f.google.com with SMTP id y5-20020a17090aca8500b001b8127e3d3aso5126281pjt.3 for ; Tue, 01 Feb 2022 23:08:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MV8O8CJsQqYhluLSIAE5EBtANtsg2uFNQiqm9GdY+xw=; b=RTpFyNrvnzH0p1PgIOkxHqhsetwx2FAo4V3xbl+gpI+Isi3fZ45JjEcOWTQxPfm2Bs zUoRU4Q6jyonbJl3KesIwyYV1W6Suagm8/oq9ImbQcMB+sp8lm/sU/XhVi0uV5fliYwA qp9w14uQB9hcEonrVhU9KlFlUayz1oB+Pd+suSth/9xprkPXHCh8V5Qlqz+aStObgSBQ cE9sR9DnqHVZ8kWTdPiLW8GwkqPn3fbQYKRPpd4At10vV2CpiMhYcXI12sctgBIjr2RV iGfW0QKE1t7toETcETyC+/kpew+IFKdET/wiQpvE80UpmTsGM/Yff7IMRUAjM5TSOhPu c5tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=MV8O8CJsQqYhluLSIAE5EBtANtsg2uFNQiqm9GdY+xw=; b=7g6+CriW1XFXb3CGSkN+J65qmuKiIQ+/psVU8nHj/qptq5bCiluxZNbh1pATq9FYMQ KepV15urUUHoiUQqTFSfwgCjSqT7lU0xsh9qwyJZQRDdbsfCaYlaJxX3NudrdxSoXyQ4 AILyq/IEty3S4l9u51DW1i+pjJ12u6G9JlKl5yFO2nK6jKe/VpFX/ZaFHFnrF20v8UAt m72QA3kAJnxrZXztYhtL1Ruckz1RCEqL2DeOyA4qvbLL6H3QsqoIMlfHzVPpv4xON44c 5Mbk7yxutVKwjeqDc4KOOIZInSx7e3uw1J9/oK/WB8DIq8zWD4VGdA6idwRN7mZvH07s nwUw== X-Gm-Message-State: AOAM5322hfl+fpAM9iLHFEkeHgBDPfHvo+pUsV6ICzafqYEagbBTip3v UD6WaYjMpJuaff2QVN+Uank= X-Google-Smtp-Source: ABdhPJwtYGMzAM+SS51DxjD9tdBoqxJPgNwZmcMMhwowY51nHYcAbP4gbQ0rBdd61Wd/43Nknqem6Q== X-Received: by 2002:a17:902:7848:: with SMTP id e8mr29415164pln.90.1643785713573; Tue, 01 Feb 2022 23:08:33 -0800 (PST) Received: from balhae.hsd1.ca.comcast.net ([2601:647:4800:c6f0:9c9f:e426:5704:d42b]) by smtp.gmail.com with ESMTPSA id e15sm4936879pjd.52.2022.02.01.23.08.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Feb 2022 23:08:33 -0800 (PST) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Andi Kleen , Ian Rogers , Jiri Olsa Subject: [PATCH 2/4] perf tools: Try chroot'ed filename when opening dso/symbol Date: Tue, 1 Feb 2022 23:08:26 -0800 Message-Id: <20220202070828.143303-3-namhyung@kernel.org> X-Mailer: git-send-email 2.35.0.rc2.247.g8bbb082509-goog In-Reply-To: <20220202070828.143303-1-namhyung@kernel.org> References: <20220202070828.143303-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Currently it doesn't handle tasks in chroot properly. As filenames in MMAP records base on their root directory, it's different than what perf tool can see from outside. Add filename_with_chroot() helper to deal with those cases. The function returns a new filename only if it's in a different root directory. Since it needs to access /proc for the process, it only works until the task exits. With this change, I can see symbols in my program like below. # perf record -o- chroot myroot myprog 3 | perf report -i- ... # # Overhead Command Shared Object Symbol # ........ ....... ................. ............................. # 99.83% myprog myprog [.] loop 0.04% chroot [kernel.kallsyms] [k] fxregs_fixup 0.04% chroot [kernel.kallsyms] [k] rsm_load_seg_32 ... Acked-by: Jiri Olsa Signed-off-by: Namhyung Kim --- tools/perf/util/dso.c | 15 +++++++++++++-- tools/perf/util/dsos.c | 13 +++++++++++++ tools/perf/util/symbol.c | 10 ++++++++++ tools/perf/util/util.c | 31 +++++++++++++++++++++++++++++++ tools/perf/util/util.h | 2 ++ 5 files changed, 69 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c index 9cc8a1772b4b..5ac13958d1bd 100644 --- a/tools/perf/util/dso.c +++ b/tools/perf/util/dso.c @@ -508,8 +508,19 @@ static int __open_dso(struct dso *dso, struct machine = *machine) root_dir, name, PATH_MAX)) goto out; =20 - if (!is_regular_file(name)) - goto out; + if (!is_regular_file(name)) { + char *new_name; + + if (errno !=3D ENOENT || dso->nsinfo =3D=3D NULL) + goto out; + + new_name =3D filename_with_chroot(dso->nsinfo->pid, name); + if (!new_name) + goto out; + + free(name); + name =3D new_name; + } =20 if (dso__needs_decompress(dso)) { char newpath[KMOD_DECOMP_LEN]; diff --git a/tools/perf/util/dsos.c b/tools/perf/util/dsos.c index 183a81d5b2f9..b97366f77bbf 100644 --- a/tools/perf/util/dsos.c +++ b/tools/perf/util/dsos.c @@ -2,12 +2,15 @@ #include "debug.h" #include "dsos.h" #include "dso.h" +#include "util.h" #include "vdso.h" #include "namespaces.h" +#include #include #include #include #include // filename__read_build_id +#include =20 static int __dso_id__cmp(struct dso_id *a, struct dso_id *b) { @@ -76,6 +79,16 @@ bool __dsos__read_build_ids(struct list_head *head, bool= with_hits) if (filename__read_build_id(pos->long_name, &pos->bid) > 0) { have_build_id =3D true; pos->has_build_id =3D true; + } else if (errno =3D=3D ENOENT && pos->nsinfo) { + char *new_name =3D filename_with_chroot(pos->nsinfo->pid, + pos->long_name); + + if (new_name && filename__read_build_id(new_name, + &pos->bid) > 0) { + have_build_id =3D true; + pos->has_build_id =3D true; + } + free(new_name); } nsinfo__mountns_exit(&nsc); } diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index b2ed3140a1fa..34302c61d36b 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -1864,6 +1864,16 @@ int dso__load(struct dso *dso, struct map *map) nsinfo__mountns_exit(&nsc); =20 is_reg =3D is_regular_file(name); + if (!is_reg && errno =3D=3D ENOENT && dso->nsinfo) { + char *new_name =3D filename_with_chroot(dso->nsinfo->pid, + name); + if (new_name) { + is_reg =3D is_regular_file(new_name); + strlcpy(name, new_name, PATH_MAX); + free(new_name); + } + } + #ifdef HAVE_LIBBFD_SUPPORT if (is_reg) bfdrc =3D dso__load_bfd_symbols(dso, name); diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c index fb4f6616b5fa..f8571a66d063 100644 --- a/tools/perf/util/util.c +++ b/tools/perf/util/util.c @@ -431,3 +431,34 @@ void perf_debuginfod_setup(struct perf_debuginfod *di) =20 pr_debug("DEBUGINFOD_URLS=3D%s\n", getenv("DEBUGINFOD_URLS")); } + +/* + * Return a new filename prepended with task's root directory if it's in + * a chroot. Callers should free the returned string. + */ +char *filename_with_chroot(int pid, const char *filename) +{ + char buf[PATH_MAX]; + char proc_root[32]; + char *new_name =3D NULL; + int ret; + + scnprintf(proc_root, sizeof(proc_root), "/proc/%d/root", pid); + ret =3D readlink(proc_root, buf, sizeof(buf) - 1); + if (ret <=3D 0) + return NULL; + + /* readlink(2) does not append a null byte to buf */ + buf[ret] =3D '\0'; + + if (!strcmp(buf, "/")) + return NULL; + + if (strstr(buf, "(deleted)")) + return NULL; + + if (asprintf(&new_name, "%s/%s", buf, filename) < 0) + return NULL; + + return new_name; +} diff --git a/tools/perf/util/util.h b/tools/perf/util/util.h index 7b625cbd2dd8..0f78f1e7782d 100644 --- a/tools/perf/util/util.h +++ b/tools/perf/util/util.h @@ -77,4 +77,6 @@ struct perf_debuginfod { bool set; }; void perf_debuginfod_setup(struct perf_debuginfod *di); + +char *filename_with_chroot(int pid, const char *filename); #endif /* GIT_COMPAT_UTIL_H */ --=20 2.35.0.rc2.247.g8bbb082509-goog From nobody Mon Jun 29 22:04:26 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C0FA8C433EF for ; Wed, 2 Feb 2022 07:08:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232767AbiBBHIn (ORCPT ); Wed, 2 Feb 2022 02:08:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230378AbiBBHIf (ORCPT ); Wed, 2 Feb 2022 02:08:35 -0500 Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 725E1C06173D for ; Tue, 1 Feb 2022 23:08:35 -0800 (PST) Received: by mail-pf1-x433.google.com with SMTP id v74so18036776pfc.1 for ; Tue, 01 Feb 2022 23:08:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3MSKSo23lNPnEGbFeaL8KRRCjFplgMZmOT/lkGw3FKw=; b=mAJpszf7+XKG37QX4BtDPLfljFZzeRnfsfcy2T2Rlq9oeSD4nxsXa2ypZlDZ7E1nlR WNnRC1yjJrrlRkTO8fWJsMO/d9CCmKy/QsoeabYTtAS07ctVN0gWdOvp3kiVH7Gy1f5M /OJG07GshXhol6k08m9ob25Ng7+DkKMHxYaOau7Mk2REH0TG2EFu+vK/tYeET4OBdsnt pTF5cX4yRkBwEv93T+sGuxSvhDEX/KanxC7lnNpetCX8O/uGvntb7sy5GVaVbeLiucxb pOo3lowk9xAd7AnklUjknkX0xqpxfq/nCiZ47FGRX4ixNhZZLY2MzNoSj47MVf1VZN8K Nhsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=3MSKSo23lNPnEGbFeaL8KRRCjFplgMZmOT/lkGw3FKw=; b=RdtYkjzqMVyIXLAInGdNs30BOee/qqdp/Rx2lW4GdnO8Jrc+maM5ZkDxVGzrqaotyu A3pUQ5DrgOQ8mwcIA9dM8zPC+PFkmthGk8KS2OaTyl1mkut+LdqGopPj4a/mNpWT3rtY BaRo6VpENarwT4VY0FGexjBfn3niKMMfFyNIbGa22w1m19NQBUKbsKQwbs/T10l8ftu0 c7j4yhRtquSm8DielkCHkKPeObsy/oUOeb7HS5UjsSfN5Om6Mrj4f7VTPxoW30N7njZ3 xL3b74Akc//XtAN4w0JzAd/XIhoCcPQBlxG/HrOt5bpOCPvc509W6R3SWQM9Mz0kGN0Z pbug== X-Gm-Message-State: AOAM5311RNQUQylhl9s5k17fLcP+2ttwJ5ZPsS1yvIWVTsKjIU9mq6UC spMExmfmm3ON6Zr6ZJXnJEmPUaSwPuU= X-Google-Smtp-Source: ABdhPJxGIp818I59LSE/n7T7jmVLXaGJ0AxZZ+iOTGzr3oENLQsElmeZLZl6JonzFtdQ52LE+8TRVg== X-Received: by 2002:a05:6a00:1992:: with SMTP id d18mr27947480pfl.85.1643785714993; Tue, 01 Feb 2022 23:08:34 -0800 (PST) Received: from balhae.hsd1.ca.comcast.net ([2601:647:4800:c6f0:9c9f:e426:5704:d42b]) by smtp.gmail.com with ESMTPSA id e15sm4936879pjd.52.2022.02.01.23.08.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Feb 2022 23:08:34 -0800 (PST) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Andi Kleen , Ian Rogers , Jiri Olsa Subject: [PATCH 3/4] perf inject: Try chroot directory when reading build-id Date: Tue, 1 Feb 2022 23:08:27 -0800 Message-Id: <20220202070828.143303-4-namhyung@kernel.org> X-Mailer: git-send-email 2.35.0.rc2.247.g8bbb082509-goog In-Reply-To: <20220202070828.143303-1-namhyung@kernel.org> References: <20220202070828.143303-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When reading build-id from a DSO, it should consider if it's from a chroot task. In that case, the path is different so it needs to prepend the root directory to access the file correctly. Acked-by: Jiri Olsa Signed-off-by: Namhyung Kim --- tools/perf/builtin-inject.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index fbf43a454cba..3be581abbdb6 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c @@ -25,6 +25,7 @@ #include "util/synthetic-events.h" #include "util/thread.h" #include "util/namespaces.h" +#include "util/util.h" =20 #include #include @@ -550,6 +551,15 @@ static int dso__read_build_id(struct dso *dso) nsinfo__mountns_enter(dso->nsinfo, &nsc); if (filename__read_build_id(dso->long_name, &dso->bid) > 0) dso->has_build_id =3D true; + else if (dso->nsinfo) { + char *new_name; + + new_name =3D filename_with_chroot(dso->nsinfo->pid, + dso->long_name); + if (new_name && filename__read_build_id(new_name, &dso->bid) > 0) + dso->has_build_id =3D true; + free(new_name); + } nsinfo__mountns_exit(&nsc); =20 return dso->has_build_id ? 0 : -1; --=20 2.35.0.rc2.247.g8bbb082509-goog From nobody Mon Jun 29 22:04:26 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AE97C433EF for ; Wed, 2 Feb 2022 07:08:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233658AbiBBHIr (ORCPT ); Wed, 2 Feb 2022 02:08:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231321AbiBBHIg (ORCPT ); Wed, 2 Feb 2022 02:08:36 -0500 Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98888C061714 for ; Tue, 1 Feb 2022 23:08:36 -0800 (PST) Received: by mail-pl1-x632.google.com with SMTP id k17so17509279plk.0 for ; Tue, 01 Feb 2022 23:08:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9t7iEOUj9IyscO6Mfw9DqFCGsAJD5/8QafkYWmvy0h8=; b=hJRPa+N5tj4CLTB31qJhRznz2dktoYa5z33nyM0IiW/aPzkD0ZjayBNl+gtuvfSTCa NBc+CN/o6P9DhbbpMg+LJ3qqZWYA/ga9OLPwGl6AAKVJ7gjEGw0WtYpKMFjk3Hyy18QY nx06P2EpD5Tk/I094uwtoXWjZKYbWe8Z65fwrMFUqm6SlEbsXj5yU7secu7AZA5Mggd/ 1Q88gHgzAPNd8YVjxedOiZaIVPJIkxfc3FeXLDvAp62f/tqcuQU85i7ut6bhjBUom63m ZpaBnMBGeDtFTMdmxl3SvEKsy35wxCv6l/1fZR2fw7FvrPuvRqPWo8GeULDaGRxhpIQt pTZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=9t7iEOUj9IyscO6Mfw9DqFCGsAJD5/8QafkYWmvy0h8=; b=UhcV8XWmlzp80WI4ePHAfhWNi4lrURuYRVR8mvupc50oABF9FPbhFomhH6TEh5PcTt gNPEI1pFr/ILP4qlnFtI4ViG2sC5LB1btlZUmCeRP3xmqc5FddWCuSVG3GCC7cdPNWVZ w86G6lcel/Nfa9bpEgld4soY1A0kCKehJKE/OFKLgNXtTj7wfB2rFD33zkBW/5LN+nee L7UjlwWVUda/LU4oq2C/QTMXtBz6DSdVYsOnHZHPQotdKfrko5/TJx1WG+bOrUZwiPAl fO9tzcXLyMVKmlct7FPnbcRdAYKJttb8B5+uZvmQ1Eupw5pa+Wch1AelkDvA8bb8DWUo HM0A== X-Gm-Message-State: AOAM532n8Za0d5cMz8iztS1Xpjcd0lZ5p+/fanK8aGuGZxhgSlI/6Tg1 6UueT96GOsIGw2ptte1vXE4= X-Google-Smtp-Source: ABdhPJxKC8gRPijHI+uVxcjWkaM59FKxj6SfHUty0BFB+3DLLBDw99XU4PT8nF7ebfbgBGFrnQ5hNQ== X-Received: by 2002:a17:903:32c2:: with SMTP id i2mr29075994plr.55.1643785716127; Tue, 01 Feb 2022 23:08:36 -0800 (PST) Received: from balhae.hsd1.ca.comcast.net ([2601:647:4800:c6f0:9c9f:e426:5704:d42b]) by smtp.gmail.com with ESMTPSA id e15sm4936879pjd.52.2022.02.01.23.08.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Feb 2022 23:08:35 -0800 (PST) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Andi Kleen , Ian Rogers , Jiri Olsa Subject: [PATCH 4/4] perf annotate: Try chroot filename for objdump Date: Tue, 1 Feb 2022 23:08:28 -0800 Message-Id: <20220202070828.143303-5-namhyung@kernel.org> X-Mailer: git-send-email 2.35.0.rc2.247.g8bbb082509-goog In-Reply-To: <20220202070828.143303-1-namhyung@kernel.org> References: <20220202070828.143303-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Likewise, it should use a proper name in case the task runs under chroot. Acked-by: Jiri Olsa Signed-off-by: Namhyung Kim --- tools/perf/util/annotate.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 8190a124b99d..e4c641b240df 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -33,6 +33,7 @@ #include "string2.h" #include "util/event.h" #include "arch/common.h" +#include "namespaces.h" #include #include #include @@ -1696,6 +1697,15 @@ static int dso__disassemble_filename(struct dso *dso= , char *filename, size_t fil * DSO is the same as when 'perf record' ran. */ __symbol__join_symfs(filename, filename_size, dso->long_name); + + if (access(filename, R_OK) && errno =3D=3D ENOENT && dso->nsinfo) { + char *new_name =3D filename_with_chroot(dso->nsinfo->pid, + filename); + if (new_name) { + strlcpy(filename, new_name, filename_size); + free(new_name); + } + } } =20 free(build_id_path); --=20 2.35.0.rc2.247.g8bbb082509-goog