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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9B90C4332F for ; Mon, 14 Nov 2022 21:07:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237289AbiKNVHm (ORCPT ); Mon, 14 Nov 2022 16:07:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44056 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235592AbiKNVHj (ORCPT ); Mon, 14 Nov 2022 16:07:39 -0500 Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C48F3265 for ; Mon, 14 Nov 2022 13:07:38 -0800 (PST) Received: by mail-pj1-x104a.google.com with SMTP id pq17-20020a17090b3d9100b0020a4c65c3a9so5321823pjb.0 for ; Mon, 14 Nov 2022 13:07:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=bnk6QcACKDHfLaerzSC+1vUeLHtUQc78SZsram1d2Ns=; b=cYOIca+NENhdYACfSPVmKjGEQejr4Fzt4sx/bRNYYxGS7WA+7LWkliB7ofeINiW5Ms 7Mo+vOvxe2sOljrDaJVzTAgD7JZsSDAoswQjxGt7VCm4y6AWk2H4cFa3TudXjUR/v4/n Bg5eaxBFhCgr8P/QYJY3wvJQLzAe0PWA57d+3m5El8CMl6WLjEsF27B2awPef3C6ogMM 7BXVlXXWsdgrha+Z+1awDzFnC2NbxTvkvh6YuuH5+0wlq+r1PTBuurnIsrSoquELUbx/ Zuxbpw9yOpCqDTyToLd/qn33k7H/fYB5M3mTBVPcxrsaHXvp1V2X28/NGzEUNMQwj3xk SZmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=bnk6QcACKDHfLaerzSC+1vUeLHtUQc78SZsram1d2Ns=; b=4NKCw+4Qwr6hLZTE8fSzRSem2MXXWmQQdYDR8u/nFWfX+VP0/N6YuMBOHUMWqfQrN9 Bs52zSON6V/RhPH6GDaoppF1Sj7omci5erYc1IcwM9C9aZYBmtc7YyMlzZw2E63jqWKQ Z/KOGooVq0D3CGiu14NGxQnL+q/pxZ/zCbBgODGzf5D/8hrZ2+dklInuWYl64I3eDIBu /8sicWnx0KWmJNZng2ohe82ti9oKTrDr6mvHFGhyW+7jx8KURHkRbXCrbnoPMD+89pLh czaerEE+A99lSV7YcsmvIJJJtk8E1CE+ARiqBobEjxHa8OtEh03J/dZKODtnqm6xBPIv GB4Q== X-Gm-Message-State: ANoB5plviC5wLZHJGVS84v12H82orhIZR8VZCX4VcrrRkPlztWIib7xZ 5Xp8DHwjtTqD4eGZSEDrRvvjQLwcxpCD X-Google-Smtp-Source: AA0mqf5XLHjklsrSGEkkJMrepVuOU97r0u2RyqqeVSUn4+rizrpjePhHSNj9GGDN3SSU11FFNjz6Oy0zOSu1 X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:553:438f:b86a:87f]) (user=irogers job=sendgmr) by 2002:a63:4f54:0:b0:476:85ee:aee2 with SMTP id p20-20020a634f54000000b0047685eeaee2mr5230552pgl.582.1668460058138; Mon, 14 Nov 2022 13:07:38 -0800 (PST) Date: Mon, 14 Nov 2022 13:07:13 -0800 Message-Id: <20221114210723.2749751-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.38.1.431.g37b22c650d-goog Subject: [PATCH v3 00/10] Restructure perf list and add json output From: Ian Rogers To: Weilin Wang , Perry Taylor , Caleb Biggers , Leo Yan , Adrian Hunter , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Sandipan Das , Kajol Jain , Zhengjun Xing , Kan Liang , Ravi Bangoria , Xin Gao , Rob Herring , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Cc: Stephane Eranian , Ian Rogers Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Restructure perf list so that it uses callbacks to print events and metrics. Use the callbacks to implement json output. In the process add documentation to pmu.h, avoid some sorting of events, fix some command line and output bugs. v3. Removes is_hybrid from perf_pmu as suggested by Kan Liang. ScaleUnit is added to the json output as suggested by Weilin Wang. Some comments are also improved. v2. Address feedback from Adrian Hunter and make kernel-doc work. Ian Rogers (10): perf pmu: Remove is_hybrid member perf pmu: Add documentation tools lib api fs tracing_path: Add scandir alphasort perf tracepoint: Sort events in iterator perf list: Generalize limiting to a PMU name perf list: Simplify cache event printing perf list: Simplify symbol event printing perf pmu: Restructure print_pmu_events perf list: Reorganize to use callbacks perf list: Add json output option tools/lib/api/fs/tracing_path.c | 16 + tools/lib/api/fs/tracing_path.h | 1 + tools/perf/Documentation/perf-list.txt | 10 +- tools/perf/builtin-list.c | 525 +++++++++++++++++--- tools/perf/util/evsel.c | 5 +- tools/perf/util/evsel.h | 2 +- tools/perf/util/metricgroup.c | 242 +++------- tools/perf/util/metricgroup.h | 4 +- tools/perf/util/pmu.c | 288 ++++++----- tools/perf/util/pmu.h | 128 ++++- tools/perf/util/print-events.c | 638 ++++++++++--------------- tools/perf/util/print-events.h | 42 +- tools/perf/util/stat.c | 11 +- 13 files changed, 1102 insertions(+), 810 deletions(-) -- 2.38.1.431.g37b22c650d-goog