Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp3035302rwr; Fri, 28 Apr 2023 22:39:42 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4JymUnxFy/DMoKUQ2shwxd5QD+FxiwDajH7hKgI4Rb5shc2fWdd3VPBqUHsc4+XRKXexmS X-Received: by 2002:a17:902:d4c5:b0:1a9:6467:aa8d with SMTP id o5-20020a170902d4c500b001a96467aa8dmr9138409plg.1.1682746782444; Fri, 28 Apr 2023 22:39:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682746782; cv=none; d=google.com; s=arc-20160816; b=r9c/nfQ3FbEa9hkDHxYwn7PmRZmgN7TElEjIMi5AERtdGUGg+7TLNWBPLlQWT8jhFh kc5tFdvbx2IN4EqqZCDWJgKxBgg7WjboWSCfCmRYPnAMHt/beJRiAtLCyVKeFKtTidon tkm/fVjYDdoscIO6nzIU9te9BFVQzYH16V7cw6PFrhGffTeiPntv0/1T8I172CZG56FL fiKnk28sDssaQ71/wHBguMX7DiqiPfTX1FuPMlNXD9z2RxB9jRx+7aXia42IFNF2AMcT jTqO7swzRDHheaCdVgeV/4GmjJiGcBWXSUn/HyyL9uKZBzDFk4ss9jmpobriDhIkGaIj HVlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=vS1UrpzSlF6e1IL2Ub99FazCajkEnmAPiwupuP2N/bo=; b=yDQtLmHYs1MG6w9ahCqKFveL+756bLOzRFGzs5npjG3AJuAkgNC1TycX/FoHOPFBrq j6qw+MuKuSdNzH4VNcCAS4Rar+B1+rpY7dcTg4/fgraltwd/w2MaO8x78j9BYXL7BtOh JgzLHDrIpVnjBoQTzyp1oM4glp6JDUXeNb9Msj9JzF06V1wBHPVxGmwwTt3DVBPOdVI5 O9mZx3cu9hBMFVtE9qcfkGaoKhuTU8ol004Sbtm9Kxh5xu5qYpYlnTK5pq4jxf5pnB7y 4IdIi7X5xFX+8B1pyTpcnzGFkZGgSfTIjcSY/4M52YU6SQXgvWtxpHk6IXxr31xMrKGx yXwA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=jWNONZpr; 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 bc11-20020a170902930b00b001a043389a7asi21179750plb.310.2023.04.28.22.39.29; Fri, 28 Apr 2023 22:39:42 -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=20221208 header.b=jWNONZpr; 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 S1347305AbjD2Fis (ORCPT + 99 others); Sat, 29 Apr 2023 01:38:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39990 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347336AbjD2Fih (ORCPT ); Sat, 29 Apr 2023 01:38:37 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CE4E3C16 for ; Fri, 28 Apr 2023 22:38:04 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-b9a7766d1f2so589677276.3 for ; Fri, 28 Apr 2023 22:38:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1682746673; x=1685338673; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=vS1UrpzSlF6e1IL2Ub99FazCajkEnmAPiwupuP2N/bo=; b=jWNONZprXKMNXC1M/BE62Rc9N1DG0dhUBrVLMs1pgzFvX42kZpdYOXcpmuhniB9SDj blFNIVkszyQPrh02mFojCC/kfpvGEzHzdwyWb1Kia5mRmYLT8DozCuSZ9EoRLbXHvrCX kNPAa5T8zM7aWmvtjO4anjHLACOoAHs/5fs9mvdDrJu60Ddmnqs2KxZjTg8tLunsXBxC OMKOiDm72yZMR8sGVsYfdtBxfY5ImLUQqaXaOL0gqtbdzU7Q83nFc9odJLBpKrstceyQ 8D/QjNn/eDPljRi/KRv+DfS9w5G/8+WBtfAJIaIhf5BIMCbP9+RVgiH4SOxs8alv0W1Z 5DLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682746673; x=1685338673; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vS1UrpzSlF6e1IL2Ub99FazCajkEnmAPiwupuP2N/bo=; b=WUuHV1qF7wEBYCCl5Hv6rR4g8es6W82sFXFCR4K2se4PA9/2tPCJLPUeF2H2wWCe1e mWi7UKN2L8aZMlDDozNoYqaPNwzVO2qS1b40Bui9Ro7eNkAGZUyrk/5gQGOMbC1MYvYN WE4mQQvwMNz4x4sj8MsxLOUBJg8MG3ZJc6m+lbdao/9JV15+ECRLsnCHbR8FI5iCwxok mQTU+L/XEnK9xhTWbw6/N/MFsRMgeBVlVMsEhh/1pmr7jykjGWj7TYp2MTwy8cgBpWO6 VyI5OjLmJ7QPD01IjLdvjHTM0lyY9bSmXHTWelqHsFfov4ejx4hrOpHFm83ayYmKn2vy hDZA== X-Gm-Message-State: AC+VfDwVQN7YTxMLJr6Vyyc8Vi246kjmoiPzSzoWyQ76FegD27U5ogrJ S+pYPHjKdw8LFwu8gYXEI+UltTg+fVXy X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:c563:7e28:fb7c:bce3]) (user=irogers job=sendgmr) by 2002:a05:6902:1891:b0:b99:4c9d:3b5a with SMTP id cj17-20020a056902189100b00b994c9d3b5amr4638533ybb.7.1682746673044; Fri, 28 Apr 2023 22:37:53 -0700 (PDT) Date: Fri, 28 Apr 2023 22:34:39 -0700 In-Reply-To: <20230429053506.1962559-1-irogers@google.com> Message-Id: <20230429053506.1962559-20-irogers@google.com> Mime-Version: 1.0 References: <20230429053506.1962559-1-irogers@google.com> X-Mailer: git-send-email 2.40.1.495.gc816e09b53d-goog Subject: [PATCH v3 19/46] perf print-events: Avoid unnecessary strlist From: Ian Rogers To: Arnaldo Carvalho de Melo , Kan Liang , Ahmad Yasin , Peter Zijlstra , Ingo Molnar , Stephane Eranian , Andi Kleen , Perry Taylor , Samantha Alt , Caleb Biggers , Weilin Wang , Edward Baker , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , Florian Fischer , Rob Herring , Zhengjun Xing , John Garry , Kajol Jain , Sumanth Korikkar , Thomas Richter , Tiezhu Yang , Ravi Bangoria , Leo Yan , Yang Jihong , James Clark , Suzuki Poulouse , Kang Minchul , Athira Rajeev , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ian Rogers Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=unavailable 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 The strlist in print_hwcache_events holds the event names as they are generated, and then it is iterated and printed. This is unnecessary and each event can just be printed as it is processed. Rename the variable i to res, to be more intention revealing and consistent with other code. Signed-off-by: Ian Rogers --- tools/perf/util/print-events.c | 60 ++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/tools/perf/util/print-events.c b/tools/perf/util/print-events.c index 386b1ab0b60e..93bbb868d400 100644 --- a/tools/perf/util/print-events.c +++ b/tools/perf/util/print-events.c @@ -226,58 +226,60 @@ void print_sdt_events(const struct print_callbacks *print_cb, void *print_state) int print_hwcache_events(const struct print_callbacks *print_cb, void *print_state) { - struct strlist *evt_name_list = strlist__new(NULL, NULL); - struct str_node *nd; + const char *event_type_descriptor = event_type_descriptors[PERF_TYPE_HW_CACHE]; - if (!evt_name_list) { - pr_debug("Failed to allocate new strlist for hwcache events\n"); - return -ENOMEM; - } for (int type = 0; type < PERF_COUNT_HW_CACHE_MAX; type++) { for (int op = 0; op < PERF_COUNT_HW_CACHE_OP_MAX; op++) { /* skip invalid cache type */ if (!evsel__is_cache_op_valid(type, op)) continue; - for (int i = 0; i < PERF_COUNT_HW_CACHE_RESULT_MAX; i++) { + for (int res = 0; res < PERF_COUNT_HW_CACHE_RESULT_MAX; res++) { struct perf_pmu *pmu = NULL; char name[64]; - __evsel__hw_cache_type_op_res_name(type, op, i, name, sizeof(name)); + __evsel__hw_cache_type_op_res_name(type, op, res, + name, sizeof(name)); if (!perf_pmu__has_hybrid()) { if (is_event_supported(PERF_TYPE_HW_CACHE, - type | (op << 8) | (i << 16))) - strlist__add(evt_name_list, name); + type | (op << 8) | (res << 16))) { + print_cb->print_event(print_state, + "cache", + /*pmu_name=*/NULL, + name, + /*event_alias=*/NULL, + /*scale_unit=*/NULL, + /*deprecated=*/false, + event_type_descriptor, + /*desc=*/NULL, + /*long_desc=*/NULL, + /*encoding_desc=*/NULL); + } continue; } perf_pmu__for_each_hybrid_pmu(pmu) { if (is_event_supported(PERF_TYPE_HW_CACHE, - type | (op << 8) | (i << 16) | + type | (op << 8) | (res << 16) | ((__u64)pmu->type << PERF_PMU_TYPE_SHIFT))) { char new_name[128]; - snprintf(new_name, sizeof(new_name), - "%s/%s/", pmu->name, name); - strlist__add(evt_name_list, new_name); + snprintf(new_name, sizeof(new_name), + "%s/%s/", pmu->name, name); + print_cb->print_event(print_state, + "cache", + pmu->name, + name, + new_name, + /*scale_unit=*/NULL, + /*deprecated=*/false, + event_type_descriptor, + /*desc=*/NULL, + /*long_desc=*/NULL, + /*encoding_desc=*/NULL); } } } } } - - strlist__for_each_entry(nd, evt_name_list) { - print_cb->print_event(print_state, - "cache", - /*pmu_name=*/NULL, - nd->s, - /*event_alias=*/NULL, - /*scale_unit=*/NULL, - /*deprecated=*/false, - event_type_descriptors[PERF_TYPE_HW_CACHE], - /*desc=*/NULL, - /*long_desc=*/NULL, - /*encoding_desc=*/NULL); - } - strlist__delete(evt_name_list); return 0; } -- 2.40.1.495.gc816e09b53d-goog