Received: by 2002:a05:6358:701b:b0:131:369:b2a3 with SMTP id 27csp3187249rwo; Mon, 24 Jul 2023 07:30:42 -0700 (PDT) X-Google-Smtp-Source: APBJJlEasGvwCUCp/nGj94LWLh4Y1sHpXYxWcBql2QvOpMZJD4XRZhUAh+Fwy7UkqC8UGDhjFbH+ X-Received: by 2002:a2e:8003:0:b0:2b9:5695:d10d with SMTP id j3-20020a2e8003000000b002b95695d10dmr5619228ljg.36.1690209041944; Mon, 24 Jul 2023 07:30:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690209041; cv=none; d=google.com; s=arc-20160816; b=qVWEefpmESPHwlTNLO0xHZ9rt3dz3ByfSl2VVjoX1OiAlAHyqsPF0UH4WatHlVOsg/ cf+5zxPrtk7nEoIYIUxivD8Bqcv6L73JQ+MM6NGi2Ck3IUOZ9sY3yWx0OXnpwtOUqbU1 sHvlHrw3tQIzwSYkntrNaiCSHtJgyFDbCJ5DZZBhA5lU77IIts4Ol94vPgbPn/aeEGW5 uM9CRG8vyiR83L3+L6HRxiuV91R6ceS9BtKBHYba+uUK6lKOlCtXgfKN4kkWNvXqNR4c qGbennCFpSDO0f7Sgm1ZUZK+UUpKGv53f7FP9yLDGpnnxws9lKyiokVdX++glkaZIomS T9QA== 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=aRu0b5Mel12QHdDN1nvyeWHNlKTjtqQHIWWFu0FV4qc=; fh=whuqqPDMCuf3pVIxi4ys9+C5pEOkF8a7QCuVDNap2s8=; b=MIv5cySO5hZN+TzTGyGInnWSmNiP8hszjjsxz0z1XpPETP7GHyiFI+ZWarbxOqNea5 EbSUy6W5cfkTHkb2K/ow4iFiS3yB7q1sOVs0U49AFXcJKI8kv3TpnA3yOf04mKLlY5qQ Cy/e9xZNgwSMZLpqbF8myfyLMFJLBxXezohU96i7PdwlfQgB/KfCGRFncCaSCrAmL6p3 jWn9bVtmdRnkTTiYqT9LfwsigHZHvDUbAJGYFThLD2HIuQK+/7JjMJL26ALcGzzqEbog LC2lA0mv4V5EWmST+CISlv8uosJAbNTsZmAfZ2J+d4QJRubUqKDSKNCOGmSpryAxBx1z pvEg== 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 r16-20020a170906351000b0099b6c03e567si5006604eja.353.2023.07.24.07.30.17; Mon, 24 Jul 2023 07:30:41 -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 S231230AbjGXNs3 (ORCPT + 99 others); Mon, 24 Jul 2023 09:48:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230060AbjGXNsI (ORCPT ); Mon, 24 Jul 2023 09:48:08 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2E7133C14; Mon, 24 Jul 2023 06:45:53 -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 D12F611FB; Mon, 24 Jul 2023 06:45:58 -0700 (PDT) Received: from e127643.broadband (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id F102A3F67D; Mon, 24 Jul 2023 06:45:12 -0700 (PDT) From: James Clark To: linux-perf-users@vger.kernel.org, irogers@google.com, anshuman.khandual@arm.com, will@kernel.org 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" , Kan Liang , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 1/4] arm_pmu: Add PERF_PMU_CAP_EXTENDED_HW_TYPE capability Date: Mon, 24 Jul 2023 14:44:56 +0100 Message-Id: <20230724134500.970496-2-james.clark@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230724134500.970496-1-james.clark@arm.com> References: <20230724134500.970496-1-james.clark@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, 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 Acked-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 f6ccb2cd4dfc..2e79201daa4a 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -880,8 +880,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 + * 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