From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 476B5C19F2D for ; Tue, 9 Aug 2022 19:41:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4WzSi7Vqru47WBRyemCF08f9j06DN5K5yDp91VwqaUA=; b=3qg5u3BFL2jy29 mmOr7KNGY9OBbQ6d3GVIc+sf/cjvQtjrXpKDm78b4ngd++TaPByJc0jOh3fFqNXZWT+YufG+N3z6+ cl0NJn07eYBE4+uF/M0JnP+twQpeQsrMQcNciHif1LmlABfUPWSQF3yrAt/kIlufQzNtDCHcenJYC v+5ENrviKyAkX+fpdDJ6l3HE0dkt5RqC3I/ETREsfXW9+SIJvQOlMqQUthoBeAYkJCT5CXXy4qUcE oLjszYXLc+NQ/mZW6QZEwlOYacdboIu08zBbnHCE/71aKtDbUJ+sbRcmdfhoJN822eOk5dXzFiEl9 CFAHoF5u6LLsIVlgkqeA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLV5u-005wDx-Ax; Tue, 09 Aug 2022 19:40:50 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLV5s-005wD7-Fq for linux-arm-kernel@bombadil.infradead.org; Tue, 09 Aug 2022 19:40:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=BlSALrogvSAD4eg8Wo0ueXCDkAHOo6MqXSVqCMEC5Hg=; b=AhL2GJYB/kpYJZwdFwqVazkbkg vGbCPA4sQs14VKk83c8y5g2lQxo3pNYcsv99G3iS1rRsB9M+saIBudObi19WAwN1qzVtK5QLEbNPG d/71IM3Q5pw/WX/vnZOjkOMGYy7QVcPA3Ibhpor8LZq36+9XNBHlti/Ul4p1wc10tzIkroP+vepU7 sUlMgfqH7kiCJdPohhRT6Ip3RxZ4dN+0gFmPsIO3onbJWi/vZJzOYCvf2gCVlD1Bo+QkVbnG5nNwQ /lNa44tVnibCkXTUkJcW0Q5nCw6IY8KhUgEjH6d4gY5KDlTCQyr3KnxlZGYEc0mWsHUXsb8vVOJg5 J9J6F50g==; Received: from [187.19.239.32] (helo=quaco.ghostprotocols.net) by desiato.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1oLV5p-000a6f-HC; Tue, 09 Aug 2022 19:40:46 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 249284035A; Tue, 9 Aug 2022 16:40:43 -0300 (-03) Date: Tue, 9 Aug 2022 16:40:43 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Andi Kleen , Zhengjun Xing , Ravi Bangoria , Kan Liang , Adrian Hunter , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Stephane Eranian Subject: Re: [PATCH v4 00/17] Compress the pmu_event tables Message-ID: References: <20220804221816.1802790-1-irogers@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220804221816.1802790-1-irogers@google.com> X-Url: http://acmel.wordpress.com X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Em Thu, Aug 04, 2022 at 03:17:59PM -0700, Ian Rogers escreveu: > jevents.py creates a number of large arrays from the json events. The > arrays contain pointers to strings that need relocating. The > relocations have file size, run time and memory costs. These changes > refactor the pmu_events API so that the storage of the pmu_event > struct isn't exposed. The format is then changed to an offset within a > combined big string, with adjacent pmu_event struct variables being > next to each other in the string separated by \0 - meaning only the > first variable of the struct needs its offset recording. > > Some related fixes are contained with the patches. The architecture > jevents.py creates tables for can now be set by the JEVENTS_ARCH make > variable, with a new 'all' that generates the events and metrics for > all architectures. > > An example of the improvement to the file size on x86 is: > no jevents - the same 19,788,464bytes > x86 jevents - ~16.7% file size saving 23,744,288bytes vs 28,502,632bytes > all jevents - ~19.5% file size saving 24,469,056bytes vs 30,379,920bytes > default build options plus NO_LIBBFD=1. Applied the first four patches, waiting for the review comments to be discussed. - Arnaldo > I originally suggested fixing this problem in: > https://lore.kernel.org/linux-perf-users/CAP-5=fVB8G4bdb9T=FncRTh9oBVKCS=+=eowAO+YSgAhab+Dtg@mail.gmail.com/ > > v4. Fixed an issue with the empty-pmu-events.c spotted by John Garry > . > v3. Fix an ARM build issue with a missed weak symbol. Perform some > pytype clean up. > v2. Split the substring folding optimization to its own patch and > comment tweaks as suggested by Namhyung Kim > . Recompute the file size savings with the > latest json events and metrics. > > Ian Rogers (17): > perf jevents: Clean up pytype warnings > perf jevents: Simplify generation of C-string > perf jevents: Add JEVENTS_ARCH make option > perf jevent: Add an 'all' architecture argument > perf jevents: Remove the type/version variables > perf jevents: Provide path to json file on error > perf jevents: Sort json files entries > perf pmu-events: Hide pmu_sys_event_tables > perf pmu-events: Avoid passing pmu_events_map > perf pmu-events: Hide pmu_events_map > perf test: Use full metric resolution > perf pmu-events: Move test events/metrics to json > perf pmu-events: Don't assume pmu_event is an array > perf pmu-events: Hide the pmu_events > perf metrics: Copy entire pmu_event in find metric > perf jevents: Compress the pmu_events_table > perf jevents: Fold strings optimization > > tools/perf/arch/arm64/util/pmu.c | 4 +- > tools/perf/pmu-events/Build | 6 +- > .../arch/test/test_soc/cpu/metrics.json | 64 +++ > tools/perf/pmu-events/empty-pmu-events.c | 204 +++++++- > tools/perf/pmu-events/jevents.py | 495 ++++++++++++++---- > tools/perf/pmu-events/pmu-events.h | 40 +- > tools/perf/tests/expand-cgroup.c | 25 +- > tools/perf/tests/parse-metric.c | 77 +-- > tools/perf/tests/pmu-events.c | 466 +++++++---------- > tools/perf/util/metricgroup.c | 275 ++++++---- > tools/perf/util/metricgroup.h | 5 +- > tools/perf/util/pmu.c | 139 ++--- > tools/perf/util/pmu.h | 8 +- > tools/perf/util/s390-sample-raw.c | 50 +- > 14 files changed, 1140 insertions(+), 718 deletions(-) > create mode 100644 tools/perf/pmu-events/arch/test/test_soc/cpu/metrics.json > > -- > 2.37.1.559.g78731f0fdb-goog -- - Arnaldo _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel