Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp35286792rwd; Mon, 10 Jul 2023 05:29:39 -0700 (PDT) X-Google-Smtp-Source: APBJJlGq+CgUY4BwN5kK8OprOOPY4vd+O9/ozTlogt3LlMX9kEndLSy53nxgbpqyuxu0VZKNgR20 X-Received: by 2002:a05:6a00:1913:b0:66a:5d4a:e47d with SMTP id y19-20020a056a00191300b0066a5d4ae47dmr17193208pfi.8.1688992178770; Mon, 10 Jul 2023 05:29:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688992178; cv=none; d=google.com; s=arc-20160816; b=dNkkz/AVcnR4IxKeRz0+YB0O7u2ONV++3+/T6chiZGg5XqcE//vn3gCONQ/LumvVJB Zpdi5069W3WgKdDK/zyZ9jQ3sT6VpyRA2XYMy6R+laOIz8AVTGysgfOeChQgprUNyXYs RaeG/P0JtEG0mmvassukmm+meEJBuLP3WGthjhYkZsZ/ZJRN5kLYLF5BmAm8JDWDJg/e FQt4yH2eXkOvhxSsv6gzvB0o8dFTd+Pamrk1lB5DNiNBY4rOoo8CMpHGnYLly76eA9RV qeLkSBVru4jB9RolEVDYu8Fh6A+tl2Vp/eXKWi8pmjUiQxMgbZDYtfHOpbQftS88QUuo 08NQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=dLwJmn+tmwbOBPWghwtM9AUAr/Ufiz4J647x2ZiDQiM=; fh=kgglI1VH9kXDBjmn5Au5+0gE4Ed28d3Mjok+pEOINHQ=; b=FqZcRAH1vAu8QER6iXvDRxwqfxKSdI+fLjpPzJrkviZtEKKZk+SYmsZyGKJHUoB9kT XPlGsDBLjbk1KDavO+C1bpOKXvquYpL/aD7Rc3f6xHTLsj6S2NwYWloIxASuNhNUR3t0 y4JklP+OxIroyYSBhUMcc6nIx5F1SU91mOtgenm1HHsatXnNR2fKi0WtbSVlL0sKw5tc NqGkQ7l+yh100CRQiQ+LIowqUUscL1wQhw1R4DJNBPaHFORqZYYHg6rFx9Ir+I4MbUOe BOxm7iqKqoxgpnjtfWwehYO1UvY4ga7njb9Nb1SsT89iXaQz3bJMLIlkcGzcP7MCv8I+ wFKw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k73-20020a62844c000000b00666b8536d8asi8707351pfd.305.2023.07.10.05.29.26; Mon, 10 Jul 2023 05:29:38 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231370AbjGJMWH (ORCPT + 99 others); Mon, 10 Jul 2023 08:22:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58986 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229517AbjGJMWD (ORCPT ); Mon, 10 Jul 2023 08:22:03 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 782BFB1; Mon, 10 Jul 2023 05:22:02 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 694C4D75; Mon, 10 Jul 2023 05:22:44 -0700 (PDT) Received: from e127643.arm.com (unknown [10.57.29.214]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 534343F67D; Mon, 10 Jul 2023 05:21:59 -0700 (PDT) From: James Clark To: linux-perf-users@vger.kernel.org, irogers@google.com Cc: James Clark , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , Thomas Gleixner , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Will Deacon , Kan Liang , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/4] arm_pmu: Add PERF_PMU_CAP_EXTENDED_HW_TYPE capability Date: Mon, 10 Jul 2023 13:21:34 +0100 Message-Id: <20230710122138.1450930-2-james.clark@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230710122138.1450930-1-james.clark@arm.com> References: <20230710122138.1450930-1-james.clark@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham 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 This capability gives us the ability to open PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE events on a specific PMU for free. All the implementation is contained in the Perf core and tool code so no change to the Arm PMU driver is needed. The following basic use case now results in Perf opening the event on all PMUs rather than picking only one in an unpredictable way: $ perf stat -e cycles -- taskset --cpu-list 0,1 stress -c 2 Performance counter stats for 'taskset --cpu-list 0,1 stress -c 2': 963279620 armv8_cortex_a57/cycles/ (99.19%) 752745657 armv8_cortex_a53/cycles/ (94.80%) Fixes: 55bcf6ef314a ("perf: Extend PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE") Suggested-by: Ian Rogers Signed-off-by: James Clark --- drivers/perf/arm_pmu.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index 277e29fbd504..d8844a9461a2 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -875,8 +875,13 @@ struct arm_pmu *armpmu_alloc(void) * configuration (e.g. big.LITTLE). This is not an uncore PMU, * and we have taken ctx sharing into account (e.g. with our * pmu::filter callback and pmu::event_init group validation). + * + * PERF_PMU_CAP_EXTENDED_HW_TYPE is required to open the legacy + * PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE events on a + * specific PMU. */ - .capabilities = PERF_PMU_CAP_HETEROGENEOUS_CPUS | PERF_PMU_CAP_EXTENDED_REGS, + .capabilities = PERF_PMU_CAP_HETEROGENEOUS_CPUS | PERF_PMU_CAP_EXTENDED_REGS | + PERF_PMU_CAP_EXTENDED_HW_TYPE, }; pmu->attr_groups[ARMPMU_ATTR_GROUP_COMMON] = -- 2.34.1