Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3416234pxb; Mon, 24 Jan 2022 09:06:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJxw8YNV5L24Le+nm8mbIuyGCH8KvJdyhR/39r1vk9uIg8pWceZ3nf1SsRZ4BeF+ly3cGkok X-Received: by 2002:a17:902:6841:b0:149:6791:5a4f with SMTP id f1-20020a170902684100b0014967915a4fmr15372292pln.123.1643044006852; Mon, 24 Jan 2022 09:06:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643044006; cv=none; d=google.com; s=arc-20160816; b=g6RyMeJz0/zqFBC/9Gy31fMYYZPFOq+/g3I5fmNUoDXPOc3OOJamnoWoOSKB2yXA1t 9q8V/6EEWQJwsBUcIwPivPyGSzEsLMHosPr6wx6WSleYSQFbFVz3c8ciMsqsAfrzLEEK lojuuxhaxg//s4UTZBLvbD0vjzduO50/WuVMyLt18EAkCskhpqFqpQLsqS7MLHfdzkZU uUkEEjPlqkSPvhsy2k/lvFzDSpxCoqrYal702EPW1Y5Wo0Nzum1HXo7hEbxg0g4hytil wimmWQljv6RokTYd5i4jE3J7PgbKnn0RvClnJDNcMVyyQGNKMaM/RQzdxFGSanHz2cpQ jlVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=wO8s1vCs8Jg+1+GsMIAlw2GTA9Lb3p0ILziLy+F9pFo=; b=H+v+1Dl08qY/iYh7uZQgjw/Sy704fSNM6QPf2VzZ8YCggkqu0VQ4zzOWRJmdbcuwlZ Nl2AW4BEQYnPsSYqd83f47S2pYt5K2OvHY5ETPyGMdY8yk5P6m4lIJsSR9if+0PwOeag YHc/97WlUe0gIoz6fzT18F1UGyLh4Yy6Yhu0fCLW3RCwvEH5iNPegFq3eDKvjJKgXDmH Bny7+9UIsw36SkGFxtBxWuc2UuWassT0+kF79C0mO7vmSSEqpiUa2cAKId/UGLW6Dwtp WgIjiKUXsFlxm054oElrYcPlD6XF4L1jtGHZGQJ7KxNjUBrdAHOOgRTxg0+jgw/hHP0t WbMg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t26si13787055pga.588.2022.01.24.09.06.33; Mon, 24 Jan 2022 09:06:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S231818AbiAXEcr (ORCPT + 99 others); Sun, 23 Jan 2022 23:32:47 -0500 Received: from foss.arm.com ([217.140.110.172]:47256 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241457AbiAXEcg (ORCPT ); Sun, 23 Jan 2022 23:32:36 -0500 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 2C853ED1; Sun, 23 Jan 2022 20:32:36 -0800 (PST) Received: from p8cg001049571a15.arm.com (unknown [10.119.34.209]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 25A3A3F73B; Sun, 23 Jan 2022 20:32:27 -0800 (PST) From: Anshuman Khandual To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Anshuman Khandual , Catalin Marinas , Will Deacon , Mark Rutland , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , linux-perf-users@vger.kernel.org Subject: [RFC V1 08/11] arm64/perf: Enable branch stack sampling Date: Mon, 24 Jan 2022 10:00:50 +0530 Message-Id: <1642998653-21377-9-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1642998653-21377-1-git-send-email-anshuman.khandual@arm.com> References: <1642998653-21377-1-git-send-email-anshuman.khandual@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Now that all the required pieces are already in place, just enable the perf branch stack sampling support on arm64 platform, by removing the gate which blocks it in armpmu_event_init(). Cc: Mark Rutland Cc: Will Deacon Cc: Catalin Marinas Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Anshuman Khandual --- drivers/perf/arm_pmu.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index 0800c8858ed8..2117bf5d3232 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -537,9 +537,28 @@ static int armpmu_event_init(struct perf_event *event) !cpumask_test_cpu(event->cpu, &armpmu->supported_cpus)) return -ENOENT; - /* does not support taken branch sampling */ - if (has_branch_stack(event)) - return -EOPNOTSUPP; + if (has_branch_stack(event)) { + /* + * BRBE support is absent. Select CONFIG_ARM_BRBE_PMU + * in the config, before branch stack sampling events + * can be requested. + */ + if (!IS_ENABLED(CONFIG_ARM_BRBE_PMU)) { + pr_warn_once("BRBE is disabled, select CONFIG_ARM_BRBE_PMU\n"); + return -EOPNOTSUPP; + } + + /* + * Branch stack sampling event can not be supported in + * case either the required driver itself is absent or + * BRBE buffer, is not supported. Besides checking for + * the callback prevents a crash in case it's absent. + */ + if (!armpmu->brbe_supported || !armpmu->brbe_supported(event)) { + pr_warn_once("BRBE is not supported\n"); + return -EOPNOTSUPP; + } + } if (armpmu->map_event(event) == -ENOENT) return -ENOENT; -- 2.25.1