From nobody Wed Apr 29 09:34:26 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 5186CC433EF for ; Sat, 18 Jun 2022 01:40:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232947AbiFRBkF (ORCPT ); Fri, 17 Jun 2022 21:40:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230264AbiFRBkD (ORCPT ); Fri, 17 Jun 2022 21:40:03 -0400 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7876F5A17C for ; Fri, 17 Jun 2022 18:40:02 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-317955c99a5so4585527b3.9 for ; Fri, 17 Jun 2022 18:40:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=fnkpOo5YLADNE1+B+/6+urhCqEeqX/fKxsOS3ahRu/0=; b=Rv94vg1GaXWkFNTVkal5h/xnyjLU4wwo+qVIxAHvc64NYBubJlRDP1prW4VKGFfrvj jeNamGVEb17+Mgqr7LKFQm6U13BatvULATpAOz4qpY/PzmMqsBLBZHjVudJR7sOGaYPb AGT3SlKRmUP8qZ3M60E5CXzAfDGnIzauEqSGXKZu9ZMhFjDVF7sTPho6TJ4LGsVAzVEL 0zah9vs3Z8UuuHgcDISiTcnnlLir4GktJdP+WopffrsidTXmr89sRWOwHzK7H3YROSxa wWiwyh+YlTk4Dt32rfrq0ldnydhF4LuwsSZ9lmhYB5Q3AuYTLuncBOF4yCJOeUdI910N 7pNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=fnkpOo5YLADNE1+B+/6+urhCqEeqX/fKxsOS3ahRu/0=; b=uRlTAKF8+CjqeguWzfONcVaURlQGVoRO9xhq0c/YDXH8xHlC6lscoVYoc9hcBFh4J2 RDOv8CyIRF2Fl+I196XgthlRex+cfa1hJ9qTRybdj/WScpcv1nRNNnwCApg4511ff1xI lIIFg8ik7kstSxIImnaBh7C8vQPLBPLOIT6z+TySWw7M1YeKi2JF6ZezLyRCU+d2HzSC xeTPu9aU6XrNCfmuOF+AbPlfTcvlxpzGTQboNKGV8MYe2HzmL1tgGVTHvbYk385EgzEG lJFKrd3oYt78Lu/mGw87CSy2aAFXm2BHM4wUzORaCgxa0LcVQk1Io4G5WhIHPBdYT6pb Zz1g== X-Gm-Message-State: AJIora82IuYo+XPOHaJo/jx3HUW6Y8vae+VzHzsBkejboDZaj6ChThrG UiI5qDGF15MrUfN8NzUoay7Xai8uHRyf X-Google-Smtp-Source: AGRyM1vuSaYRWv3SKrmvuu787RLCZx1/PUy6ELOLp5C74XHO5aco985HvPVV7TxmoctZYYn2krOviADyPLrx X-Received: from irogers.svl.corp.google.com ([2620:15c:2cd:202:c89f:8969:c05d:79b6]) (user=irogers job=sendgmr) by 2002:a81:38c2:0:b0:314:2ef4:4958 with SMTP id f185-20020a8138c2000000b003142ef44958mr14617517ywa.432.1655516401648; Fri, 17 Jun 2022 18:40:01 -0700 (PDT) Date: Fri, 17 Jun 2022 18:39:57 -0700 Message-Id: <20220618013957.999321-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.37.0.rc0.104.g0611611a94-goog Subject: [PATCH] perf metrics: Ensure at least 1 id per metric From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Andi Kleen , John Garry , Zhengjun Xing , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Stephane Eranian , Ian Rogers Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We may have no events for a metric evaluated to a constant. In such a case ensure a tool event is at least evaluated for metric parsing and displaying. Fixes: 8586d2744ff3 ("perf metrics: Don't add all tool events for sharing") Signed-off-by: Ian Rogers --- tools/perf/util/metricgroup.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c index ee8fcfa115e5..8f7baeabc5cf 100644 --- a/tools/perf/util/metricgroup.c +++ b/tools/perf/util/metricgroup.c @@ -1372,6 +1372,7 @@ static int parse_ids(bool metric_no_merge, struct per= f_pmu *fake_pmu, =20 *out_evlist =3D NULL; if (!metric_no_merge || hashmap__size(ids->ids) =3D=3D 0) { + bool added_event =3D false; int i; /* * We may fail to share events between metrics because a tool @@ -1393,8 +1394,16 @@ static int parse_ids(bool metric_no_merge, struct pe= rf_pmu *fake_pmu, if (!tmp) return -ENOMEM; ids__insert(ids->ids, tmp); + added_event =3D true; } } + if (!added_event && hashmap__size(ids->ids) =3D=3D 0) { + char *tmp =3D strdup("duration_time"); + + if (!tmp) + return -ENOMEM; + ids__insert(ids->ids, tmp); + } } ret =3D metricgroup__build_event_string(&events, ids, modifier, has_constraint); --=20 2.37.0.rc0.104.g0611611a94-goog