From nobody Mon Feb 9 00:42:47 2026 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 DCD84C7EE23 for ; Thu, 8 Jun 2023 23:24:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237050AbjFHXYI (ORCPT ); Thu, 8 Jun 2023 19:24:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230018AbjFHXYF (ORCPT ); Thu, 8 Jun 2023 19:24:05 -0400 Received: from mail-pf1-x435.google.com (mail-pf1-x435.google.com [IPv6:2607:f8b0:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26A7730D3; Thu, 8 Jun 2023 16:24:04 -0700 (PDT) Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-662f0feafb2so894664b3a.1; Thu, 08 Jun 2023 16:24:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686266643; x=1688858643; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=c9n2t88k5l25l+V1epjNXEK63vWDBxvkQoOlMhLNqLg=; b=SBSIUhPrRrc7qbYg1YEXXpBH7SlseeKKAdZu5PZyANs9ehltKLx93rcU4K/T2IoW8V VMkOv9UoLOZNzNxhiTKs9hualW+5WmRmRaScKP2n6jRjVmIjxkfazlqRtFKadnOlTT1m 3/1JVx4JnBxwz6hmyhSMT7Psd1DuwnOuslVgjwi5UyteRZEZFcR0F5SkljtKupuq42To QUI3qg96CIHYKLiAPgYzKrwwOekFkiCzqOtmp6RryNbXe5mK++CzHlDBDyo5Jj7qXmsi DR+8pgB7QBxIkehKh5KgI8izK1E5930J73WVWBLdA8e22Q3znZ1E8xEY6TFJBwioic50 YPpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686266643; x=1688858643; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=c9n2t88k5l25l+V1epjNXEK63vWDBxvkQoOlMhLNqLg=; b=ECjxD05B3fVpA3NjeDIn6pPdf7mKkqoYJ+zX2YJqZzZSvL3ymU8nT4cUbWD9HjkiOE SzhB8MV4dEFqUaHtzJisdN6a83EawGYZe5/hmqfb4G+3FrwRW4nKP1dyW+iP/AAQpDao 0UrchXYaM9w+K0Rvk8IPPpBdgQm4fwintk0+IaF9whT9RaSyAYAKhrw7q4fdT+4RMgBF apcwbb3S3j0dTWf5lZ4G0EGT22JitG8k9mUhNfd3T3JUwzxH3MRKay3V/yW0zKnDchk3 aks8Bnt1tGcSCIy8A+FPEBR5d0O8FuhlHXUqQ18EaEehHApM/ROJhcsaGdUKEhTBodsn blmA== X-Gm-Message-State: AC+VfDxmZA185F8tjTgvjRjtzKTqBnmzbnswNnlBRiPhdS01er+RZ4qO mp8SiWB/mpXg6p7seM1mcec= X-Google-Smtp-Source: ACHHUZ5KzPdFNXDFwLtrz6JBhE7MZHse+1u+WzpT+99I0KSQt8Slf73lo/uQ5vZ8nlza+SJfGMOvTQ== X-Received: by 2002:a05:6a20:258b:b0:106:5dff:5db5 with SMTP id k11-20020a056a20258b00b001065dff5db5mr3887018pzd.1.1686266643452; Thu, 08 Jun 2023 16:24:03 -0700 (PDT) Received: from bangji.hsd1.ca.comcast.net ([2601:647:6700:7f00:c14c:6e39:cb7d:ad66]) by smtp.gmail.com with ESMTPSA id e18-20020a656792000000b0053f1d55676fsm1618203pgr.2.2023.06.08.16.24.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jun 2023 16:24:03 -0700 (PDT) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ian Rogers , Adrian Hunter , Peter Zijlstra , Ingo Molnar , LKML , linux-perf-users@vger.kernel.org, Stephane Eranian Subject: [PATCH 1/3] perf list: Check if libpfm4 event is supported Date: Thu, 8 Jun 2023 16:23:58 -0700 Message-ID: <20230608232400.3056312-2-namhyung@kernel.org> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog In-Reply-To: <20230608232400.3056312-1-namhyung@kernel.org> References: <20230608232400.3056312-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Some of its event info cannot be used directly due to missing default attributes. Let's check if the event is supported before printing like we do for hw and cache events. Cc: Stephane Eranian Signed-off-by: Namhyung Kim Acked-by: Ian Rogers @google.com> --- tools/perf/util/pfm.c | 58 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c index 076aecc22c16..4c1024c343dd 100644 --- a/tools/perf/util/pfm.c +++ b/tools/perf/util/pfm.c @@ -13,6 +13,8 @@ #include "util/pmus.h" #include "util/pfm.h" #include "util/strbuf.h" +#include "util/cpumap.h" +#include "util/thread_map.h" =20 #include #include @@ -123,6 +125,36 @@ int parse_libpfm_events_option(const struct option *op= t, const char *str, return -1; } =20 +static bool is_libpfm_event_supported(const char *name, struct perf_cpu_ma= p *cpus, + struct perf_thread_map *threads) +{ + struct perf_pmu *pmu; + struct evsel *evsel; + struct perf_event_attr attr =3D {}; + bool result =3D true; + int ret; + + ret =3D pfm_get_perf_event_encoding(name, PFM_PLM0|PFM_PLM3, + &attr, NULL, NULL); + if (ret !=3D PFM_SUCCESS) + return false; + + pmu =3D perf_pmus__find_by_type((unsigned int)attr.type); + evsel =3D parse_events__add_event(0, &attr, name, /*metric_id=3D*/NULL, p= mu); + if (evsel =3D=3D NULL) + return false; + + evsel->is_libpfm_event =3D true; + + if (evsel__open(evsel, cpus, threads) < 0) + result =3D false; + + evsel__close(evsel); + evsel__delete(evsel); + + return result; +} + static const char *srcs[PFM_ATTR_CTRL_MAX] =3D { [PFM_ATTR_CTRL_UNKNOWN] =3D "???", [PFM_ATTR_CTRL_PMU] =3D "PMU", @@ -146,6 +178,8 @@ print_libpfm_event(const struct print_callbacks *print_= cb, void *print_state, { int j, ret; char topic[80], name[80]; + struct perf_cpu_map *cpus =3D perf_cpu_map__empty_new(1); + struct perf_thread_map *threads =3D thread_map__new_by_tid(0); =20 strbuf_setlen(buf, 0); snprintf(topic, sizeof(topic), "pfm %s", pinfo->name); @@ -185,14 +219,15 @@ print_libpfm_event(const struct print_callbacks *prin= t_cb, void *print_state, ainfo.name, ainfo.desc); } } - print_cb->print_event(print_state, - pinfo->name, - topic, - name, info->equiv, - /*scale_unit=3D*/NULL, - /*deprecated=3D*/NULL, "PFM event", - info->desc, /*long_desc=3D*/NULL, - /*encoding_desc=3D*/buf->buf); + + if (is_libpfm_event_supported(name, cpus, threads)) { + print_cb->print_event(print_state, pinfo->name, topic, + name, info->equiv, + /*scale_unit=3D*/NULL, + /*deprecated=3D*/NULL, "PFM event", + info->desc, /*long_desc=3D*/NULL, + /*encoding_desc=3D*/buf->buf); + } =20 pfm_for_each_event_attr(j, info) { pfm_event_attr_info_t ainfo; @@ -215,6 +250,10 @@ print_libpfm_event(const struct print_callbacks *print= _cb, void *print_state, print_attr_flags(buf, &ainfo); snprintf(name, sizeof(name), "%s::%s:%s", pinfo->name, info->name, ainfo.name); + + if (!is_libpfm_event_supported(name, cpus, threads)) + continue; + print_cb->print_event(print_state, pinfo->name, topic, @@ -225,6 +264,9 @@ print_libpfm_event(const struct print_callbacks *print_= cb, void *print_state, /*encoding_desc=3D*/buf->buf); } } + + perf_cpu_map__put(cpus); + perf_thread_map__put(threads); } =20 void print_libpfm_events(const struct print_callbacks *print_cb, void *pri= nt_state) --=20 2.41.0.162.gfafddb0af9-goog From nobody Mon Feb 9 00:42:47 2026 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 0A685C7EE23 for ; Thu, 8 Jun 2023 23:24:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237002AbjFHXYM (ORCPT ); Thu, 8 Jun 2023 19:24:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43928 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235662AbjFHXYF (ORCPT ); Thu, 8 Jun 2023 19:24:05 -0400 Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B51E30D5; Thu, 8 Jun 2023 16:24:05 -0700 (PDT) Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-652dd220d67so1170519b3a.3; Thu, 08 Jun 2023 16:24:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686266644; x=1688858644; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=kjeLkyzQBXDMmpW+mv6gsgImE+Yu4bQUfqrg+TqZuYQ=; b=ibE9O4dYS1ra4OHX4kutCOvMuID0Kg1allAnNGKK7d7R/qu9abP0f7h2svtYDkhnMm bdABXieXA739dpn2o0zTSAI/NcVbO6gashW4K3+EaLqhPjZ7nlPCaa5kYKJoKokOBnBK terliYL8Lw+RoQyGSt6I7CkUnbKfM31IgCkrLXF6TwMYtDDbU1A2yWk0OsDHnSBl1tQo XJnrwA0ubqGIeM3nIL97/sC7E5L0vXSC5wXWXw6QlDkdGc3PqKy+JTdEgOoc/ZdqibjV qfEdUgInntX6zr3dnUHX7YM16yzZmGG/uNYwyaV+0v7HabN+o1lJ50dpgR367Qa2LESD Zg2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686266644; x=1688858644; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kjeLkyzQBXDMmpW+mv6gsgImE+Yu4bQUfqrg+TqZuYQ=; b=ABVrpVPtxUpHTVgRULyoxpMxJY9hG+215P/TNsxvfqQwczsgxWHUharX7ik2pfQ/VH s55bj0mqKDbKeHI5yhw0Mm8G95sIYNnq3n+6FxNHi9OuYObrVHbi2b56SnCiQkD2cWhn chIT3evKABCWUhIFVXsVH5E3CkP8HQX3zbibbXZKA8nVfqtkL5fVO5w923++IMeVJYnW R76W9yT53E8miOWbNA1sM16lO98e81IyTbRVdsQVMMddmR6a5N6SN3qSw0lN4sS12I2A M4mZ2kIeEAHqxdrGC+eTBVt1Hx84kuBH0y0CFQMQgaSnimuGR0ZoQw/RBwZvae5v+9R1 UfTg== X-Gm-Message-State: AC+VfDwj2PBAWDhit9gAeUCnRl2F+70FGbnpkweJdQ8v4b4uQ5P/5W/s heY2E3apjs1sUdyqraF5mMg= X-Google-Smtp-Source: ACHHUZ56HF4mrC1wuxfo6zs6P/vtng2zGHyWFeNeC9/6vGJOUA7S0uNad0wr6sX9JS52h9bU+59DLQ== X-Received: by 2002:a05:6a21:7883:b0:10f:be0:4dce with SMTP id bf3-20020a056a21788300b0010f0be04dcemr9864782pzc.8.1686266644383; Thu, 08 Jun 2023 16:24:04 -0700 (PDT) Received: from bangji.hsd1.ca.comcast.net ([2601:647:6700:7f00:c14c:6e39:cb7d:ad66]) by smtp.gmail.com with ESMTPSA id e18-20020a656792000000b0053f1d55676fsm1618203pgr.2.2023.06.08.16.24.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jun 2023 16:24:04 -0700 (PDT) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ian Rogers , Adrian Hunter , Peter Zijlstra , Ingo Molnar , LKML , linux-perf-users@vger.kernel.org, Stephane Eranian Subject: [PATCH 2/3] perf list: Check arguments to show libpfm4 events Date: Thu, 8 Jun 2023 16:23:59 -0700 Message-ID: <20230608232400.3056312-3-namhyung@kernel.org> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog In-Reply-To: <20230608232400.3056312-1-namhyung@kernel.org> References: <20230608232400.3056312-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ian Rogers This is particularly useful for tests. $ perf list pfm Signed-off-by: Ian Rogers Signed-off-by: Namhyung Kim --- tools/perf/builtin-list.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c index 03b5d26b2489..7fec2cca759f 100644 --- a/tools/perf/builtin-list.c +++ b/tools/perf/builtin-list.c @@ -15,6 +15,7 @@ #include "util/pmu.h" #include "util/debug.h" #include "util/metricgroup.h" +#include "util/pfm.h" #include "util/string2.h" #include "util/strlist.h" #include "util/strbuf.h" @@ -457,7 +458,11 @@ int cmd_list(int argc, const char **argv) OPT_END() }; const char * const list_usage[] =3D { +#ifdef HAVE_LIBPFM + "perf list [] [hw|sw|cache|tracepoint|pmu|sdt|metric|metricgrou= p|event_glob|pfm]", +#else "perf list [] [hw|sw|cache|tracepoint|pmu|sdt|metric|metricgrou= p|event_glob]", +#endif NULL }; =20 @@ -539,7 +544,12 @@ int cmd_list(int argc, const char **argv) default_ps.metricgroups =3D true; default_ps.metrics =3D false; metricgroup__print(&print_cb, ps); - } else if ((sep =3D strchr(argv[i], ':')) !=3D NULL) { + } +#ifdef HAVE_LIBPFM + else if (strcmp(argv[i], "pfm") =3D=3D 0) + print_libpfm_events(&print_cb, ps); +#endif + else if ((sep =3D strchr(argv[i], ':')) !=3D NULL) { char *old_pmu_glob =3D default_ps.pmu_glob; =20 default_ps.event_glob =3D strdup(argv[i]); --=20 2.41.0.162.gfafddb0af9-goog From nobody Mon Feb 9 00:42:47 2026 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 EA878C7EE25 for ; Thu, 8 Jun 2023 23:24:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237141AbjFHXYQ (ORCPT ); Thu, 8 Jun 2023 19:24:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236869AbjFHXYG (ORCPT ); Thu, 8 Jun 2023 19:24:06 -0400 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DFA0830D6; Thu, 8 Jun 2023 16:24:05 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-6549df4321aso1164375b3a.2; Thu, 08 Jun 2023 16:24:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686266645; x=1688858645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=Y7Oi+GH5jDhIbsSZz3UzpQ6ZcXdqQl0c/NxuRLG3Zcw=; b=irxIeUO7Sd4FnxQuFjTG37xSzBx7D8IgOOOQsFiJAHBjXP1HO6u+yDSa51dmefB0+k XHcS4pexrVO6+m9HkQPk6Q6fRwQ8kSSWD/LGDdCnkN1K0sxp64aWX23tz3WzLoc3LNnH NYyKTcf7zoq6w3/+GA0X5AILWB+41KJL3KL0DX2TdXZb29opIdkUsyOiiJAiCQBxN4lv oUrqpXW7/DWbdjbhNXGAceVfdUIedUuuuljZUmM5l4YW+ksmT/E36a6TKY/pO0R6pvVk khgr9RR4C+RZaLtoscCG1y/R99ot2xLPnMjPzZgO9KSdzNLPEu21nTIsFswLwgEwKlUE rHfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686266645; x=1688858645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Y7Oi+GH5jDhIbsSZz3UzpQ6ZcXdqQl0c/NxuRLG3Zcw=; b=ETblhsc5OJncjrbK8GZPDC7NHxbDQfif3u6Og583CHxINjCCMCgtlrU4Xso8kynFoC BOVqLdaTn4PPDsU8dfdqqhgbwj2rZps9fuJmlUtuaMsrvFrde2T2VGORsmy+ZdfWLoi5 VtGxl6nt+9S626r2KnmxfdiBDecuG+dNOqs9PTwp4dMSOdg2xnucZ76Utta1DhDktObb pPqqwppPfPNPACGgBSWatNHxcdGrdHghOSkvlvXuBLYj/WG53cpLCAomTF3ueVBbNGmF 3B3I0mvXpHTGqEjeAOZsFfQXMdt121uabcYMbVM2JJVdP4N37SIirhyf54lxpLor1OV8 qUWQ== X-Gm-Message-State: AC+VfDwM+KpbIp9TlVfAZgkGmYLivChVFvZVueB2vHrcTcI7QZ5OJ9pI 6eHTeVL0jOLDAPlQg/1KdIU= X-Google-Smtp-Source: ACHHUZ4LpecJsdJU4HIoQH1QPQw7XoW2hNQCfBMwLah1Rfx1muXidyhttKX7pnYRYmxhDRR0BDqmLA== X-Received: by 2002:a05:6a20:7d90:b0:10a:cb95:5aa3 with SMTP id v16-20020a056a207d9000b0010acb955aa3mr9639139pzj.7.1686266645318; Thu, 08 Jun 2023 16:24:05 -0700 (PDT) Received: from bangji.hsd1.ca.comcast.net ([2601:647:6700:7f00:c14c:6e39:cb7d:ad66]) by smtp.gmail.com with ESMTPSA id e18-20020a656792000000b0053f1d55676fsm1618203pgr.2.2023.06.08.16.24.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jun 2023 16:24:04 -0700 (PDT) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ian Rogers , Adrian Hunter , Peter Zijlstra , Ingo Molnar , LKML , linux-perf-users@vger.kernel.org, Stephane Eranian Subject: [PATCH 3/3] perf test: Add test of libpfm4 events Date: Thu, 8 Jun 2023 16:24:00 -0700 Message-ID: <20230608232400.3056312-4-namhyung@kernel.org> X-Mailer: git-send-email 2.41.0.162.gfafddb0af9-goog In-Reply-To: <20230608232400.3056312-1-namhyung@kernel.org> References: <20230608232400.3056312-1-namhyung@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Ian Rogers $ ./perf test -v 102 102: perf all libpfm4 events test : --- start --- test child forked, pid 3030994 Testing ix86arch::UNHALTED_CORE_CYCLES Testing ix86arch::INSTRUCTION_RETIRED Testing ix86arch::UNHALTED_REFERENCE_CYCLES Testing ix86arch::LLC_REFERENCES Testing ix86arch::LLC_MISSES Testing ix86arch::BRANCH_INSTRUCTIONS_RETIRED Testing ix86arch::MISPREDICTED_BRANCH_RETIRED Testing perf_raw::r0000 Testing icl::UNHALTED_CORE_CYCLES Testing icl::UNHALTED_REFERENCE_CYCLES ... test child finished with 0 ---- end ---- perf all libpfm4 events test: Ok Signed-off-by: Ian Rogers Signed-off-by: Namhyung Kim --- tools/perf/tests/shell/stat_all_pfm.sh | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 tools/perf/tests/shell/stat_all_pfm.sh diff --git a/tools/perf/tests/shell/stat_all_pfm.sh b/tools/perf/tests/shel= l/stat_all_pfm.sh new file mode 100755 index 000000000000..4d004f777a6e --- /dev/null +++ b/tools/perf/tests/shell/stat_all_pfm.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# perf all libpfm4 events test +# SPDX-License-Identifier: GPL-2.0 + +if perf version --build-options | grep HAVE_LIBPFM | grep -q OFF +then + echo "Skipping, no libpfm4 support" + exit 2 +fi + +err=3D0 +for p in $(perf list --raw-dump pfm) +do + if echo "$p" | grep -q unc_ + then + echo "Skipping uncore event '$p' that may require additional options." + continue + fi + echo "Testing $p" + result=3D$(perf stat --pfm-events "$p" true 2>&1) + x=3D$? + if echo "$result" | grep -q "failed to parse event $p : invalid or missi= ng unit mask" + then + continue + fi + if test "$x" -ne "0" + then + echo "Unexpected exit code '$x'" + err=3D1 + fi + if ! echo "$result" | grep -q "$p" && ! echo "$result" | grep -q "" + then + # We failed to see the event and it is supported. Possibly the workloa= d was + # too small so retry with something longer. + result=3D$(perf stat --pfm-events "$p" perf bench internals synthesize= 2>&1) + x=3D$? + if test "$x" -ne "0" + then + echo "Unexpected exit code '$x'" + err=3D1 + fi + if ! echo "$result" | grep -q "$p" + then + echo "Event '$p' not printed in:" + echo "$result" + err=3D1 + fi + fi +done + +exit "$err" --=20 2.41.0.162.gfafddb0af9-goog