Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp182675pxb; Tue, 12 Apr 2022 20:55:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxof+4uf7TCC79nZ3OP9FP70FKlz8qepeDasyf6YlkmSWRWOzNbIfIyRUUO/+hIqxNO5jHb X-Received: by 2002:a05:6a00:2402:b0:4e1:46ca:68bd with SMTP id z2-20020a056a00240200b004e146ca68bdmr7700728pfh.70.1649822152552; Tue, 12 Apr 2022 20:55:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649822152; cv=none; d=google.com; s=arc-20160816; b=ahkS9qUILA3VZdJFeD3N3X76P9x3v4mV/mlgyqDlIP9I/VVSxFrh35h4fky/CtNfgG bDNtKxhgwIHWseah3yY6AgaeYbBJjhkfga9vyw6R1xqTtOJZVgYLS4Wt2a6gr1Q/XCUa TiuwrJQHOFN7yrqq5ePyWO4A0XeZ2JpmyyqDkmN9rsAKmEg35O1Tj3nIWlVHeIASXRV8 qP8UWzT9EcTy85fTGzeweuh7Jcaw717x4FqgqtjtYHhM6+FCAZRW+WdspzsGFXu+MHpB KVKU/F4IoZVMUgg56h3VTVCo2BhUp/ZlcH1CwZA8q4VlLgnXhd0w0XqQu3Yvs8pe0g1K F+Yw== 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=lkI41JF3glGgO0AK4EpfNmpVmEtcA068KzSynd/K3x4=; b=rClI9VytMK3VdW01YhZUQWCc4vEQf+yyTrdNVKth8ca8UgGnSTrC0HBFAFcsIC8E3a gF0ZilR7aKZq4pMjctk3hXXVndBr6ntolYmTmS3uBO9hftflDxDOFONvRPs1H/LiTJAs DzDu38nzzbhWxH0YzX5O0l25YD1TuwXqn7GcUMUuJlEY3j3/cFMpnPkgl45Ka5Y0YKAC 8XhH3YOX0YId1KSS8Cv3GNTmOj+U/jhSAmKsZ+1ORVGbiZPcct7hPj4KNqfJ0O9ihnzw IAYmKIxq80iEqY2CZxkcpf4Err4xRjK1L4czSl3Vjpa6xcOPpFfk0bYH3y5A54sovjpU Xzzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=oYAIU3qZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i186-20020a6387c3000000b003846511c111si4371154pge.43.2022.04.12.20.55.24; Tue, 12 Apr 2022 20:55:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=oYAIU3qZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S229956AbiDLXvH (ORCPT + 99 others); Tue, 12 Apr 2022 19:51:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58080 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230469AbiDLXvF (ORCPT ); Tue, 12 Apr 2022 19:51:05 -0400 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F7011FB for ; Tue, 12 Apr 2022 16:48:44 -0700 (PDT) Received: by mail-wr1-x436.google.com with SMTP id t1so291189wra.4 for ; Tue, 12 Apr 2022 16:48:44 -0700 (PDT) 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=lkI41JF3glGgO0AK4EpfNmpVmEtcA068KzSynd/K3x4=; b=oYAIU3qZkT4Pqst1lJguZvTH6N4db91UNv7MKU3GzUFF64j1mV7XJt1y205deV2B30 I2Fw4+Nt5awZRI3KM1HxBEH2bzsn0ZEGupKWZ88CYy7Ke2/LqzvQFna0YrHaH9EMCEat zRRlPrwoOJ7iOJvJfjgGG2tJYsBWlRNxlfux/fzEkelP+xLlQm3tZDV/QMQZ7/+VuTSb PrafhvVzIHVxRSo0thUbZSxYrgNocxjo2ddpgiNZE5LCCGhesdQvj8MDKWkm0Ggqn/P9 3/hHke6hq+wvGuODOvToHjSbtlCEvGY5OCneLT2m3CconB9zolhd65BPJp56WjAFOD4h Ympw== 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=lkI41JF3glGgO0AK4EpfNmpVmEtcA068KzSynd/K3x4=; b=QYQvn2IgNZFjdQ1X44wdLZDynAadeOJxtFzNjWsisZfIdban47Vu+pBnUlIc+axiRN CiEU/FlEfLkQmvYCw059ozaUokA6gTI4C/+cD6qIiH1L0gDrEoYzdS+JxZXp8bw5Ztp0 9pYufQSI+10PmS6lES2nflYyFk09iEqaw3J+WTxWG0cYFMbGqzAs2WCxxSFnLCI1YLXw dPTWOWDDSQfaOTbJrxSX/HMykNcQ3ru7SXhsft7L/jTVMGnCJ5txQF8iqNxKrPTUNiTg Btd9CiuKAnnNmw4UudXDSIDfLWVgReDthGppDA9RzQ2wHwd1z24dlzUNJplfdIWaqyvZ zkLw== X-Gm-Message-State: AOAM531aIpwzYZthOtegGRhFh4Vgtlo/HMGVBwlS/uILgtbE1JTwqyS1 tLyigLaXuBSilOF1I4lF5wZ4uc79XIdi2kMuEZCgeg== X-Received: by 2002:a5d:6241:0:b0:207:ac0e:3549 with SMTP id m1-20020a5d6241000000b00207ac0e3549mr6211995wrv.343.1649807322726; Tue, 12 Apr 2022 16:48:42 -0700 (PDT) MIME-Version: 1.0 References: <20220412154817.2728324-1-irogers@google.com> In-Reply-To: From: Ian Rogers Date: Tue, 12 Apr 2022 16:48:28 -0700 Message-ID: Subject: Re: [PATCH v2 0/4] Tidy up symbol end fixup To: Namhyung Kim Cc: John Garry , Will Deacon , Mathieu Poirier , Leo Yan , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , James Clark , Alexandre Truong , German Gomez , Dave Marchevsky , Song Liu , Ravi Bangoria , Li Huafei , =?UTF-8?Q?Martin_Li=C5=A1ka?= , William Cohen , Riccardo Mancini , Masami Hiramatsu , Thomas Richter , Lexi Shao , Remi Bernon , Michael Petlan , Denis Nikitin , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Stephane Eranian Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 12, 2022 at 3:12 PM Namhyung Kim wrote: > > Hi Ian, > > On Tue, Apr 12, 2022 at 08:48:13AM -0700, Ian Rogers wrote: > > Fixing up more symbol ends as introduced in: > > https://lore.kernel.org/lkml/20220317135536.805-1-mpetlan@redhat.com/ > > caused perf annotate to run into memory limits - every symbol holds > > all the disassembled code in the annotation, and so making symbols > > ends further away dramatically increased memory usage (40MB to > > >1GB). Modify the symbol end logic so that special kernel cases aren't > > applied in the common case. > > > > v2. Drops a merged patch. Fixes a build issue with libbfd enabled. > > How about just like this? We can get rid of arch functions as they > mostly do the same thing (kernel vs module boundary check). > > Not tested. ;-) > > Thanks, > Namhyung > > --------------8<------------- > > diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c > index dea0fc495185..df41d7266d91 100644 > --- a/tools/perf/util/symbol.c > +++ b/tools/perf/util/symbol.c > @@ -35,6 +35,7 @@ > #include "path.h" > #include > #include > +#include // page_size > > #include > #include > @@ -231,8 +226,16 @@ void symbols__fixup_end(struct rb_root_cached *symbols) > prev = curr; > curr = rb_entry(nd, struct symbol, rb_node); > > - if (prev->end == prev->start || prev->end != curr->start) > - arch__symbols__fixup_end(prev, curr); > + if (prev->end == prev->start) { > + /* Last kernel symbol mapped to end of page */ I like the simpler logic but don't like applying this in symbol-elf given the comment says it is kernel specific - so we could keep the is_kernel change. > + if (!strchr(prev->name, '[') != !strchr(curr->name, '[')) I find this condition not to be intention revealing. On ARM there is also an || for the condition reversed. When this is in an is_kernel block then I think it is clear this is kernel hack, so I think it is good to comment on what the condition is for. > + prev->end = roundup(prev->end + 1, page_size); Currently the roundup varies per architecture, but it is not clear to me that it matters. > + else I think we should comment here that we're extending zero sized symbols to the start of the next symbol. > + prev->end = curr->start; > + > + pr_debug4("%s sym:%s end:%#" PRIx64 "\n", > + __func__, prev->name, prev->end); > + } Thanks, Ian > } > > /* Last entry */