Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp2747911pxb; Mon, 31 Jan 2022 03:31:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzb4TkUbVYv9Szk6+wCXWuM4G/k6YONnhwvhx42iMiEP4XJGXhhYN/8nYclRFgQdNmUf/hY X-Received: by 2002:a65:4c43:: with SMTP id l3mr13371435pgr.494.1643628696029; Mon, 31 Jan 2022 03:31:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643628696; cv=none; d=google.com; s=arc-20160816; b=aCPLAN8obi5Kpqkk2GXP86lQ33fvOC8Il8D43xxRibA+sdBCZdDF/LqhdQ+uhvgU6J WzwvZXC1y6d17/ot7lBrxRW4IBb7NNFEb4Qbe5W8pA2+kQ+s+1qFR9dPC+cz1kFYu8yH 7gtrv9t8NLCjvdeS3I+8xWOmjtJ1TiEyjrg/1fS9tVbrtRUtV6GeZAmMLf8nBBGp+4Xz hcXLhztk6uMU3qGKoMyqq2mg/Fdl8gHgnwn0QgmrYYF5qCJxKvsQLelv7FyVRPJ7U6x0 +kxsMtmnj/k0PiAsWWP/zrpKp9Iawbqr8qYw7HFcvBluB8FIDBSsGZ8AVR0JI0F6koQ3 kxKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=qBRm3X+bFlq2uddMz4dS1v977rSddYeT1DVBPmoaXm0=; b=q9eO3PRu/gkZeMAWHadvrbCPYIzoPIB5E89/Bnf/yb9C22i0QBeGbzmVLjCxxPqnN6 8Ou+opokspFiMrlafnc+NxftRUPOyUFEjBESAnhNWxzYmFtZIJb5ATyUVrcOFowMUiXD /JXHHH+V6qdjvAyBdcadrmeZ11U2P9wgyPL3hhLhg2Ng+s9eQAnD5jZHAoq32C4l6+JU CPBV40i9A4JW8sf3hZ1YaR16OMOSey3qKcqfkXhw+jVYEddpITvJiU4J1cn8jeL7ZK5T pSD8/UH0gIB677PRGb3nL3DC0mUucgb6+56lv7xgcOzF8/7H4CLWdIxMFQltURfLLkRG G8bA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=AV3VOxfA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z9si14758720pgu.60.2022.01.31.03.31.23; Mon, 31 Jan 2022 03:31:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=AV3VOxfA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350606AbiA1TAO (ORCPT + 99 others); Fri, 28 Jan 2022 14:00:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233548AbiA1TAK (ORCPT ); Fri, 28 Jan 2022 14:00:10 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CCB02C061714 for ; Fri, 28 Jan 2022 11:00:09 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id x7so13603456lfu.8 for ; Fri, 28 Jan 2022 11:00:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qBRm3X+bFlq2uddMz4dS1v977rSddYeT1DVBPmoaXm0=; b=AV3VOxfAW4xYtFVAqVWiqtqdAo2gePPE6r5NNM7Fle0w13Ckd39WxVpKUkjIj4ivt8 3T+5rVMZvBKFSvkfYWLcRGSeRLAz+BDzFTEeTrxLea2DWAm1Sb8U3PNGOxaIm32gs/Xa Vor8qlVZUZxrtccQLgBLDfq3rHkZTP/+ih0xyKaNKbDclffG7qEmS5arelN/bAfo7j0k eN6hWiMBvgPiE8qDn9AJ70q7c95UtrjrzbS8g9rtYv7K48cX2rYPgU5Y7zV7tiPXg3Nc wc3QhElD5tEwheHgwqTgoH7dnPbuBjUSQ2H2zzTcy7pqvimLKRZkA2L1ccA0gVeHkwQD pxXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qBRm3X+bFlq2uddMz4dS1v977rSddYeT1DVBPmoaXm0=; b=v8W7SS0nVbLMiwL+dUufWHN8ebL57GAdevRCdVwAFNHLJB4tftRRaOeueV9SSdFlin cXkC5BamcIc/HQEDRD7Z+Ana37IRq5GsPMpLFz7LScX1E/iaub2xiBuZOpDALolnQcL3 CN+NQCiDfheNc0LKquGW/P+3cpxKyaJiOqMRupfP6Po+XJM2opvgrdAovye18C8lViLB A/sn82HvOnArlZ7M4vT4Muw6EOG79owVVKalA0DEGk98TQTP9ebdxouqNI0VsNBB3sWz H9aWF5ewhOGxSo9XG5eMyIpDSBw0S0CFk1FPD3Ez1OXLQo89+hQ7f2O1R3XEluIXsOPw 6yEw== X-Gm-Message-State: AOAM5302lsuvwHhiyiTxbrQuwIF8zqjdiqC8F8/WNGolh7iah/ekyoF9 Ga5y+cmJaEXDlpX2BVtj65L2EZTcXFUu7o5bfrA3Cw== X-Received: by 2002:ac2:5510:: with SMTP id j16mr7086081lfk.240.1643396407846; Fri, 28 Jan 2022 11:00:07 -0800 (PST) MIME-Version: 1.0 References: <20220128105746.2459-1-changbin.du@gmail.com> <20220128152147.mwjkf45z72qwdikq@mail.google.com> In-Reply-To: <20220128152147.mwjkf45z72qwdikq@mail.google.com> From: Nick Desaulniers Date: Fri, 28 Jan 2022 10:59:55 -0800 Message-ID: Subject: Re: [PATCH] kallsyms: ignore local block labels generated by compiler To: Changbin Du , Masahiro Yamada Cc: Nathan Chancellor , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-riscv@lists.infradead.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 28, 2022 at 7:21 AM Changbin Du wrote: > > On Fri, Jan 28, 2022 at 06:57:46PM +0800, Changbin Du wrote: > > The llvm compiler can generate lots of local block labels and they might > > overlap with C defined symbols. So let's ignore such local labels. > > > > Before this change, dumpstack shows a local symbol for epc: > > [ 0.040341][ T0] Hardware name: riscv-virtio,qemu (DT) > > [ 0.040376][ T0] epc : .LBB6_14+0x22/0x6a > > [ 0.040452][ T0] ra : restore_all+0x12/0x6e > > > > After this change, the C defined symbol is shown which is expected: > > [ 0.035795][ T0] Hardware name: riscv-virtio,qemu (DT) > > [ 0.036332][ T0] epc : trace_hardirqs_on+0x54/0x13c > > [ 0.036567][ T0] ra : restore_all+0x12/0x6e > > > > Signed-off-by: Changbin Du > > --- > > scripts/kallsyms.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c > > index 54ad86d13784..5f4be9d72a32 100644 > > --- a/scripts/kallsyms.c > > +++ b/scripts/kallsyms.c > > @@ -108,6 +108,7 @@ static bool is_ignored_symbol(const char *name, char type) > > /* Symbol names that begin with the following are ignored.*/ > > static const char * const ignored_prefixes[] = { > > "$", /* local symbols for ARM, MIPS, etc. */ > > + ".LBB", /* local block labels generated by compiler */ > I aslo found many symbols like '.Ltmpxxx', '.L__unnamed_xx'. So should we just > ignore all symbols prefixed by '.L'? .L prefixes are "local labels" meaning they don't get an entry in the symbol table. The trade off is that there is no such convention between compiler generated local label naming conventions, vs hand written ones. If we omit all local labels, then it might be surprising that a handwritten local label disappeared from this list. I think though that we should omit all local labels, and if someone needs a label to appear in their dumpstack, then they should simply drop the .L prefix on their handwritten label. > > > ".LASANPC", /* s390 kasan local symbols */ > > "__crc_", /* modversions */ > > "__efistub_", /* arm64 EFI stub namespace */ > > -- > > 2.32.0 > > > > -- > Cheers, > Changbin Du -- Thanks, ~Nick Desaulniers