From nobody Thu Dec 18 22:15:23 2025 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 27608C19F20 for ; Tue, 2 May 2023 22:40:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229949AbjEBWkJ (ORCPT ); Tue, 2 May 2023 18:40:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229995AbjEBWkD (ORCPT ); Tue, 2 May 2023 18:40:03 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 33CD435A8 for ; Tue, 2 May 2023 15:39:38 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-b9a7d92d0f7so7689022276.1 for ; Tue, 02 May 2023 15:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1683067177; x=1685659177; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=dIl1kUAo9IYD/UhzcgxFmKKCjB+AQPORsd+rIG9tHuw=; b=vlmuRJR29pht0Gp3pNW+5EH0OUu/iLD4+LrJjhclGh+ZyS7JovyFHhS4SNpxGnSS1N x892EOk8Wi/p6/5ZpEQEmLXWRhDiM0F2E+3W95Dg4DMllizoLNxZvxxFltLWct8Q8jls ezVuzXoF46wy31d5zCVf8OGKlqQaGVFSCfr5xTFyx4I8VSqqAOlw1mcjZhEs9q+CD2Kk gpeGdlWr2A6MXpDa4h5iSK54Dpua0MVOnlwKzHIULOnuQsy2xmLnS3zRNATvW9iNn3H0 nu7FYfNvLyf4IqU+uYkUAhtEzlyizYHtAhHw8DEuHVAVGWpEwa+/3jU7QCpfL0NYySo8 hBUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683067177; x=1685659177; 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=dIl1kUAo9IYD/UhzcgxFmKKCjB+AQPORsd+rIG9tHuw=; b=cIdQeW9llknmtIiif9WXZj23Xokwo7Y/lq7q5+1qw0o/mab+GKWrobENi/L7N8gCHB s9wicwBFzPvyFUYNOra6p/T5fra1PUhxQEhp9uFod7wPlPtvMqELwU9WVVUcLkPIJTSx h3MAcQFvSPfe2t8vw/WKLVPLXEbIHiXIlUkaeKeM4/q7KkXau2Y0hMz2JTgp1np5YuF0 BP/biTUxIkjIcba2wv6Jp9vD129Kpc4821xoEnS4GkbsFbJDeJ6lrzxqHiPTKam2hMkC yOG3YoUJYil4d1vFGIcxgauTNdxjZ9LDO0UUey5wXuaOyW0WJ9z8/cAJ7yGO5jqpsmKx gRsA== X-Gm-Message-State: AC+VfDyfI/Pghk5La2XFdiS9QdCPRx9veqkvS6noFa8wrYnP0rPuNMxY FW7Lv09oGmZcYnmKdXrb+ZUwp1IbDqdB X-Google-Smtp-Source: ACHHUZ658OJAc3DqZHBjuqUr7dv/cjG8MEsPVkZxQ9G6ZD7qckXXN4VR4ZUDntaQKmJ1CB1SF4RKb3ZyaXI+ X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:e70c:446b:d23b:982e]) (user=irogers job=sendgmr) by 2002:a25:ea53:0:b0:b99:3b72:39a with SMTP id o19-20020a25ea53000000b00b993b72039amr6857243ybe.7.1683067177345; Tue, 02 May 2023 15:39:37 -0700 (PDT) Date: Tue, 2 May 2023 15:38:11 -0700 In-Reply-To: <20230502223851.2234828-1-irogers@google.com> Message-Id: <20230502223851.2234828-5-irogers@google.com> Mime-Version: 1.0 References: <20230502223851.2234828-1-irogers@google.com> X-Mailer: git-send-email 2.40.1.495.gc816e09b53d-goog Subject: [PATCH v4 04/44] perf parse-events: Don't reorder ungrouped events by pmu 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 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The pmu_group_name by default returns "cpu" which on non-hybrid/ARM means that ungrouped software, and hardware events are all going to sort by the original insertion index. However, on hybrid and ARM wildcard expansion may mean the PMU name is set and events will be unnecessarily reordered - triggering the reordering warning. Signed-off-by: Ian Rogers Tested-by: Kan Liang --- tools/perf/util/parse-events.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index d71019dcd614..34ba840ae19a 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -2140,25 +2140,32 @@ static int evlist__cmp(void *state, const struct li= st_head *l, const struct list int *leader_idx =3D state; int lhs_leader_idx =3D *leader_idx, rhs_leader_idx =3D *leader_idx, ret; const char *lhs_pmu_name, *rhs_pmu_name; + bool lhs_has_group =3D false, rhs_has_group =3D false; =20 /* * First sort by grouping/leader. Read the leader idx only if the evsel * is part of a group, as -1 indicates no group. */ - if (lhs_core->leader !=3D lhs_core || lhs_core->nr_members > 1) + if (lhs_core->leader !=3D lhs_core || lhs_core->nr_members > 1) { + lhs_has_group =3D true; lhs_leader_idx =3D lhs_core->leader->idx; - if (rhs_core->leader !=3D rhs_core || rhs_core->nr_members > 1) + } + if (rhs_core->leader !=3D rhs_core || rhs_core->nr_members > 1) { + rhs_has_group =3D true; rhs_leader_idx =3D rhs_core->leader->idx; + } =20 if (lhs_leader_idx !=3D rhs_leader_idx) return lhs_leader_idx - rhs_leader_idx; =20 - /* Group by PMU. Groups can't span PMUs. */ - lhs_pmu_name =3D evsel__group_pmu_name(lhs); - rhs_pmu_name =3D evsel__group_pmu_name(rhs); - ret =3D strcmp(lhs_pmu_name, rhs_pmu_name); - if (ret) - return ret; + /* Group by PMU if there is a group. Groups can't span PMUs. */ + if (lhs_has_group && rhs_has_group) { + lhs_pmu_name =3D evsel__group_pmu_name(lhs); + rhs_pmu_name =3D evsel__group_pmu_name(rhs); + ret =3D strcmp(lhs_pmu_name, rhs_pmu_name); + if (ret) + return ret; + } =20 /* Architecture specific sorting. */ return arch_evlist__cmp(lhs, rhs); --=20 2.40.1.495.gc816e09b53d-goog